DP专题练习题2

1|0数字排列

在这里插入图片描述

/* 先找规律,根据题目要求的前面的数字尽可能大,从第一位开始试数字,从20-1尝试,可以找到以下序列,并观察出规律 20 19 20 18 20 19 20 17 20 19 20 18 20 19 20 17 20 19 20 18 20 19 20 20 19 20 18 20 19 20 20 19 20 18 20 19 20 17 20 19 20 18 20 19 20 发现f[1] = 20,f[2] = f[1] + " " + f[21-2] + " " + f[1],f[3] = f[2] + " " + f[2].... */ #include<bits/stdc++.h> using namespace std; #define int long long #define endl "\n" const int N = 1e3 + 10,mod = 1e9 + 7; vector<string> dp(20); int n; void solve(){ cin >> n; dp[1] = "20"; for(int i = 2 ; i <= 17 ; i ++) dp[i] = dp[i-1] + " " + to_string(21-i) + " "+ dp[i-1]; string str; for(int i = 0 ,cnt = 0 ; i < dp[17].size() && cnt < n;i++){ if(dp[17][i] != ' ') str +=dp[17][i]; else { int num = stoi(str); cout << num << " "; str = ""; cnt ++; } } } signed main(){ ios::sync_with_stdio(false),cin.tie(0),cout.tie(0); int _ = 1; //cin >> _; while(_--) solve(); return 0; }

__EOF__

本文作者xued
本文链接https://www.cnblogs.com/xdeyt/p/18140583.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   xde_yt  阅读(1)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
点击右上角即可分享
微信分享提示