随笔分类 -  搜索

摘要:1.POJ 3635使用dijkstra堆优化思想,状态为二维的,每个点的油箱里的油,求每个状态的最小花费,每次从堆中弹出的状态就确定了这种状态的最小花费。对于每个状态,两种拓展方式,加一单位油,和直接向下开。#include #include #include using namespace std;#define MAXN 300050#define INF 0x3fffffffint tot;int head[MAXN], vis[MAXN][102];int dis[MAXN][102];int T, n, m;struct Edge { int to, nxt; int ... 阅读全文
posted @ 2013-11-12 16:47 匡时@下一站.info 阅读(275) 评论(0) 推荐(0)
摘要:1.HDU 2208给小朋友分组,两两小朋友都喜欢对方才能分一组(因此既不是并查集,也不是强连通),数据多小啊,搜索先来一发。更好的思路是root[i]=J 表示i属于j组,找到每个root[i]==i的与新元素判断是否都在集合中,是就加入或不加入,不是就新产生一组。我还是比较喜欢用STL#include #include using namespace std;int G[13][13];int n, m;bool flag;vector part[22];void dfs(int num, int team) { if (flag) return; if (tea... 阅读全文
posted @ 2013-11-05 15:23 匡时@下一站.info 阅读(234) 评论(0) 推荐(0)
摘要:一,经典搜索(深搜和广搜)与剪枝int a[62];bool v[62];int n;bool bingo=0;bool cmp(int a,int b){return a>b?1:0;}bool dfs(int begin,int left,int now,int max){ if(left==now) return 1; for(int i=begin;inow) continue; v[i]=1; if(a[i]==now &&dfs(0,left-a[i],max,max)) return 1; else if(dfs(begin+1,... 阅读全文
posted @ 2013-11-03 23:43 匡时@下一站.info 阅读(354) 评论(0) 推荐(0)