51nod 1087 1 10 100 1000

xiaoxiao2021-02-27  410

#include<algorithm> #include<cstdio> #include <bits/stdc++.h> using namespace std; long long ans[1000005]; int main() { int n; ans[1]=1; for(long long i=2;i<=150005;i++){ //把对应有1的坐标记录下来 ans[i]=ans[i-1]+i-1; } int t; cin>>n; for(int i=0;i<n;i++){ cin>>t; int k=lower_bound(ans+1,ans+150000,t)-ans; //找到大于等于有1的坐标 if(t==ans[k]) //等于 说明这个位置有1存在 cout<<1<<endl; else cout<<0<<endl; } return 0; }
转载请注明原文地址: https://www.6miu.com/read-2784.html

最新回复(0)