随笔分类 -  ACM_搜索

hdu 2553 N皇后问题 搜索 回溯法
摘要:题目地址:hdu 2553直接小白书上面的回溯法 但是不知道有多少组数据 所以打一个表~代码:#includeusing namespace std;int C[10];int n;int tot=0;int ans[10];void dfs(int cur){ if(cur==n) tot++; else for(int i=0;i>n) { if(n==0) break; cout<<ans[n]<<endl; } } 阅读全文

posted @ 2014-02-26 18:16 814jingqi的ACM 阅读(94) 评论(0) 推荐(0)

zoj 1089 Lotto
摘要:题目地址:zoj 1089题目:就是生成组合。用dfs来写, 其中“相邻的边”实际上就是每次可以选择把某一位放入输出组中,也可以选择不放进去。 形成一“路径选择二叉树”。搜到了一条路径就“return” 来回溯cnt-- 就是把当前节点pass掉了~代码:#include#includeusing namespace std;int p[13];//int vis[13];int k;int cnt=0;int pout[13];void dfs(int cur){ if(cnt==6) { for(int i=0;i=k) return ; pout[cnt+... 阅读全文

posted @ 2014-02-26 03:24 814jingqi的ACM 阅读(122) 评论(0) 推荐(0)

poj 3126 Prime Path bfs求最短路
摘要:题目地址:poj 3126题目大意: 每次只允许变动一位 求最少变动多少次可以把一个四位素数变为另一个四位素数。还是直接bfs求最短路,每个素数是一个节点,判断是否相邻用枚举的方法,分别枚举个十百千位。 记得layer[next] = layer[cur]+1; 所以取出每一位的时候要用cur的副本代码:#include#include#include#includeusing namespace std;int vis[10000];int p[10000];int layer[10000];void pre(){ p[0]=1; p[1]=1; for(int i... 阅读全文

posted @ 2014-02-25 00:55 814jingqi的ACM 阅读(116) 评论(0) 推荐(0)

poj 3278 Catch That Cow bfs求最短路径
摘要:最近练习一组搜索题题目地址:poj 3278题目大意: 给你一个数n 你可以+1,-1,*2,怎么用最少的步骤数达到给定的k,如果没有这样的方案输出-1;用图论的理论搜索出一条路径即可先看代码:#include#include#include#includeusing namespace std;#define max 100005int cnt[max];int visit[max];int n,k;queue q;int bfs(){ int cur,next; cnt[n]=0; visit[n]=1; q.push(n); cur=n; ... 阅读全文

posted @ 2014-02-24 15:17 814jingqi的ACM 阅读(127) 评论(0) 推荐(0)

poj 1562 ,hdu 1241 Oil Deposits dfs,bfs 求连通分支数
摘要:题目地址:http://poj.org/problem?id=1562 http://acm.hdu.edu.cn/showproblem.php?pid=1241直接遍历求连通分支数, dfs方法:#include#include#includeusing namespace std;int map[105][105];int vis[105][105];int n,m;void dfs(int x,int y){ //cout=0&&y=0&&!vis[x][y-1]&&map[x][y-1]) dfs(x,y-1); if(x-1>= 阅读全文

posted @ 2013-09-26 00:35 814jingqi的ACM 阅读(210) 评论(0) 推荐(0)

poj 3984 迷宫问题 dfs 求迷宫路径
摘要:题目地址:http://poj.org/problem?id=3984利用图论中深搜的思想,存在边就是x,y -> x+1,y 还有x,y -> x,y+1 然后仍然是访问未访问的而且不是墙壁的地方。 这样保证不走已经搜索过,走不通的路。唯一一种需要重复访问已经访问的结点的情况是已经无路可走了,只能返回,这样就在栈中将路径取出来,把自己现在的那个先pop掉,然后实现回溯。最后用向量实现栈的自底输出。代码:IDUserProblemResultMemoryTimeLanguageCode LengthSubmit Time12143517814jingqi3984Accepted72 阅读全文

posted @ 2013-09-25 18:03 814jingqi的ACM 阅读(299) 评论(0) 推荐(0)

poj 1905 Expanding Rods 二分答案
摘要:题目地址:http://poj.org/problem?id=1905思路:列出方程 2*R*x=L‘ 2*R*sin(x)=L 两式相除即得 x/sin(x) = 1+n*c 前提x!=0 就是 n*c>0 答案就是 L/2* (1/sin(x)-1/tan(x)) 三角函数化简为 L/2*tan(x/2) x 在0~ PI/2 于是关于x是单增的, 反函数也是单增的,x/sin(x) 也是单增的一开始的思路是先用 二分把x/sin(x) = 1+n*c 里面的x解出来,然后带进L/2*tan(x/2) 计算 虽然样例过了,但是还是wa... 阅读全文

posted @ 2013-09-25 15:15 814jingqi的ACM 阅读(142) 评论(0) 推荐(0)

poj 3122 Pie 二分答案
摘要:题目地址:http://poj.org/problem?id=3122还是找到了单调函数--分给m人对最大尺寸f(m) 是m的不增函数,那么具体给定m是,二分f(m)使用>=f+1 l=mid 而不是>来保证尽可能取得大细节: 应该直接二分答案,而不是算出比较精确的半径平方,最后*PI输出,会产生误差,然后PI用arccos(-1),否则也会wa代码:#include#include#includeusing namespace std;//const double PI=3.1415926535; //这样写就wa了 是精度不够?const double PI=acos(-1.0 阅读全文

posted @ 2013-09-25 02:19 814jingqi的ACM 阅读(114) 评论(0) 推荐(0)

zoj 3366 Light Bulb 三分
摘要:题目地址:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=3366思路: 题目就是要求函数(h*D-H*x)/(D-x)+x 的最大值,其中 x>=0 x#includeusing namespace std;int main(){ int T; cin>>T; long double H,h,D; while(T--) { cin>>H>>h>>D; long double ans=D*H-D*h; ans=sqrt(ans); ans*=-2; ans... 阅读全文

posted @ 2013-09-24 23:43 814jingqi的ACM 阅读(103) 评论(0) 推荐(0)

poj 3258 River Hopscotch 二分答案
摘要:题目地址:http://poj.org/problem?id=3258题目思路: 首先,如果只减少一部,那么一定要干掉最短的那段距离(一旦不消灭,最小的还是它,并没有达到使最小值取最大的理想情况)。 但是如果有很多边取到最小,具体去除哪一个点就有点麻烦了。如果两个最小距离连着,去除公共点最好。 如果没有连着,四个点分别考虑紧邻的,取最小的。 如果多于两条线段取最小随便去,如果仅有一条取最小仍是去紧邻较小的点。 很麻烦就是了。基于这样的思想,每次去掉一个顶点后,再取出最小边,同样处理(借助优先权队列) 。不知这样的贪心是不是对的...有一个二分答案的做法,现学的.一般的二分查找是 while(. 阅读全文

posted @ 2013-09-22 02:20 814jingqi的ACM 阅读(322) 评论(0) 推荐(0)

2013杭电warm up1 1002 Pet 求树结点的高度(bfs,dfs两种求法)
摘要:题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=4707题目给出一颗树,要求求出深度大于D的结点的个数。有两种方法,改写dfs,给一个参数放层数(额,其实这里不需要转化为有根树,多余了)代码:#include#include#include#includeusing namespace std;#define maxn 100005vector G[maxn];int p[maxn];int lev[maxn];//vector leaf;void dfs(int u,int fa,int level) // 无根树转化为有根树{ in... 阅读全文

posted @ 2013-09-18 00:17 814jingqi的ACM 阅读(189) 评论(0) 推荐(0)