7.16每日一題題解
阿新 • • 發佈:2020-07-16
National Project
涉及知識點:
- 數學
- 思維
solution:
- 通過題意可知,本題一共有兩個地方要解決
- 第一個就是要修完,第二個是要至少有一半的路是高質量的
- 那麼因為好天氣和壞天氣是可以看做一個週期的,所以需要的總天數至少是一半路的長度/g(這個地方代表起碼修高質量路要的天數)*(g+b)
- 然後我們要考慮一半路的長度和g的關係(其實沒必要考慮g和b的關係或者g和n的關係),
-
- 發現如果一半路的長度 mod g 為零,那麼代表我們多修了一個b天的需要減掉
-
- 發現如果一半路的長度 mod g 不為零,那麼代表我們少修了一個大於1小於g的天數,加上即可
std:
#include <cstdio> #include <algorithm> #include<iomanip> #include <iostream> #include <cmath> #include <string> #include <vector> #include <set> #include <queue> #include <cstring> #include<stack> #include <cassert> #include<map> using namespace std; typedef long long LL; LL n, k, m ; LL i,j,g; int main() { double m ; int b,n;cin >>n; for(int i=1;i<=n;i++){ cin >>m>> g>>b; j = ceil(m/2); LL sum =0 ; sum +=j/g*(g+b); if(j%g==0)sum-=b; else sum+=j%g; k = m; cout<<max(k,sum)<<endl; } return 0; }