编辑书稿
来源:互联网 发布:电影不能有鬼知乎 编辑:程序博客网 时间:2024/04/29 06:25
// by BNU_LZM#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int maxn = 10;int n, a[maxn];bool check(){for(int i = 0; i < n-1; i++)if(a[i] > a[i+1]) return false;return true;}int h(){int cnt = 0;for(int i = 0; i < n-1; i++)if(a[i]+1 != a[i+1]) cnt++;if(a[n-1] != n) cnt++;return cnt;}bool dfs(int d, int maxd){if(check()) return true;if(d == maxd) return false;if(3*(maxd-d) < h()) return false;int b[maxn], olda[maxn];memcpy(olda, a, sizeof(a));for(int i = 0; i < n; i++){for(int j = i; j < n; j++){int cnt = 0;for(int k = 0; k < n; k++) if(k < i || k > j) b[cnt++] = a[k];for(int k = 0; k <= cnt; k++){int cnt2 = 0;for(int p = 0; p < k; p++) a[cnt2++] = b[p];for(int p = i; p <= j; p++) a[cnt2++] = olda[p];for(int p = k; p < cnt; p++) a[cnt2++] = b[p];if(dfs(d+1, maxd)) return true;}memcpy(a, olda, sizeof(olda));}}return false;}int solve(){if(check()) return 0;for(int maxd = 1; maxd < 8; maxd++){if(dfs(0, maxd)) return maxd;}return 8;}int main(){while(scanf("%d", &n) == 1 && n){for(int i = 0; i < n; i++) scanf("%d", &a[i]);printf("%d\n", solve());}return 0;}
0 0
- 编辑书稿
- UVA 编辑书稿
- 用word进行书稿编辑
- 例题7-10 编辑书稿 UVa11212
- 例题 7-10 编辑书稿 UVa 11212
- UVa11212 编辑书稿(Editing a book)
- uva11212 编辑书稿 迭代加深
- UVa 11212 Editing a Book (编辑书稿)迭代加深
- Uva11212 编辑书稿(Editing a book,IDE算法)
- IDA*,迭代加深搜索(编辑书稿,uva 11212)
- 紫书 例题7-10 编辑书稿 UVa11212 IDA*
- uva11212(Editing a Book/编辑书稿)=>IDA*算法/经典的估价函数
- 例题7-10 编辑书稿(Editing a Book, UVa 11212)
- 复制书稿
- 复制书稿
- 复制书稿
- 复制书稿
- 【二分】复制书稿
- Struts的UI标签
- hdu today
- JAVA中数据库的连接一般方法
- tensorflow学习笔记十七:tensorflow官方文档学习 Vector Representations of Words
- 算法作业_9(2017.3.22第五周)
- 编辑书稿
- Java自学日记 day 17
- 简述数据库的三大范式
- JS打字特效 JS 原生代码
- 学习c++的50条忠告
- GYM-100952-Special Palindrome【动态规划】
- go语言接口赋值
- 使用附加导航(affix)实现内容切换
- 数据挖掘(2)关联规则FpGrowth算法