深搜
文章平均质量分 63
YDYKL
这个作者很懒,什么都没留下…
展开
-
深搜 IDA* 算法 POJ2286
文章引用:http://blog.csdn.net/urecvbnkuhBH_54245df/article/details/5856756# 写得真是太好了 而IDA*算法具有如下的特点:(综合了A*算法的人工智能性和回溯法对空间的消耗较少的优点,在一些规模很大的搜索问题中会起原创 2011-07-24 16:15:29 · 953 阅读 · 0 评论 -
HDU 1010 经典深搜+奇偶剪枝
/*奇偶剪枝的重要思想是:如果从当前位置还需要偶数(奇数)的时间才能到达目标位置,而当前剩余的时间数为奇数(偶数),那么即刻退出不再沿着纵深方向继续搜索。略微思考便知:奇偶剪枝的效果是立竿见影的!*/ #include#include#includechar map[10][10原创 2011-07-17 17:28:04 · 1084 阅读 · 1 评论 -
ZOJ 1002
直接暴搜#include#includechar map[5][5];bool v[5][5];int n,maxn;int dir[4][2]={1,0,-1,0,0,1,0,-1};bool ISOK(int a,int b){ int原创 2011-08-06 09:58:57 · 498 阅读 · 0 评论 -
POJ 2362 经典的深搜
#include#includeusing namespace std;int aver,n;int a[30];bool v[30];bool cmp(int a,int b){ return a>b; }int dfs(int tot,int sum,int k){ if(t原创 2011-07-17 22:54:53 · 566 阅读 · 0 评论 -
ZJNU 1903
我的代码:dis:两人财产的差值,p:物品个数total:两人所得财产的总值ans:当前两人所得财产总和的最大值#include #include #include #include #include using namespace std; __int64 a[30原创 2011-07-17 19:06:54 · 465 阅读 · 0 评论 -
深搜 字典序
#includeint a[5],sign[5]={0};void dfs(int t){ int i; if(t==4) { for(i=1;i printf("%d ",a[i]); printf("\n"); return; } for(i=1;i { if(!原创 2011-07-17 19:07:54 · 498 阅读 · 0 评论 -
ZJNU1909
#include#include#include#includeusing namespace std;char a[30],b[30];bool mark[30];int n;int judge(){int i,j,num;char c;for(i=0;i{c=a[i];for原创 2011-07-17 19:04:13 · 410 阅读 · 0 评论 -
POJ 3842 大数判断素数 + 位运算优化判重
#include#include#include#include#include#define M 100000.0using namespace std;int len,num=0;int list[10000],p=0;char str[10];bool v[10];int原创 2011-07-17 19:03:28 · 924 阅读 · 0 评论 -
ZJNU 1888
#include#include__int64 a[30];int num=0,cnt=0,n,k;int prim(__int64 a){int i;if(a==1) return 0;else if(a==2) return 1;else for(i=2;iif(a%i==0原创 2011-07-17 19:05:35 · 468 阅读 · 0 评论 -
POJ 1011 木棒问题
•问题描述: 乔治拿来一组等长的棍子,将它们随机地裁断(截断后的小段称为木棒),使得每一节木棒的长度都不超过50个长度单位。然后他又想把这些木棒恢复到为裁截前的状态,但忘记了棍子的初始长度。请你设计一个程序,帮助乔治计算棍子的可能最小长度。每一节木棒的长度原创 2011-07-25 20:28:11 · 1471 阅读 · 0 评论 -
HDU 3964
搜出图中所有的环 并输出 保证输出的所有环中的第一个点是环中最小的直接暴力吧#include#includeint n;int a[10][10];char ss[10];bool v[10];void dfs(int k,int s,int d){ int i; if(k==s&&d!=1) { ss[d-1]='\0';原创 2011-11-07 20:13:34 · 828 阅读 · 0 评论