![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
杭电
江南烟雨c
如果成功容易获得,那么你永远不知道自己的潜力有多大
展开
-
杭电1258 Sum it Up DFS 搜索
题目描述:给你一个数t作为最后等式的和,并给你一组数a[i](i例:t=4. a[]={4,3,2,2,1,1}输出 4,3+1,2+2,2+1+1解题思路:题目要求输出从大到小输出,所以可以先给所有的数进行降序排序。数据的规模很小,所以可以用暴力搜索。搜索过程中,为了避免重复输出,需要记录前一层搜索的起点,下一层递归搜索的起点不能与前一层记录的点一样#include #incl原创 2017-05-10 18:12:11 · 248 阅读 · 0 评论 -
杭电4801 PocKet Cube DFS
Pocket CubeTime Limit: 20000/10000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1785 Accepted Submission(s): 553Problem DescriptionPocket Cube is a原创 2017-05-08 11:06:29 · 225 阅读 · 0 评论 -
杭电5305 Friends 搜索
题意:有n个人(n#include #include #include #include #include #include #include #include using namespace std; #define LL __int64 int f[10],on[10],off[10]; int m,n; struc原创 2017-05-08 13:07:48 · 281 阅读 · 0 评论 -
杭电2149 Public Sale 巴什博弈
Public SaleTime Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 7998 Accepted Submission(s): 4771Problem Description虽然不想,但是现实总归是现实,Lel原创 2017-05-08 14:15:18 · 257 阅读 · 0 评论 -
杭电3699A hard Aoshu Problem DFS 搜索
A hard Aoshu ProblemTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 62768/32768 K (Java/Others)Total Submission(s): 1521 Accepted Submission(s): 800Problem DescriptionMath Olymp原创 2017-05-08 15:13:39 · 241 阅读 · 0 评论 -
杭电1878欧拉回路 并查集 DFS
无向图欧拉回路存在的充要条件:(1)、各点连通(2)、点的度都为偶数欧拉回路Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 14737 Accepted Submission(s): 5628原创 2017-05-08 19:44:39 · 252 阅读 · 0 评论 -
杭电1241Oil Deposits DFS 搜索
Oil DepositsTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 30422 Accepted Submission(s): 17621Problem DescriptionThe GeoSurvComp原创 2017-05-08 19:49:44 · 224 阅读 · 0 评论 -
杭电1078 FatMouse and Cheese DFS 记忆化搜索
记忆化搜索:空间换时间FatMouse and CheeseTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 9950 Accepted Submission(s): 4189Problem Descript原创 2017-05-08 20:02:31 · 255 阅读 · 0 评论 -
杭电1556 Color the ball
Color the ballTime Limit: 9000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 19723 Accepted Submission(s): 9816Problem DescriptionN个气球排成一排,从左到右依原创 2017-05-08 21:34:40 · 249 阅读 · 0 评论 -
杭电4499 Cannon DFS 搜索
题意:就是给你一个n*m的棋盘,然后上面已经有了 棋子,并给出这些棋子的坐标,但是这些棋子是死的就是不能动,然后让你在棋盘上面摆炮,但是炮之间不能互相吃,吃的规则我们斗懂得 炮隔山打嘛,问你最多能放几个炮#include #include #define max(a,b) a>b?a:b; int mp[10][10],n,m,q,ans; int cal(int x,原创 2017-05-08 23:43:29 · 239 阅读 · 0 评论 -
杭电1016Prime Ring Problem DFS 搜索
Prime Ring ProblemTime Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 25200 Accepted Submission(s): 11252Problem DescriptionA rin原创 2017-05-09 08:41:17 · 188 阅读 · 0 评论 -
杭电1501 Zipper DFS
题意::给三个字符串,保证第三个串长度是前两个串长度之和,确定前两个串保持原有的字母顺序能不能拼成第三个串#include #include #include using namespace std; int flag; int len1,len2,len,vis[300][600]; char str1[300],str2[300],str[600]; void原创 2017-05-09 18:29:42 · 190 阅读 · 0 评论 -
杭电 1026 Ignatius and the Princess I BFS 搜索 JAVA
题意:n*m迷宫,求从(0,0)到(n-1,m-1)的最少时间。'X'是墙,'.'是空地,'1'-'9'表示有怪物,消灭之需要数字对应的时间。package DFS;import java.util.PriorityQueue;import java.util.Scanner;import java.util.Stack;public class HD1026 { int n,原创 2017-05-09 19:26:14 · 236 阅读 · 0 评论 -
杭电1495 非常可乐 BFS
题意:输入a,b,c三个数,分别代表可乐,和两个杯子,三个容器可以互相倒,问能不能把a平分,能的话输出最小步数,不能就输出NO。思路:分别对6种倒法进行BFS#include #include #include #include using namespace std; struct node {原创 2017-05-09 20:33:27 · 342 阅读 · 0 评论 -
杭电 1181 变形课 DFS
变形课Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others)Total Submission(s): 18640 Accepted Submission(s): 6720Problem Description呃......变原创 2017-05-09 20:54:53 · 236 阅读 · 0 评论 -
杭电2612 Find a way BFS 搜索
题意:很多家肯德基店,求两个人去同一家的总的最短时间#include #include #include #include using namespace std; #define min(a,b) (a)>(b)?(b):(a) #define INF 1<<29 #define N 205 int dir[4][2]={{-1,0}, {1,0}, {0,-1}原创 2017-05-10 13:42:44 · 196 阅读 · 0 评论 -
杭电2209 翻纸牌游戏 DFS BFS 搜索
翻纸牌游戏Time Limit: 9000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 3617 Accepted Submission(s): 1356Problem Description有一种纸牌游戏,很有意思,给你N张纸牌,一字排开原创 2017-05-10 14:17:59 · 272 阅读 · 0 评论 -
杭电1728逃离迷宫解法二 BFS 搜索
特别注意:走过的点绝不可以标记,原因:如图三点1,2,3,假设1转弯数为5方向向下,2的转弯数为6方向向右,假设此时点2在队头,点2先搜到点3,如果把3标记,点3的转弯数为6,点1不能搜到点3,导致点3的转弯数不是最小。#include#includeusing namespace std;const int m=100+30;const int INT=1000;cha原创 2017-05-07 23:04:55 · 326 阅读 · 0 评论 -
杭电1728逃离迷宫 BFS 搜索
逃离迷宫Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 26525 Accepted Submission(s): 6464Problem Description 给定一个m × n (m行, n列)的迷宫,原创 2017-05-07 22:43:33 · 275 阅读 · 0 评论 -
杭电2102 A计划 BFS 搜索
A计划Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 21702 Accepted Submission(s): 5458Problem Description可怜的公主在一次次被魔王掳走一次次被骑士们救回来之原创 2017-05-07 20:56:27 · 205 阅读 · 0 评论 -
杭电1195 Open the Lock
题目大意:有一个紧急开启密码锁的任务。密码由四位数字组成;每个数字从1到9;每次,可以对每一个数字进行加1或者减1;当从1加到9时,由9再加1会变为1;当从9减到1时,由1再减1会变为9;也可以交换两个相邻的数字,每次操作作为一个step。你的任务就是用最少的步骤解锁!#include #include #include #include using namespace原创 2017-05-10 21:30:54 · 299 阅读 · 0 评论 -
杭电 1312 Red and Black BFS 搜索
题意:从‘@’出发,只能站在‘.’上,不能站在‘#’上,求能踩到的.的个数(包括起始点@)#include #include #include #include using namespace std; int map[22][22]; char a[22][22]; int n,m,fx,fy,kind; queue q; void Init() {原创 2017-05-10 21:43:30 · 182 阅读 · 0 评论 -
杭电1829 A Bug's Life 并查集
假设有1,22,3即1--2--3, 明显相邻的两个不能是同性别的,如果相邻两个是同性的,那么说明就可能是有同性恋存在。上面假设1是男性,用false来代替,那么按顺序分别是false, true, false假设 再加个关系3, 1那么由于1和3已经都有值了,都是false,说明可能有同性恋。种类并查集的关键在于与结点与根结点的距离, 如果距离是奇数那么性别就和跟结原创 2017-05-14 12:14:32 · 239 阅读 · 0 评论 -
杭电 2120 并查集 判断环的个数
题意:富裕的女王 要给ACMER分地,女王的土地中有很多瞭望塔,女王命令下人在瞭望塔(watchtower) 与瞭望塔之间建立笔直的围墙,被围墙圈起来的土地可以用来奖励ACMER,但是女王智商捉急,不知道最多能奖励多少ACMER,请你来帮忙。通过并查集的Union操作就可以实现瞭望塔之间的联通,如果两个瞭望塔所在根节点相同,说明有环。思路:手动画图发现如果1 2 3的根节点都为0原创 2017-05-14 13:25:56 · 474 阅读 · 0 评论 -
杭电 1272 小希的迷宫 并查集 无向图是否为树
一棵树必须具备如下特性:(1)是一个全连通图(所有节点相通)(2)无回路其中(2)等价于:(3)图的边数=节点数-1因此我们可以利用特性(1)(2)或者(1)(3)来判断。#include #include #include #include #include #include #include #include原创 2017-05-14 16:49:14 · 215 阅读 · 0 评论 -
杭电 Is It A Tree? 并查集 有向图是否为树
注意 这和上面的题有点不一样 是一个有向图所以要判断入度否则会出现判断成树的情况#include#include#define max 1000+10int set[max],in[max];//set记录父节点,in记录入度 int find(int p){ int child=p; int t;原创 2017-05-14 17:09:26 · 480 阅读 · 0 评论 -
POJ 1856 More is better
一个并查集 计算每个集合的元素 找出元素最多的那个集合,输出元素的个数输入n=0时也应该输出1,难点就在于,怎么计算集合的元素个数,其实只要在初始的时候每个元素都初始为1,然后合并集合的时候把两个集合元素加一起#include #include #include const int MAX = 10000005;int pre[MAX],rank[MAX],maxx;v原创 2017-05-14 17:19:27 · 413 阅读 · 0 评论 -
杭电 1232 并查集水题 畅通工程
题意:N个城市,判断需要多少条道路连通 例:8个城市都不连通的话最多需要7条道路#include #include using namespace std;int arr[100001];int p, q;int cnt;void init() { for (int i=0; i<100001; i++) { arr[i] = i; }}原创 2017-05-14 21:51:28 · 226 阅读 · 0 评论 -
杭电4403 A very hard Aoshu problem DFS
A very hard Aoshu problemTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1595 Accepted Submission(s): 1095Problem DescriptionAosh原创 2017-05-08 18:35:10 · 229 阅读 · 0 评论 -
杭电1242-Rescue-DFS
#includeint d[4][2]={0,1,0,-1,1,0,-1,0},p,n,m;char a[310][310],b[310][310];void dfs(int x,int y,int s){ int i,tx,ty; if(a[x][y]=='r') { if(s<p)p=s; return; } for(i=0;i<4;i++) { tx=x+d[原创 2017-05-07 17:36:48 · 268 阅读 · 0 评论 -
杭电1242-Rescue-广搜-优先队列
普通队列每一次出队列的元素只是步数上最优,但不一定是时间上最优的,这时即使我们把整个迷宫搜完以最小值作为最优依然不行,因为每一步处理完成都会把该状态标记为已处理vis[i][j]=1,因此,只要有一步不是最优,就会影响后面的结果。这题的正确做法是优先队列,每一次出队都是出时间最少的,这样可以保证每一步最优,并且一旦搜到目标即可立刻结束。3 3#a..x..r#比如这个图,n原创 2017-05-07 17:20:58 · 282 阅读 · 1 评论 -
杭电 2066 一个人的旅行 最短路 Dijstra
一个人的旅行Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 20267 Accepted Submission(s): 7081Problem Description虽然草儿是个路痴(就是在杭电待了一年原创 2017-05-16 09:39:54 · 365 阅读 · 0 评论 -
杭电 2544 最短路 Dijstra
最短路Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 34170 Accepted Submission(s): 14833Problem Description在每年的校赛里,所有进入决赛的同学都会获原创 2017-05-16 10:38:51 · 281 阅读 · 0 评论 -
杭电 1546 Idiomatic Phrases Game 最短路 Dijstra
题意:给定一个整数 和一串字符串,当字符串末端的四个字符与另一字符串的首端四个字符相同时,加上前面的字符串,然后找出连接状态的最小值,而且每一个符合条件的字符串的首尾四个字符必须相同,才能相加#include#include#includeusing namespace std;char a[1005][1005];int w[1005][1005];int vis[1005];原创 2017-05-16 11:18:05 · 236 阅读 · 0 评论 -
杭电 1595 find the longest of the shortest Dijstra
玛丽卡很生米尔科的气因为他找到了一个新的女朋友,她寻求报复。因为她不住在同一个城市,她开始准备长途旅行。我们知道每路多少分钟来从一个城市到另一个。米尔科无意中听到车里有一条路正在修理,它被堵住了,但不知道到底是哪条路。它可能来自马西娅的城市米尔科的无论哪一条路是封闭的。玛丽卡只会用非阻塞的道路旅行,她会以最短路径旅行。米尔科想知道要花多少时间她会在最坏的情况下,他的城市,所以他可以让他的女原创 2017-05-16 11:55:52 · 274 阅读 · 0 评论 -
杭电2952 Counting Sheep
Counting SheepTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2696 Accepted Submission(s): 1799Problem DescriptionA while ago原创 2017-05-07 20:23:23 · 300 阅读 · 0 评论 -
杭电 3368 Recersi DFS 搜索
题意:题意:给出了一个棋盘的状态,现在放一颗黑棋,问最多能把多少颗白旗翻转了,翻转的规则是:这颗黑棋和另一颗黑棋连线之间都是白旗,则这些白旗都能被翻转.思路: 找到空位,沿着一个方向开始一直搜素#include #include int d[8][2]={-1,0, -1,1, 0,1, 1,1, 1,0, 1,-1, 0,-1, -1,-1原创 2017-05-10 17:14:00 · 272 阅读 · 0 评论