1 条题解
-
0
题目传送门: P2320 [HNOI2006] 鬼谷子的钱袋
思路

所以我认为这道题是构造题。
显然可以发现随着 增大答案是单调不降的。
而且要求 都可以造出来。举例来说一组构造 ,其中 ,为了合法需要满足 。
代码
#include<bits/stdc++.h> #define int long long using namespace std; int ans[50],cnt; void findf(int x){ ans[++cnt]=(x+1)/2; if(x==1) return; findf(x-(x+1)/2); } signed main(){int n,tmp; scanf("%d",&n); tmp=log2(n)+1; cout << tmp << '\n'; findf(n); sort(ans+1,ans+cnt+1); for(int i=1;i<=tmp;i++) cout << ans[i] << ' '; return 0; }
- 1
信息
- ID
- 739
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 9
- 标签
- (无)
- 递交数
- 11
- 已通过
- 6
- 上传者