uva 110
来源:互联网 发布:沙特 东风21 知乎 编辑:程序博客网 时间:2024/04/29 15:21
#include <cstdio>#include <iostream>#include <queue>#include <cstring>#include <vector>#include <list>#include <algorithm>using namespace std;char space[][15] = {"", " ", " ", " ", " ", " ", " ", " "};char buf[10];void permutation2(int cur, int n, string s){ if(cur == n){ printf("%s", space[cur]); printf("writeln("); for(int i = s.size()-1; i >= 0; i --){ printf("%c", s[i]); if(i != 0) printf(","); } printf(")\n"); return ; } else { printf("%s", space[cur]); for(int i = 0; i <= s.size(); i ++){ string temp = s; if(s.size() != i) printf("if %c < %c then", s[i], buf[cur]); if(s.size() != 0) printf("\n"); temp.insert(i, 1, buf[cur]); permutation2(cur+1, n, temp); if(s.size() != i) printf("%selse ", space[cur]); } }}int main(){ int n, t; scanf("%d", &t); while(t--){ scanf("%d", &n); printf("program sort(input,output);\nvar\n"); for(int i = 0; i < n; i ++){ printf("%c", i+'a'); if(i != n-1) printf(","); } printf(" : integer;\nbegin\n"); printf(" readln("); for(int i = 0; i < n; i ++){ printf("%c", i+'a'); if(i != n-1) printf(","); } printf(");\n"); for(int i = 0; i <= 8; i ++) buf[i] = i+'a'; string s = ""; permutation2(0, n, s); printf("end.\n"); if(t != 0) printf("\n"); } return 0;}/*conclusion:13790340 110 Meta-Loopless SortsAccepted C++11 0.066 2014-06-25 03:34:531: 排列生成算法,n插入n-1的排列中去2:用字符串模拟较好,或者用链表list*/
0 0
- uva 110
- uva 110
- uva 110(回溯)
- uva
- UVA
- UVA
- UVA
- uva
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- 八叉树入门
- IOS atomic与nonatomic,assign,copy与retain的定义和区别
- svn回滚历史版本
- IOS 使用自定义手势屏蔽按钮解决方法/UITapGestureRecognizer屏蔽Button
- ListView中getChildAt(index)的使用注意事项
- uva 110
- JAVA 单例模式与hashmap结合实现缓存
- 关键字const的含义
- unity 断点下载
- 求解电文哈弗曼加权路径大小
- Ubuntu下备份系统的方法
- 一个函数方程的解
- Linux shell脚本入门
- Android Service完全解析,关于服务你所需知道的一切(上)