Hdu 5334 Virtual Participation (构造)
来源:互联网 发布:广电网络个人工作总结 编辑:程序博客网 时间:2024/06/04 20:50
解析:
首先找到第一个n使得n*(n+1)/2>=k,差值为x。
然后看下面一个例子:
28 = 1 2 3 4 5 6 7
27 = 1 1 3 4 5 6 7
26 = 1 1 3 3 4 5 6
25 = 1 1 1 4 5 6 7
24 = 1 1 1 4 4 6 7
23 = 1 1 1 4 4 6 6
22 = 1 1 1 4 4 4 7
21 = 1 2 3 4 5 6
对于x,不断找<=x的最大的m*(m+1)-m,相见进行迭代至0。
注意4是特例。
[code]:
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int maxn = 1e5+5;int m,a[maxn],n;int bin(int x){ int lb,rb,mid; lb = 0,rb = n+1; while(rb-lb>1){ mid = (lb+rb)>>1; if(mid*(mid+1)/2-mid<=x) lb = mid; else rb = mid; } return lb;}void sol(int p,int s){ if(s == 0) return; int i,l = bin(s); for(i = 1;i < l;i++){ a[p+i] = a[p]; } sol(p+l,s-l*(l+1)/2+l);}int main(){ int i,j; while(~scanf("%d",&m)){ if(m <= 1e5){ printf("%d\n",m); for(i = 1;i <= m;i++){ if(i-1) putchar(' '); putchar('1'); } putchar('\n'); continue; } for(n = 1;;n++){ a[n] = n; if(n*(n+1)/2>=m) break; } sol(1,n*(n+1)/2-m); printf("%d\n",n); for(i = 1;i <= n;i++){ if(i-1) putchar(' '); printf("%d",a[i]); } putchar('\n'); } return 0;}
0 0
- hdu 5334 Virtual Participation 构造
- Hdu 5334 Virtual Participation (构造)
- [构造] HDU 5334 Virtual Participation
- 构造(Virtual Participation,HDU 5334)
- HDU 5334 Virtual Participation
- HDOJ 5534 Virtual Participation 构造
- HDOJ 5334 Virtual Participation
- HDU 5334(Virtual Participation-(A+C+1)(B+C+1)=K+(1+C)^2-C)
- hdu5334(2015多校4)--Virtual Participation(构造)
- codeforces 259 div2 virtual Participation
- codeforces 260 div2 virtual Participation
- codeforces 261 div2 virtual Participation
- 解题报告 之 HDU5334 Virtual Participation
- hdu5334 Virtual Participation 多校联合第四场
- Codeforces Round #401 (Div. 2) (Virtual participation) 总结
- 2015 Multi-University Training Contest 4(hdu5334 - Virtual Participation)数学
- hdu 3172 Virtual Friends
- hdu 3172 Virtual Friends
- 《c++编程思想》读书笔记
- Git15--Feature分支
- 使用symbolicatecrash解析iOS的Crash log文件
- poj2955 Brackets(区间dp)
- android PopupWindow点击外部和返回键消失
- Hdu 5334 Virtual Participation (构造)
- git添加ssh公钥和私钥
- NEFU OJ 206 Prim生成树
- uva 12186 Another Crisis
- C语言中*和&
- Python爬虫(urllib2+bs4)+分析找出谁是水贴王(2)--数据分析
- NYOJ 91 阶乘之和
- java生成任意随机值,字符,数字,其它的都有你来
- nyoj 6 喷水装置(一)