BZOJ4725: [POI2017]Reprezentacje ró?nicowe
2017-09-26 16:52
155 查看
这题远没有它看起来那么可怕..
容易发现当n>70时a
就已远大于1e9,此时和a
有关的差只有a
-a[n-1]在n为偶数的情况下在1e9之内
于是打个70的表,如果当前的x在打表时没出现,就二分找已经出现的差有多少个
容易发现当n>70时a
就已远大于1e9,此时和a
有关的差只有a
-a[n-1]在n为偶数的情况下在1e9之内
于是打个70的表,如果当前的x在打表时没出现,就二分找已经出现的差有多少个
#include<set> #include<map> #include<deque> #include<queue> #include<stack> #include<cmath> #include<ctime> #include<bitset> #include<string> #include<vector> #include<cstdio> #include<cstdlib> #include<cstring> #include<climits> #include<complex> #include<iostream> #include<algorithm> #define ll long long #define inf 1e9 using namespace std; const int maxn = 110000; int n; ll a[maxn]; struct node { int p,q; ll x; }; inline bool operator <(const node x,const node y){return x.x<y.x;} set<node>S; set<node>::iterator it,it1; ll t[maxn]; int tp; int main() { a[1]=1; S.insert((node){1,1,0}); a[2]=2; S.insert((node){2,1,1}); it1=S.find((node){2,1,1}); t[++tp]=1; ll now=1; int u=70; for(int i=3;i<=u;i++) { if(i&1) { a[i]=a[i-1]*2ll; for(int j=i-1;j>=1;j--) { node tmp=(node){i,j,a[i]-a[j]}; it=S.find(tmp); if(it==S.end()) S.insert(tmp),t[++tp]=tmp.x; } } else { it=it1; while(it!=S.end()) it=S.find((node){0,0,++now}); a[i]=a[i-1]+now; for(int j=i-1;j>=1;j--) { node tmp=(node){i,j,a[i]-a[j]}; it=S.find(tmp); if(it==S.end()) S.insert(tmp),t[++tp]=tmp.x; } } } /*for(int i=1;i<=u;i++) printf("%lld\n",a[i]); puts(""); puts("");puts("");puts("");puts(""); for(int i=1;i<=tp;i++) printf("%lld\n",t[i]);*/ sort(t+1,t+tp+1); scanf("%d",&n); while(n--) { ll k; scanf("%lld",&k); it=S.find((node){0,0,k}); if(it==S.end()) { int l=1,r=tp; while(l<=r) { int mid=l+r>>1; if(t[mid]<k) l=mid+1; else r=mid-1; }l--; ll p=u+(k-l)*2ll; printf("%lld %lld\n",p,p-1); } else { printf("%d %d\n",(*it).p,(*it).q); } } return 0; }
相关文章推荐
- BZOJ4725: [POI2017]Reprezentacje ró?nicowe
- bzoj 4725: [POI2017]Reprezentacje ró?nicowe 暴力
- 4725: [POI2017]Reprezentacje ró?nicowe
- 【BZOJ4725】【POI2017】Reprezentacje ró?nicowe
- BZOJ4725: [POI2017]Reprezentacje ró?nicowe
- RO09 - RemObjects 2.0 Session 管理器
- RO35 - ROCalc 服务
- GPU程序在GameByro中的使用
- AMR中的RO,RW和ZI
- ARM启动代码学习-RO和RW还有ZI代表什么?
- RO代码跟踪 之 客户端代理类的工作原理
- 了解RO_RW_ZI
- ARM开发总结的小知识 Code, RO-data,RW-data,ZI-data
- 关于|Image$$RO$$Limit||Image$$RW$$Base||Image$$ZI$$Ba|
- 【嵌入式】ARM中的RO、RW和ZI DATA说明--in C++
- ARM中的RO、RW和ZI DATA说明
- ARM中的RO、RW和ZI DATA说明
- android system ro
- ADS中 RO base 的设置
- ARM MDK 编译产生:RO、RW和ZI DATA说明