搜索
NOTTME
这个作者很懒,什么都没留下…
展开
-
Ural1040
百度了一下,竟然如此简单。只要节点延伸出去的边有相邻的数字,则无论有多少条边,其最大公约数一定是1。所以直接dfs给边从1到m编上号即可。#include #include #include using namespace std;vector V[51];int ans[2505];int c;int counter;int m,n;int vstd[51][51原创 2014-03-05 23:42:34 · 642 阅读 · 0 评论 -
POJ1274(匈牙利算法)
找二分图最大匹配#include #include #include #include #include #include using namespace std;int edge[205][205];int used[205];int belong[205];int n,m;bool findpath(int x){ int i; for (i=1;i<=m;i原创 2015-01-19 21:59:11 · 552 阅读 · 0 评论 -
POJ1273(最大流入门)
#include #include #include #include #include #include using namespace std;vector V[205];int vstd[205],pre[205];int c[205][205],f[205][205],cf[205][205];const int maxn=0x7fffffff;int main()原创 2015-01-16 12:44:14 · 481 阅读 · 0 评论 -
Sicily1176
递归超时的代码:// Problem#: 1176// Submission#: 2918390// The source code is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License// URI: http://creativecommons.org/l原创 2014-09-17 15:46:35 · 799 阅读 · 0 评论 -
Sicily1150 && Sicily1151(广搜)
#include #include #include #include #include using namespace std;struct magic{ string st; string path;};int main(){ int m,i; while (1) { queue A; map visit; string aim; magic原创 2013-08-12 15:36:20 · 585 阅读 · 0 评论 -
Sicily1050(DFS)
先meiju/* * Cpp0.cpp * * Created on: 2014年7月8日 * Author: MIAO */#include #include #include #include #include #include using namespace std;int T;long long num[6],aim;long long nu原创 2014-09-14 15:00:40 · 699 阅读 · 0 评论 -
Ural1254(SPFA)
因为距离不同所以不能用广搜。#include #include #include #include #include #include using namespace std;int n,m,k;double v;char c[76][76];int vstd[6000];double d[6000];int dirx[]={-1,-1,-1,0,1,1,1,0};原创 2014-06-28 22:27:53 · 496 阅读 · 0 评论 -
Sicily9359(广搜)
有点小复杂的广搜,一开始将每个砖头的一半作为一个数组元素来存储,后来发现不满足广搜的规则。因为在一个砖头内移动是不算移动距离的,这样就会导致有些距离长的状态先被扩展出来,到达终点时不满足最短路径。最后改成每个砖头作为一个数组元素来存储,用结构体。分奇数行和偶数行讨论,每个砖头可以向其他6个方向扩展,广搜得到答案。#include #include #include usin原创 2013-11-17 12:50:18 · 537 阅读 · 0 评论 -
POJ2457(广搜)
需要输出路径,一开始没理清思路搞错了。pre数组用来记录每个节点的父节点,记录路径。#include #include #include #include using namespace std;bool vstd[50005]={false};int pre[50005];struct Vertex{ int in,out; int pos;}A[50005];原创 2013-12-05 20:57:06 · 623 阅读 · 0 评论 -
康托展开与逆展开
int cantor(int A[]){ int i,j,temp,num; num=0; for (i=0;i<8;i++) { temp=0; for (j=i+1;j<=8;j++) if (A[j]<A[i]) temp++; num+=fac[8-i]*temp; } return num+1;}原创 2013-12-08 11:15:30 · 603 阅读 · 0 评论 -
广搜走迷宫最短路径
#include #include #include #include #include #include #include #include using namespace std;struct pos{ int x,y; int total;}p;int main(){ int T; while (1) { queue q; int A[100]原创 2013-10-01 19:10:08 · 761 阅读 · 0 评论 -
poj3278(广搜剪枝)
1、扩展过的数值无需再扩展2、待扩展数值大于0时才可以进行 -1 扩展3、待扩展数值比k大时只能进行 -1 扩展#include #include using namespace std;struct pos{ int data; int time;};int main(){ int N,K; queue Q; pos p; int recor原创 2013-10-24 08:42:19 · 825 阅读 · 0 评论 -
poj3984(广搜走迷宫输出路径)
#include #include #include using namespace std;int main(){ int A[7][7]; int u; int fa[7][7]={{0}}; int record[7][7]={{0}}; queue q; int i,j; for (i=0;i<=4;i++)原创 2013-10-24 19:12:37 · 679 阅读 · 0 评论 -
POJ1753(广搜)
广搜,位运算存储状态记录是否访问过。#include #include #include using namespace std;struct S{ int A[16]; int pos;};int get_num(S s){ int i; int rec=0; for (i=0;i<=15;i++) if (s.A[i]==0) rec=rec<<1原创 2013-11-16 15:20:42 · 766 阅读 · 0 评论 -
Sicily1428(DFS)
#include #include #include #include using namespace std;char str[55][55];char A[55][55];int visited[55][55];int ans;int record;int length;int counter;void dfs(int x,int y){ visited[x][原创 2013-11-28 10:27:50 · 550 阅读 · 0 评论 -
Sicily9360(BFS无权图最短路径)
将hypertubes也当成一个顶点来考虑,存在vector[maxn]的后面。最终的结果除以2即可,算station再加上1。#include #include #include #include #define maxn 1005using namespace std;int main(){ int n,k,m; int i,j; int record[max原创 2013-11-21 19:28:43 · 989 阅读 · 0 评论 -
Sicily1781(广搜)
#include #include #include #include using namespace std;int A[505][505];int vstd[505][505];int main(){ int T; scanf("%d",&T); while (T--) { memset(vstd,0,sizeof(vstd)); queue Q; qu原创 2013-12-04 18:38:07 · 563 阅读 · 0 评论 -
Sicily2011(预处理广搜)
题目包含多组测试数据,一开始没有注意直接广搜TLE,需要先进行预处理,记录好每个状态到达最终状态的路经长,最后直接输出才不会TLE。用到了康托展开记录状态,用来判断是否被访问过。需要注意的是,这里在队列里存储的元素不是康托展开的数。若直接存储康托展开的数,则在进行状态转换时需要进行逆展开成数组再变换或者进行比较麻烦的处理。因此我在队列里直接存储的是数组而不是康托展开的那个数。#in原创 2013-12-08 15:14:07 · 575 阅读 · 0 评论 -
逻辑题:假设河的同一侧有警察、强盗……
假设河的同一侧有警察、强盗、路人A、路人A的两个孩子(A1,A2)、路人B、路人B的两个孩子(B1、B2),他们想要安全过河,限制条件如下:1、假设警察不在,强盗会杀死所有的跟他在一起的人2、假设路人A离开,路人B和路人A的孩子在一起,路人A的孩子会死掉3、假设路人B离开,路人A和路人B的孩子在一起,路人B的孩子会死掉4、河面上有一条船,但一次最多可以容纳两人过河5、只有警察、原创 2015-04-10 11:36:07 · 2422 阅读 · 0 评论