搜索(dfs||bfs)
AndRing
这个作者很懒,什么都没留下…
展开
-
【记忆化搜索+图论】HDU-2833-WuKong
具体题解题目#includeusing namespace std;template T Max(T x,T y){return x>y?x:y;}template T Min(T x,T y){return x<y?x:y;}#define N 305#define inf 999999999int n,dis1[N],dis2[N],dp[N][N],map[N][N]原创 2012-03-15 20:26:29 · 746 阅读 · 0 评论 -
【记忆化搜索】 HDU-4155-The Game of 31
本题是一道博弈题,虽然之前弄过有关博弈方面的算法,但基本都忘了,所以就用记忆搜索水过了……思路:开一个八位数组dp[s][a1][a2][a3][a4][a5][a6][d],其中s代表的是31减去之前玩过的卡片加起来的总和的差,a1,a2,a3,a4,a5,a6分别代表1,2,3,4,5,6六个数的张数,d表示当前是谁玩……#include#include#includeusi原创 2012-02-25 22:44:11 · 543 阅读 · 0 评论 -
【深搜+模拟】VK Cup 2012 Round 1-E. Polycarpus the Safecracker
CF上的题考的就是思维啊,而这道题就是要用到十分巧妙的处理……题意:给定一个素数作为一个正方阵的第一行,而下面几行都要补一个素数进去形成一个对称矩阵,即当前矩阵与转置后的矩阵相等。如:239 9001 307 0002 977原创 2012-03-15 01:25:01 · 1301 阅读 · 0 评论 -
【dp+dfs】VK Cup 2012 Round 1-D. Distance in Tree
dp+dfs好题,状态转移写得很赞……dp[i][j中的i表示以第几个点为中心,j长度,综合起来表示以i为中心长度为j的边的总数……题目#include#includeusing namespace std;int k;__int64 ans,dp[50005][505];vector v[50005];void dfs(int x,int y){ int i,j,z;原创 2012-03-12 17:47:05 · 631 阅读 · 0 评论 -
【IDA*+位运算】PKU-1084-Square Destroyer
估价函数设计为这样:一开始把答案置零,从小正方形开始判断,如果有这个正方形就把答案增加1.,然后删掉这四条边。这样得到的值还是比较准的。然后加上一个非常重要的判定:只要找到一个正方形,就在当前的dfs中枚举组成这个正方形的几根火柴,而不要管其他的火柴棒。理由很简单——这几根火柴棒总得删掉一根。这样做的目的能够剪掉一大票删法相同但是删除顺序不同的“方案”……题目#includeus原创 2012-03-10 01:24:37 · 675 阅读 · 0 评论 -
【搜索+强剪枝】PKU-1167-The Buses
在黑书上的很好的一道搜索题,开始时基本没什么思路,代码也是按照大牛题解这里敲出来的……题目#includeusing namespace std;int bg,ed,Min,temp,sum[60],use[60],first[60];bool yes(int s,int d){ int i; for(i=s;i<60;i+=d) if(sum[i]<=use[i])r原创 2012-03-09 00:52:46 · 637 阅读 · 0 评论 -
【IDA*(迭代加深)】PKU-2286||HUD-1667-The Rotation Game
第一次写迭代加深,发觉这货很神气的说……虽然代码都是模仿人家的,不过自己加了一个判断条件,时间立刻减少一半……某大牛对于IDA*的解析:所谓迭代加深,就是在深度无上限的情况下,先预估一个深度(尽量小)进行搜索,如果没有找到解,再逐步放大深度搜索。这种方法虽然会导致重复的遍历 某些结点,但是由于搜索的复杂度是呈指数级别增加的,所以对于下一层搜索,前面的工作可以忽略不计,因而不会导致时间上的亏空。原创 2012-03-08 21:00:34 · 554 阅读 · 0 评论 -
【记忆化搜索】PKU-2044-Weather Forecast
经过这题,我发现原来用vector做参数是会超时的,难怪没人这样用来啦……题目#include#includeusing namespace std;struct T{ int a[4];};int n,p[370][20],b[5]={1,4,13,16};vector v1[15],v2[15];bool hash[10][370][7][7][7][7];in原创 2012-03-08 14:11:27 · 552 阅读 · 0 评论 -
PKU-1324-Holedox Moving
一道很好的广搜题,不过我做得很坑爹的说,而且时间,空间都用到了极致,是做愚蠢的做法……悲哀啊……#includeusing namespace std;int m,n,l,r[4][2]={-1,0,0,-1,0,1,1,0};bool vis[21][21][1<<14],map[21][21];struct T{ int x[8],y[8],step;};T t1,t2原创 2012-02-24 19:56:46 · 690 阅读 · 0 评论 -
【搜索+强剪枝】UVA-11882 - Biggest Number
处理得很巧妙的DFS+BFS……题目#include#include#includeusing namespace std;#define FRE freopen("a.txt","r",stdin);struct node{ int x,y;}queue[1000];int n,m;int Max,flag,tatal;char map[20][20];原创 2012-03-20 23:41:58 · 1927 阅读 · 0 评论