随笔分类 -  HDU

摘要:二分图匹配 题意:给你一个矩阵,X所在的地方是墙,往上面放碉堡,碉堡所在的行和列上的所有的点消灭掉。 与最简单的二分图不同的是,有墙。 做二分图的题,第一步要建图,在这里,二分图是一条边的两端分处于不同的点集、所以每找到一个点就把和他同一行、同一列的点都做同样的标记。遇到墙就停下 阅读全文
posted @ 2016-04-29 11:05 萌萌哒哒哒 阅读(251) 评论(0) 推荐(0)
摘要:敌兵布阵,线段树,N个阵营,每个阵营会增加或者减少m个士兵,查询的时候要查询任意区间里的士兵数量 AC代码: 阅读全文
posted @ 2016-04-15 20:31 萌萌哒哒哒 阅读(147) 评论(0) 推荐(0)
摘要:题意:n,m。n个人,m个关系。 m行关系,ab之间认识。 求这个图是不是个二分图。二分图的定义是,一条边中的两个端点分属于不同的点集,这就意味着所有互相认识的人都在不同的阵营,所以在同一阵营的都互相不认识。 判断是否是二分图可以用DNA交叉染色法,BFSDFS都行。 如果可以构成二分图的话,求最大 阅读全文
posted @ 2016-04-11 17:47 萌萌哒哒哒 阅读(262) 评论(0) 推荐(0)
摘要:题意: 给你一个字符串,可以打乱顺序,问可以组合成几种回文串。 其实就是给你一些字母,让你组合回文串。 首先判断能不能成一个回文串,其次计算一共有几种方法。 len为奇数:只有一个字母为奇数,其余必须为偶数。 len为偶数:所有的字母都要是偶数个。 计算回文串的方法是:一共有len/2个位置可选。 阅读全文
posted @ 2016-03-26 23:32 萌萌哒哒哒 阅读(407) 评论(0) 推荐(0)
摘要:题意:给你一个集合,求这个集合所有子集的异或结果。 解法:1、异或运算的自反性。如果一个数异或偶数次的话,结果为零。 2、一个集合的子集数是2的n次方个 3、一个集合里的数(数的个数大于等于二),在所有的子集里会出现偶数次。 综上,所有的数异或偶数的时候,全都等于0;特殊情况,集合里只有一个数。 代 阅读全文
posted @ 2016-03-26 23:23 萌萌哒哒哒 阅读(86) 评论(0) 推荐(0)
摘要:1001: 题意:     方法:最小公倍数。。我写的比较挫。 1002 题意:   阅读全文
posted @ 2016-03-12 21:20 萌萌哒哒哒 阅读(159) 评论(0) 推荐(0)
摘要:题意:没看懂,实验室的队友们6翻了。 大体就是,打一个素数表,然后把这个数分解了。最后问的是有多少个不同的指数,和两个数之间的距离,也就是指数之差的和。 代码: #include <stdio.h> #include <string.h> #include <algorithm> #include 阅读全文
posted @ 2016-02-29 10:47 萌萌哒哒哒 阅读(146) 评论(0) 推荐(0)
摘要:http://acm.hdu.edu.cn/contests/contest_showproblem.php?cid=657&pid=1005题意:给你一个X,一个K,求第K个小的Y使他满足 X|Y=X+Y;解法:此题可由打表找规律;找到的规律是,当原数的1全部变成0,其余的零 所排列组合的 出的数... 阅读全文
posted @ 2015-12-26 20:50 萌萌哒哒哒 阅读(233) 评论(0) 推荐(0)
摘要:这题意也是醉.简单dfs;对于一个油田"@"来说,上下左右斜上斜下八个方向如果也是"@"的话,就算同一个;那么,就用深搜搜呗..每次找到一个"@",就把所有的跟他相关联的全部标记上,然后继续找下一个;AC代码: 1 #include 2 #include 3 #include 4 #inclu... 阅读全文
posted @ 2015-10-30 09:50 萌萌哒哒哒 阅读(162) 评论(0) 推荐(0)
摘要:题意:Y和M要找一家KFC谈谈,求所用的最短时间,时间是根据走的步数决定的;思路:搜搜搜啊,不过T了三发(忧桑,需要剪枝;BFS+剪枝:剪枝方法:Y和M分别只有一个,但是"@"KFC却有很多;这样的话,我们可以从"Y"和"M"出发,记录所有的能到达Y和M的步数;这样的话,只需要搜两遍图然后查询就可以... 阅读全文
posted @ 2015-10-29 19:30 萌萌哒哒哒 阅读(193) 评论(0) 推荐(0)
摘要:题意:看题,中文题;思路:坐这题的时候SB了要同时保证连通性和唯一路径;先用并查集建图,建图时要注意不能让已经在同一条路里的两个节点,通过另外的路连接起来。如果结束之后,所有的节点都满足并查集的条件了,再检查一下是不是他们都是连通的,即是否他们都有同一个父结点。代码很搓,随便看看AC代码:#incl... 阅读全文
posted @ 2015-10-27 20:55 萌萌哒哒哒 阅读(124) 评论(0) 推荐(0)
摘要:题意:一只狗(柴犬,看到一块骨头,迷失在了maze里,S是起点,D是终点,问你能不能在时间T时从起点到达终点. 这题有个小trick: 奇偶剪枝+普通剪枝 解释一下: 普通剪枝:从S到D要走的步数是k=abs(x1-x2)+abs(y1-y2);那么如果k>=T,永远不可能到达; 奇偶剪枝: 首先, 阅读全文
posted @ 2015-10-23 20:24 萌萌哒哒哒 阅读(325) 评论(0) 推荐(0)
摘要:题意:给你一些木棒,问这些木棒首尾相连能不能连成一个正方形。dfs+剪枝(卧槽一说剪枝瞬间高大上了思路:首先看一看能不能被4整除,不能的话当然是NO;如果能的话,从头进行递归;递归过程中,如果能够连成一条边,则继续往下递归,如果不能的话,立刻停止递归,消除标记。AC代码:#include #incl... 阅读全文
posted @ 2015-10-23 17:20 萌萌哒哒哒 阅读(114) 评论(0) 推荐(0)
摘要:题意:数羊,规则是一只羊上下左右的羊都算是同一只羊,"#"是羊,"."是草,深搜咯~AC代码:#include #include #include const int dx[4]= {1,0,-1,0};const int dy[4]= {0,1,0,-1};char s[105][105];int... 阅读全文
posted @ 2015-10-23 17:08 萌萌哒哒哒 阅读(184) 评论(0) 推荐(0)
摘要:题意:一个man站在@上,只能走上下左右四个方向,且不能踩到"#",问最多能猜到多少个".";简单dfs,既然只能走上下左右,那就把所有的方向全部遍历一遍;AC代码:#include #include #include const int dx[4]={1,0,-1,0};const int dy[... 阅读全文
posted @ 2015-10-23 17:01 萌萌哒哒哒 阅读(263) 评论(0) 推荐(0)
摘要:中文题。思路:用for循环往每一行里放皇后,x[]存的数是列数,要判断是否在同一斜线上,条件是abs(列数相减)==abs(行数相减):解释一下,如果两个点左低右高的话,那么他们的行列数之和相等;如果两个点左高右低的话,那么他们行数之差和列数之差相同;两个条件合并起来就是上面那个,当然也可以不作改动... 阅读全文
posted @ 2015-10-23 16:50 萌萌哒哒哒 阅读(179) 评论(0) 推荐(0)
摘要:题意:中文题,就是爽!AC代码:#include #include #include #include #define INF 0x3f3f3f3fusing namespace std;char s[500];char s1[4000][400];int dis[4000],k1,f;void d... 阅读全文
posted @ 2015-10-23 00:43 萌萌哒哒哒 阅读(205) 评论(0) 推荐(0)
摘要:题意:1-n围成一个圈,要使相邻的两个数之和为素数;DFS第二道没看题解自己搜出来的题,好有成就感!!(虽然比较水吧= =上代码咯~ 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; ... 阅读全文
posted @ 2015-10-21 20:20 萌萌哒哒哒 阅读(104) 评论(0) 推荐(0)
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=1518#include #include #include #include using namespace std;const int dx[4]= {1,0,-1,0};const int dy[4]= {0,... 阅读全文
posted @ 2015-10-20 21:04 萌萌哒哒哒 阅读(118) 评论(0) 推荐(0)
摘要:题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=94468#problem/E题意:n的意思是一共有2的n次方重量的金子,要使恰好a+b=重量,每次只能把金子炸开一半。思路:只需要找到a和b中 最小的 2的次方 因子。AC代码:#... 阅读全文
posted @ 2015-10-11 16:06 萌萌哒哒哒 阅读(128) 评论(0) 推荐(0)