算法
GrayGaoYu
这个作者很懒,什么都没留下…
展开
-
算法——分治算法
分治策略主要利用递归来解决问题,它包括以下三个步骤:分解:将问题分解为一与原问题类似并且比原问题规模更小的子问题解决:当分解的子问题足够小时,直接给出答案,否则用递归打方式求解合并:将子问题的解合成原问题的解下面考虑一个简单的利用分治算法的归并排序的例子问题的形式化描述如下:输入:A是 一个全序关系,A[p,q]是这个全序关系上的一部分输出:将A[p,q]部分进行排序原创 2015-11-01 09:18:43 · 519 阅读 · 0 评论 -
IDA*学习
IDA算法模板(伪代码):solve(){for maxd: dfs(0);}dfs(int d){ if(d==maxd) return check(); else{ if(qifa()) return false; change the state to the deeper layer; if(dfs(d+1)) return false; recover th原创 2018-01-11 10:29:54 · 310 阅读 · 0 评论 -
回溯法复习
首先是最经典的n皇后问题代码如下:#include#include #include using namespace std;typedef long long LL;const int maxn = 1000;int n;LL ans;int vis[3][2*maxn];void solve(int cur){ if(cur==n) ans++; els原创 2018-01-12 20:12:19 · 215 阅读 · 0 评论 -
回溯法复习(二)
UVa140这是一道典型的回溯法题目,第一次做的时候并没有做出来,在参考了网上的一些AC代码后经过修改,终于AC成功了。下面先附上代码:#include #include #include #include using namespace std;const int maxn = 10;char letter[maxn]; int id[256];char str[原创 2018-01-13 17:03:20 · 214 阅读 · 0 评论 -
ccf压缩编码(石子排序,四边形优化)
#include <iostream>#include <cstdio>using namespace std; const int maxn = 1005;const int INF = 0x3f3f3f3f;int a[maxn];int sum[maxn];int dp[maxn][maxn];int s[maxn][maxn];int n;voi...原创 2018-03-14 09:54:19 · 362 阅读 · 0 评论