搜索
YYyyCCCcccBb
觉得为时已晚的时候,恰恰是最早的时候。
展开
-
L3-2 球队“食物链”(30 分)
L3-2 球队“食物链”(30 分)某国的足球联赛中有N支参赛球队,编号从1至N。联赛采用主客场双循环赛制,参赛球队两两之间在双方主场各赛一场。联赛战罢,结果已经尘埃落定。此时,联赛主席突发奇想,希望从中找出一条包含所有球队的“食物链”,来说明联赛的精彩程度。“食物链”为一个1至N的排列{ T1 T2 ⋯ TN },满足:球队T1战胜过球队T2,球队T2战胜过球...原创 2018-03-30 18:54:01 · 913 阅读 · 0 评论 -
大臣的旅费
思路:给出的一棵树,只要找到两个距离最大的节点就可以了。两遍搜#include#include#include#include#include #include using namespace std;int ans1,max1,ans2,max2;int n;const int maxn=100005;vector >vec[maxn];int vis[m原创 2017-04-04 17:04:33 · 280 阅读 · 0 评论 -
UVALive 4997 ABCD Tiles
题意: 给出n n 的方阵,在.上填 BCD 要求填的位置上,八个方向都不可以重色。思路: 自己训练做的时候就很智障。。。枚举四个方向是否为点 , 4个方向+自己 的八个方向是否有同色砖头#include #include #include #include using namespace std;char mp[105][105];int n;int ans;int原创 2017-03-30 11:10:44 · 222 阅读 · 0 评论 -
历届试题 回文数字
思路:暴力搜#include #include #include #include #include using namespace std;int ans[10005][10];int cnt=-1;int need=0;int num[10];void dfs5(int pos,int sum){ if(sum>need) return ;原创 2017-03-13 19:45:03 · 225 阅读 · 0 评论 -
hdu5253-连接的管道(优先队列+bfs)
思路:优先队列+bfs 走过的标记掉。第一次判断标记仍在前面了结果TLE了。。vis放在判断里,不要仍进队列就过来。#include #include #include #include using namespace std;int n,m;int mp[1005][1005];int vis[1005][1005];long long ans;struct原创 2017-03-10 20:50:50 · 368 阅读 · 0 评论 -
uestc oj 851方老师与素数
思路:素数打表,搜#include #include #include #include #include #include using namespace std;int a[10005];int vis[10005];int ans=0x3f3f3f3f;int solve(int s[]){ int cur=0;原创 2017-03-06 21:07:37 · 422 阅读 · 0 评论 -
1268 和为K的组合
#include #include #include #include #include #include #include using namespace std;const int maxn=1000000+5;typedef long long ll;int vis[maxn];int a[maxn];int n,k;int flag=0;int dfs(int原创 2017-02-13 21:15:29 · 304 阅读 · 0 评论 -
Two Semiknights Meet CodeForces - 362A
题意:两个K要开会,#格子可以走,不可以做开会地点。 两个K无时无刻都在移动,不可以停留思路:记录K的位置的奇偶性,存图比对原创 2017-03-01 21:19:32 · 244 阅读 · 0 评论 -
学霸的迷宫
思路:广搜,记录路径,反向输出#include #include #include #include using namespace std;int mp[505][505];char path[505][505];int vis[505][505];struct node{ int step,x,y;}; int n,m,ans;queue s;原创 2017-02-28 16:18:42 · 483 阅读 · 0 评论 -
2n皇后问题
思路:在白皇后处理好了之后,再处理黑皇后。。满满的搜索#include #include #include #include using namespace std;int mp[105][105];int black[105];int white[105];int vis[105][105];int ans;int n;bool judge(int x,原创 2017-02-27 21:00:48 · 283 阅读 · 0 评论 -
HDU 3974-Assign the task(dfs构建结构+裸线段树)
题意:一棵树的结构,父节点是老板,子节点是员工,每次给父节点分配的任务,立即会下分到他所有的子节点,有更新和查询命令。思路:第一次知道dfs可以用来维护某节点所管理的子节点的范围,因为dfs在回到开始点时,必定已经走过了所有子节点。在构建出一个可管理的区间后,就可以用裸线段树了#include #include #include #include #include原创 2017-05-10 18:52:34 · 550 阅读 · 2 评论 -
#1139 : 二分·二分答案
思路:用步数做距离,索敌值作为判断标准bfs#include #include #include #include #include #include #include using namespace std;const int maxn=10050;int n,m,k,t;vector >vec[maxn];int dis[maxn];bool bfs(原创 2017-05-04 16:29:48 · 307 阅读 · 0 评论 -
L3-004. 肿瘤诊断
L3-004. 肿瘤诊断时间限制400 ms内存限制65536 kB代码长度限制8000 B判题程序Standard作者陈越在诊断肿瘤疾病时,计算肿瘤体积是很重要的一环。给定病灶扫描切片中标注出的疑似肿瘤区域,请你计算肿瘤的体积。输入格式:输入第一行给出4个正整数:M、N、L、T,其中M和N是每张切片的尺寸(即每张切片是一个M×N的像素矩阵。最大分辨率是1286×128);L(<=60)是切...原创 2018-03-17 15:53:30 · 147 阅读 · 0 评论 -
求ab之间偶数分解为两个素数。
输入:a b求ab之间偶数分解为两个素数。比如10=3+7/5+5。12=5+7。14=1+13/7+7则输出2*1*2行数据。3 1 7 15 25 1 7 11 1 13 17 2#include <iostream>#include <algorithm>#include <cstring>#include <stdio.h>#inc...原创 2018-03-15 19:16:07 · 253 阅读 · 0 评论 -
hdu HDU5012-Dice(BFS)
题意:给出旋转方向,询问何时数字可以重合#include #include #include #include #include #include using namespace std;typedef long long ll;int a[10];int b[10];struct node{ int top,bottom,left,right,ft,bk;原创 2017-10-12 20:05:12 · 252 阅读 · 0 评论 -
HDU 5025:Saving Tang Monk (BFS + 状压)
题意:给出一个地图,#是墙 K是起点T是终点数字是钥匙,S是蛇,经过此处需要2秒,而如果第二次经过同一个S,第二次需要1秒,钥匙只是一个个拿,按数字大小。 在到达终点时候需要拿到所有钥匙思路:将蛇状压编号,将钥匙记录状态是第几个#include#include#includeusing namespace std;const int N = 105;int vis[N]原创 2017-10-11 15:41:20 · 258 阅读 · 0 评论 -
D - Debugging 2015-2016 Northwestern European Regional Contest (NWERC 2015)
题意:找bug位置,可以加print,运行。但是+printf 和运行都需要时间,询问最坏情况下,最少需要多少时间思路:之前写的二分,但是WA了,应该是有反例。记忆化搜索一下,这种情况包括了二分,以及更多的情况记忆化搜索:枚举加的printf的个数,找子问题最小#include#include#include#include#include#include原创 2017-10-09 12:56:02 · 273 阅读 · 0 评论 -
Sparse Graph HDU - 5876 (bfs)
题意:给出原图,在补图上求其S点到达各个点最短距离思路:保留所有的待更新的点,从S点开始,每次松弛一点(与S无边),之后把这个点从当更新的数组中删除#include #include #include #include #include #include #include using namespace std;const int maxn=200005;原创 2017-08-27 16:24:53 · 218 阅读 · 0 评论 -
HDU 5952 Counting Cliques(dfs)
题意: 给出一个图,询问有多少个大小为s的完全图思路:题中给出提示,数据很小,而且每个点的边也不多,在搜的时候枚举一点,之后用新加的点与之前的点做一个判断,如果都有边就继续搜,否则退出#include #include #include #include using namespace std;const int maxn=105;vectorvec[maxn];i原创 2017-08-06 15:42:45 · 212 阅读 · 0 评论 -
hdu 6113 度度熊的01世界
思路:找到1的连通块个数,之后找0的边界位置。如果没碰到边界,则满足一个被1完全包围,否则未被包围#include #include #include #include #include #include #define maxn 200typedef long long LL;int n, m;char mp[maxn][maxn];bool vis[maxn][m原创 2017-08-12 20:04:37 · 342 阅读 · 0 评论 -
UVALive 4763 Sudoku Extension(搜索)
题意:对于每个小的九宫格,行列不同,大的九宫格行列也不同, e表示可以填偶数,o代表可以填奇数。询问有多少种可能,其余的数字只能表示一种数字思路:还能说啥。。搜吧! 分块的第几块之前写错了!搞了一个半小时。#include#include#includeusing namespace std;int row[110][110];int con[110][110]原创 2017-04-27 21:09:13 · 252 阅读 · 0 评论 -
poj3669-Meteor Shower
思路:把图标记后有条件的bfs#include #include #include #include #include #include using namespace std;const int inf=0x3f3f3f3f;int mp[405][405];int vis[405][405];int n,m;int data[4][2]={0,1,0,-1,1,0原创 2017-05-25 16:25:03 · 285 阅读 · 0 评论 -
H - Tempter of the Bone HDU - 1010 奇偶剪枝
题意:n,m行列,t时间从s到达D思路:普通搜索过不去,TLE。必须用奇偶剪枝,网上http://www.tuicool.com/articles/muMVZj说的挺好的。#include #include #include #include #include using namespace std;char mp[105][105];int vis[105]原创 2016-12-17 17:05:39 · 279 阅读 · 0 评论 -
bfs--POJ 3126 Prime Path
思路: 搜索位上的数字 可以构成素数#include #include #include #include using namespace std;int n, m;int prime[10000];void init(){ int i,j; for( i=1000;i { for(j=2;j原创 2016-08-13 20:17:41 · 337 阅读 · 0 评论 -
poj2251-bfs- Dungeon Master
题意:立体图形,走迷宫,S到E思路:模板bfs。标记。。标记。。标记。。#include #include #include #include using namespace std;struct node{ int x,y ,z,step;};queue s;char mp[35][35][35];int vis[35][35][35];int a原创 2016-10-24 12:47:36 · 299 阅读 · 0 评论 -
poj-dfs-2531Network Saboteur
题意:把矩阵的点分为两部分,使得这两部分的权值和最大思路:将所有点放在一起,再重新组合#include #include #include using namespace std;int mp[25][25];int vis[25];int dis[25];int sum=0;int ans=0;int n;void dfs(int x,int len)原创 2016-10-24 12:46:05 · 308 阅读 · 0 评论 -
POJ-1088-滑雪
思路:mp记录长度,a记录这个单位高度,vis记录是否遍历过#include #include using namespace std;int col,row;int mp[105][105];int a[105][105];int vis[105][105];int solve(int x,int y){ if(xrow||ycol) return原创 2016-09-20 21:47:53 · 285 阅读 · 0 评论 -
DFS-PATA-1003
题意:从X到Y找到最短路径并且输出可以集合的最大人数#include #include using namespace std;int mapp[505][505];int num[505];int visit[505];int maxi=0;int len=9999999;int n,m,st,ed;int sum=0;void dfs(int x,i原创 2016-08-25 21:15:40 · 619 阅读 · 0 评论 -
dfs-poj-1321棋盘问题
思路:DFS,注意如果这个行不放,仍然需要搜索,所以需要进一步判断。WA了两发心里苦哇#include #include #include using namespace std;int cow[20];char mp[20][20];int cot=0;int n,m;int ans=0;void dfs(int tx,int rest){ if(rest原创 2016-09-16 17:24:21 · 345 阅读 · 0 评论 -
PATA-1013. Battle Over Cities (25)
题意:给出N个城镇m条道路,K个询问。查询:输出切断某个城镇后,最少多少条线路可以使其他城镇连同。思路:对于没访问过的城镇遍历,分出的区域数-1 即为需要的道路数#include #include #include using namespace std;int n,m,k;char mp[1005][1005];int visit[1005];voi原创 2016-09-14 20:54:13 · 395 阅读 · 0 评论 -
搜索-BFS-poj3278
题意:给定 两个坐标X ,Y 给定三个操作 1: 2*x 2: x-1;3: x+1;找到最少变换的步骤可以将X变为Y;思路:一开始以为是个思维题。但是写半天发现不是。时间1S,数据量不大,广搜过了! 搜索从一点到另外三点。通过给定的三种步骤。#include #include #include #include #include using names原创 2016-08-22 17:33:01 · 340 阅读 · 0 评论 -
搜索 -dfs-POJ-2488-A Knight's Journey
题意 : q行 p列找到是否有一个位置可以让马从这个位置开始跳。跳完。需要按列的顺序 从小到大按最小的顺序既然可以跳到任何一个位置。那么可以在棋盘上形成循环,可以遍历到所有格子,按顺序输出则从A1开始搜索此题为找是否有解,且最优#include #include #include #include using namespace std;struct Tree{原创 2016-08-09 15:11:59 · 597 阅读 · 0 评论 -
bfs-ccf-I’m stuck!
#include #include #include #include using namespace std;char mp[55][55];int fp[55][55];int tp[55][55];int r,c,cot=0;struct node{ int x,y;};int next[4][2]={{0,1},{0,-1},{-1原创 2016-09-10 13:14:00 · 492 阅读 · 0 评论 -
POJ-dfs-2676-Sudoku
题意:数独游戏。思路:在每次分割区域后,查询是否满足要求。#include #include #include using namespace std;int row[15][15];int col[15][15];int some[15][15];char save[15][15];int mp[15][15];int over;void Prin()原创 2016-10-24 12:49:16 · 339 阅读 · 0 评论 -
dfs-POJ-1014-Dividing
题意:给定权值1~6。给定1~6权值的个数。问是否能平分。思路:这题。。绝对是个多重背包问题。。然而为什么非要写DFS呢!! 往上第一的那个dfs是不是有点坑人。。正着写和反着写思路不一样,结果一样。。正着写都爆栈了!反着写的。。#include #include #include #include using namespace std;int a[10];in原创 2016-10-24 20:16:04 · 306 阅读 · 0 评论 -
dfs-hdu 5113 Black And White
题意:中文翻译:有一个包含从1到K一共K种颜色的N×M棋盘,使得任意两个相邻的区块不能有相同的颜色(如果它们的上、下、左、右任意一边的颜色与自身颜色不同)。第i种颜色可以被使用Ci次。Input第一行包含一个整数T(1 对每一个测试用例第一行包含三个整数N,M,K(0 第二行包含K个整数Ci(Ci>0),表示第i种颜色可以被使用的次数。原创 2016-10-31 21:29:31 · 406 阅读 · 0 评论 -
POJ 3206 Borg Maze(bfs+prim)
题意:每次从S点出发,可以一变二,分开走。问最少经过多少步可以遍历完所有的A点思路:之前做过一道bfs+dfs的题, bfs+dfs- poj2688-Cleaning Robot。这道题也是一样。一眼看上去就感觉单纯搜索解,一定是无法解决的,因为会有往返,因此就先用bfs进行预处理,造成一个稠密图也就是最小到达点的步骤,然后基于此图构造最小生成树#include原创 2016-11-11 12:11:58 · 295 阅读 · 0 评论 -
dfs-HDU 1175 连连看
思路:对于每次位置进行上下左右四个搜索,标记来的方向,如果相同翻转次数不增长。注意turn==2时同行同列的情况下会有优化,vis数组标记到达当前位置最小转弯次数PS:当时自己做死活不出,比赛时候怼了三发竟然出了,运气真不错#include #include #include using namespace std;int n,m;int vis[1005][10原创 2016-10-31 09:34:29 · 290 阅读 · 0 评论 -
HDU 2209 翻纸牌游戏
#include #include #include #include using namespace std;char s[100];void turn (int x){ int i; if(x==0) { i=0; } else i=x-1; for( i;ix+1;i++)原创 2016-10-31 09:31:55 · 442 阅读 · 0 评论 -
Codeforces Round #375 (Div. 2) D
题意:在给出的图形外面是一片海洋,*是陆地 .代表了水,如果水与海洋相连就不是湖,反之是湖。询问给出row 行 col列 m : 剩下m个湖最少添的水数思路:数据量太小, 三段 dfsdfs1搜与海洋相连的水。dfs2搜可以形成的湖 排序:dfs3按要求添水#include #include #include using namespace std;原创 2016-10-04 11:29:11 · 333 阅读 · 0 评论