算法
GrayGaoYu
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
算法——分治算法
分治策略主要利用递归来解决问题,它包括以下三个步骤: 分解:将问题分解为一与原问题类似并且比原问题规模更小的子问题 解决:当分解的子问题足够小时,直接给出答案,否则用递归打方式求解 合并:将子问题的解合成原问题的解 下面考虑一个简单的利用分治算法的归并排序的例子 问题的形式化描述如下: 输入:A是 一个全序关系,A[p,q]是这个全序关系上的一部分 输出:将A[p,q]部分进行排序原创 2015-11-01 09:18:43 · 582 阅读 · 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 · 390 阅读 · 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 · 274 阅读 · 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 · 268 阅读 · 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 · 420 阅读 · 0 评论
分享