BZOJ4725: [POI2017]Reprezentacje ró?nicowe
来源:互联网 发布:数控铣床编程30例带图 编辑:程序博客网 时间:2024/06/18 14:58
这题远没有它看起来那么可怕..
容易发现当n>70时a[n]就已远大于1e9,此时和a[n]有关的差只有a[n]-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 1e9using 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;}
阅读全文
0 0
- BZOJ4725: [POI2017]Reprezentacje ró?nicowe
- BZOJ4725: [POI2017]Reprezentacje ró?nicowe
- 4725: [POI2017]Reprezentacje ró?nicowe
- bzoj 4725: [POI2017]Reprezentacje ró?nicowe 暴力
- BZOJ4726: [POI2017]Sabota?
- bzoj4723 [POI2017]Flappy Bird
- bzoj4726 [POI2017]Sabota?
- BZOJ4726 [POI2017]Sabota?
- 【BZOJ】4726 [POI2017] Sabota?
- BZOJ 4726 [POI2017] Sabota?
- BZOJ4723 [POI2017]Flappy Bird
- BZOJ4724 [POI2017]Podzielno
- 4726: [POI2017]Sabota?
- 4723: [POI2017]Flappy Bird
- BZOJ4727: [POI2017]Turysta
- [POI2017] Flappy Bird 题解
- 4724: [POI2017]Podzielno
- 4727: [POI2017]Turysta
- 王思聪的狗可可刷爆朋友圈;易到超40万司机成功提现;董明珠称5年内不讨论接班人...
- 山区建小学
- ChannelGroup—广播
- test
- 挑战题一(3)
- BZOJ4725: [POI2017]Reprezentacje ró?nicowe
- 朋友圈三天可见就直接拉黑?网友:那你加我干嘛!
- htmlStyle-css
- 慕课网-Spring Boot进阶之Web进阶
- 刘强东第一次辟谣网照不是岳父母;百度回应陆奇PPT错别字;今日头条视频分家更名西瓜视频…
- (HDU
- 《Speech and Language Processing》第三版手稿读书笔记——00(Daniel Jurafsky,James H. Martin)
- ppp协议与以太网协议的异同
- 2017国际大数据产业博览会:聚焦数字经济,引领新增长