/*
此题纠结了n久
感觉自己的方法应该是最高效的解法了
但每次提交都超时
后来发现原来是上界弄错了
无语。。。
*/
#define LOCAL
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
#ifdef LOCAL
freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout);
#endif
int n,first=1;double k;unsigned long t;
cin>>n;
while(n--){
cin>>k;
t=(long)sqrt(2*k);//就是这得上界弄错了
while((t*(t+1))>(2*(k-1))) t-=1;
if((t*(t+1))==(2*(k-1)))
{if(first){cout<<1;first=0;}
else{cout<<" 1";}}
else{if(first){cout<<0;first=0;}
else{cout<<" 0";}}}
cout<<endl;
return 0;
}
URAL 1209 110100100010000……
高效算法解决难题:避免超时陷阱
最新推荐文章于 2018-04-20 16:09:12 发布
本文探讨了一个在编程中遇到的挑战——如何在有限时间内高效地解决问题,通过实例展示了一种优化方法,避免了算法超时的问题。重点在于识别并修正上界设置错误,从而提高算法效率。
1332

被折叠的 条评论
为什么被折叠?



