齐河县工程建设监理有限公司网站中国邮政做特产得网站
web/
2025/9/27 0:21:27/
文章来源:
齐河县工程建设监理有限公司网站,中国邮政做特产得网站,大淘客网站是怎么做的,长春网络公司有哪些C - Cats Gym - 102875C
题意#xff1a;
n个猫#xff0c;猫的身高在1到20之间#xff0c;现在求这些猫的排列#xff0c;满足一样高的猫不靠着#xff0c;且他们之间的最矮的猫不比他们高 输出任意符合条件的排列
题解#xff1a;
构造题 题目的限制条件决定了
n个猫猫的身高在1到20之间现在求这些猫的排列满足一样高的猫不靠着且他们之间的最矮的猫不比他们高 输出任意符合条件的排列
题解
构造题 题目的限制条件决定了矮猫的周围都是高的猫所以我们可以这样一开始1然后1的左右生成2也就是2 1 2 然后2的左右生成3也就是3 2 3 1 3 2 3 然后3的左右生成4… 如何实现 用两个栈来回导即可
代码
#includebits/stdc.h
typedef long long ll;
using namespace std;
inline int read(){int s0,w1;char chgetchar();while(ch0||ch9){if(ch-)w-1;chgetchar();}while(ch0ch9) ss*10ch-0,chgetchar();//s(s3)(s1)(ch^48);return s*w;
}
stackints1;
stackints2;
int main()
{int n;cinn;s1.push(1);int tot1;//总量 int ans1;//加入的当前高度 int f0;while(totn){if(f0){while(s1.empty()0){if(s1.top()ans){s2.push(ans1);s2.push(s1.top());s2.push(ans1);tot2;}else {s2.push(s1.top());}s1.pop();}ans;}else {while(s2.empty()0){if(s2.top()ans){s1.push(ans1);s1.push(s2.top());s1.push(ans1);tot2;}else {s1.push(s2.top());}s2.pop();}ans;}f^1;}if(f0){for(int i1;in;i){couts1.top() ;s1.pop();} }else {for(int i1;in;i){couts2.top() ;s2.pop();}}return 0;
}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/81334.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!