UVa_11212(迭代加深搜索)
来源:互联网 发布:sqlserver列明别名 编辑:程序博客网 时间:2024/05/16 09:09
#include<iostream>#include<cstring>using namespace std;const int maxn = 400000;bool Vis[maxn];int n;int D[10];int kangtuo(int A[9]){ int t = 0; for (int i = 0; i<n; i++) { int cnt = 0; int x = A[i]; for (int j = i + 1; j<n; j++) { if (A[j]<x) cnt++; } t += cnt*D[n - i - 1]; } return t;}int In[10];void turn(int A[9], int B[9], int l1, int r1, int l2, int r2, int &h){ h = 0; int p1 = l1, p2 = l1 + (r2 - l2), p3 = r2; for (int i = 0; i<n; i++) { if (i<p1 || i>p3) B[i] = A[i]; else if (i <= p2) { B[i] = A[i - p1 + l2]; } else { B[i] = A[i - p2 - 1 + l1]; } if (i>0 && B[i - 1] != B[i]-1) h++; else if (i == 0 && B[i] != 1) h++; }}bool dfs(int cen, int deep, int A[9], int knum){ if (cen == deep) { return knum == 0; } else { for (int i = 0; i<n; i++) { for (int j = i; j<n; j++) { int l = j + 1; for (int r = l; r<n; r++)//通过将[i,j]和[l,r]置换 { int B[9]; int h; turn(A, B, i, j, l, r, h); if (3 * (deep - cen) >= h) { int nknum = kangtuo(B); //if (!Vis[nknum])不能进行标记 { Vis[nknum] = 1; if (dfs(cen + 1, deep, B, nknum)) { return true; } } } } } } return false; }}int main(){ D[0] = 1; for (int i = 1; i<10; i++) { D[i] = D[i - 1] * i; } cin >> n; for (int i = 0; i<n; i++) { cin >> In[i]; } int maxdeep = n - 1; int ans = -1; int k = kangtuo(In); for (int i = 0; i<=maxdeep; i++) { memset(Vis, 0, sizeof(Vis)); if (dfs(0, i, In, k)) { ans = i; break; } } cout << ans << endl; return 0;}
0 0
- UVa_11212(迭代加深搜索)
- 迭代加深搜索
- 迭代加深搜索
- 搜索-迭代加深
- 迭代加深搜搜索
- poj3134迭代加深搜索
- 7.6迭代加深搜索
- 迭代加深搜索初步
- 搜索专题小结:迭代加深搜索
- 埃及分数 迭代加深搜索 IDS
- 迭代加深搜索 埃及分数
- 迭代加深ID-DFS搜索算法
- 埃及分数,迭代加深搜索
- poj2870Light Up(迭代加深搜索)
- USACO/fence8 迭代加深搜索+剪枝
- 迭代加深搜索 + dp vijos 1159
- UVA 1374 迭代加深搜索
- 埃及分数(迭代加深搜索)
- 关于css的各种居中问题
- PATB1032
- Head First 设计模式(七)适配器模式和外观模式
- POJ3625 Building Roads
- C++之四个强制类型转换
- UVa_11212(迭代加深搜索)
- Zend2(ZF2)的Debug及性能分析方法
- Mysql中的索引问题
- Algorithm Gossip (9) 八枚银币
- Could not load JDBC driver class [com.mysql.jdbc.Driver]异常
- 小知识盲点 for myself(持续更新中)
- 不要在发行版本中设置android:allowbackup='true'
- URAL1329 Galactic History(深搜DFS)
- HDU 2544