习题8-7 UVA - 11925 Generating Permutations 生成排列(构造)
来源:互联网 发布:cms监控软件官网 编辑:程序博客网 时间:2024/05/16 21:57
大体题意:
给你n 个元素的数组,让你由1,2,3,4...n 变成所给序列,步骤都有哪些,其中步骤操作有两种:
操作1:交换前两个元素。
操作2:把第一个元素放到最后。
思路:
可以逆向考虑:
由所给序列变成1,2,3,4...n
这样操作1不变,操作2变为把最后一个元素放到第一个,然后逆向输出答案即可!
先有一个判断是否合法的函数,循环条件是 不合法,就一直循环下去。
看样例可以看出规律:
先判断第一个是否大于第二个 若大于第二个 并且第一个不是n 的话 就swap
如果不满足 就执行操作2 把最后一个元素放到第一个来
存到数组逆向输出即可
坑:
最好用stl 做 n 好像不是小于300 开到20W 才过的T__T
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int maxn = 200000 + 5;int n,a[maxn];int ans[maxn],cnt;bool rev(){ for (int i = 1; i < n; ++i) if (a[i] < a[i-1])return false; return true;}int main(){ while(scanf("%d",&n) == 1 && n){ for (int i = 0; i < n; ++i)scanf("%d",&a[i]); cnt = 0; while(!rev()){ if (a[0] > a[1] && a[0] != n){ ans[cnt++] = 1; swap(a[0],a[1]); }else{ ans[cnt++] = 2; int v = a[n-1]; for (int i = n-1; i >= 1; --i)a[i] = a[i-1]; a[0] = v; } } //printf("%d\n",cnt); for (int i = cnt-1;i > -1; --i)printf("%d",ans[i]); printf("\n"); } return 0;}
0 0
- 习题8-7 UVA - 11925 Generating Permutations 生成排列(构造)
- UVa #11925 Generating Permutations (习题8-7)
- UVa 11925 - Generating Permutations(构造法)
- UVa 11925:Generating Permutations(构造)
- 生成排列 Generating Permutations
- 生成排列(Generating Permutations, UVa11925)
- UVa:11925 Generating Permutations
- UVa 11925 - Generating Permutations
- UVa 11925 Generating Permutations
- UVa - 11925 - Generating Permutations
- UVA 11925 Generating Permutations
- UVA 11925 - Generating Permutations
- UVA - 11925 Generating Permutations 推理
- UVA 11925(p254)----Generating Permutations
- UVa 10098 Generating Fast (全排列生成)
- uva 11925——Generating Permutations
- UVA 11925 Generating Permutations 逆向思维
- Generating Permutations UVA
- oracle sql学习五
- Canvas曲线绘制
- IE下iframe跨域session和cookie失效问题的解决方案
- 关于javah编译.h头文件时出现的问题总结
- tomcat 重新编绎
- 习题8-7 UVA - 11925 Generating Permutations 生成排列(构造)
- Mac OS安装nginx with nginx-stick-module-ng
- js jq队列动画分析
- 算法导论之概率分析和随机算法文档
- 【Java】集合遍历增强for和普通for的区别
- java 注解——使用详解
- OpenCV2简单的特征匹配
- ReactNative 第六节 实战之ReactJS 组件和生命周期
- jQuery基础——样式篇