思路讲解
其实这题这题知道结论很简单
1,2,3,4 可以组成1-10(1+2+3+4)以内的任何数x,组成完剩余的就是(10-x)了。同理,可以推广。
所以其实这个w+b就是障眼法,其实只要球的总数够用,就可以满足要求了。
AC代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| #include <bits/stdc++.h>
using namespace std; typedef long long ll; ll T,w,b; const ll N=7e4+7; ll balls[N];
int main() { ios::sync_with_stdio(false); cin.tie(0);cout.tie(0); cin>>T; ll n=7e4; for(int i=1;i<=n;++i){ balls[i]=balls[i-1]+i; } while (T--) { cin>>w>>b; ll idx=lower_bound(&balls[1],&balls[n+1],w+b)-balls; if(balls[idx]>w+b) idx-=1; cout<<idx<<endl; } }
|
心路历程(WA,TLE,MLE……)
唉,WA了一次,循环n开小了,谁能想到这个109包括比较大的109?6。