https://ac.nowcoder.com/acm/contest/6012/A
其實這題想的思路是對的,就是代碼……好像有點繁雜。後來看了別人的代碼,才知道還可以這樣。
思路就是儘可能去湊2,如果k是奇數就去補1,如果直接模擬發現會非常麻煩,寫着寫着會把自己繞進去。但我們可以發現,我們儘可能去湊2,然後補1,但總體的數量還是不變的,所以我們就直接用總體的數量去除k就好了。
#include<map>
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<cmath>
#define int long long
using namespace std;
int t,n,m,k;
signed main()
{
cin>>t;
while(t--)
{
scanf("%lld %lld %lld",&n,&m,&k);
printf("%lld\n",(n+2*m)/k);
}
}