hdu
YZBYZZ
这个作者很懒,什么都没留下…
展开
-
矩阵快速幂小结&反思 不断补充ing
等整理完网络流的题目,再整理矩阵的,此坑待填 ==================== poj3233 Matrix Power Series #include <cstdio> #include <cstring> #include <iostream> using namespace std; #define FD "%d" #...原创 2013-09-27 16:57:39 · 556 阅读 · 0 评论 -
hdu 1045 Fire Net (dfs || 二分图)
题意: 一个N*N的方格,上面有一些地方是墙。一个blockhouse能往四个方向射击,但不能穿透墙。问最多能放多少blockhouse使他们互不攻击到。 解法: 一、 因为数据范围很小,可以直接暴露dfs枚举所有可能,取最大值。 dfs在这里一个比较简单的实现是,是从(0,0)(这里用0表示)出发,递归到(n-1,n-1)(这里用n*n - 1表示)结束,这样比较好写,思路也很清晰。 ...原创 2013-11-21 14:02:43 · 869 阅读 · 0 评论 -
2013成都国赛 hdu 4782 Beautiful Soup (模拟)
去年现场赛没有过到题,今天碰巧看到hdu上有这题。 给出一段合法的HTML代码,要求将其格式化。 之前的时候,一直想着一步到位做完,结果连样例都没过。 今天采取先将tags和文本各自读出来,单独列成一行,再考虑缩进的问题(缩进跟前面比起来其实不算问题)。 然后就是各种全局变量满天飞。 在该博客到帮助下,找到错误的数据(输入的某段文本之间如果有TAB或回车,会多一个空格。而正确的应该是在文...原创 2014-08-16 20:30:41 · 758 阅读 · 2 评论 -
hdu4966 hdu4009 (最小树形图)
hdu4966 一开始以为是网络流,各种坑队友,后来才发现是相当裸的最小树形图。 添加一个根,连边到各课程的0级,权值为0。 然后每个课程从(i)级连边到(i-1)级,权值为0. 最后根据课程间的关系再连边。 #include <cstdio> #include <cstring> #include <iostream> u...原创 2014-08-20 23:55:25 · 620 阅读 · 0 评论 -
hdu 1874 畅通工程续 ( 最短路(dij/floyd))
简单图论,求最短路径,可用dij算法,复杂度o(n^2)。 一开始wa,看了别人的题解后发现:在读入的时候,可能u,v之间有多条(直通)道路,取最小的存储即可。 #include<cstdio> #include <cstring> using namespace std; #define MAX 205 #define MAX_DIS 10000000...原创 2013-07-13 10:44:20 · 635 阅读 · 0 评论 -
hdu 1285 确定比赛名次 ( 拓扑排序 )
基本拓扑排序问题。 一开始wa,经过一番纠结后发现是统计各结点入度时出了问题:输入数据可能会有重复,而我统计入度在读入的时候就执行,并且一开始没有判断该边是否已存在。 #include<cstdio> #include <cstring> using namespace std; int map[505][505],indegree[505],res[...原创 2013-07-13 10:53:59 · 899 阅读 · 0 评论 -
hdu 1058 Humble Numbers ( 构造因子为给定数的数序列、打表 )
除了1之外的所有Humble Numbers的因子都只能是2、3、5、7中的一个或多个。 也就是所有的Humble Numbers都可由1乘以2、3、5、7中的某些数的某次幂得到。 建议不会做的童鞋可以模拟程序求出前几个数,就能明白该算法的思想。 比较蛋疼的是序数词的格式需要注意一下。 ==================================== ...原创 2013-07-13 11:15:20 · 763 阅读 · 0 评论 -
hdu 3003 pupu ( (题目易混淆概念、详解) 二分快速幂 )
题目大意: 某生物成年的标志是身上的所有皮肤都从不透明变成过透明至少一次,不是同时变成透明才算。(= =!) 也就是求最里一层皮肤变成透明的天数(最里一层皮肤要变成透明,必须外面其他所有的皮肤都同时透明才行)。 一开始没理解这里,总是不明白样例。 理解后,就可以推导了。 所以,请分清【前n层皮肤同时为透明】和【第n层皮肤变为透明(即前n层皮肤都变透明"过”)】 接下来用total[n]...原创 2013-07-13 15:17:32 · 1117 阅读 · 0 评论 -
hdu 2647 Reward ( 拓扑排序 )
统计各结点出度,出度为0的点表示他们(A类)所需的reward为888,而reward要比他们多的(B类)则为888+1,reward要比B类多的(C类)则为888+2.。。。 其中若一开始从A类得到了B类,然后有某个B类要比另一个B类的reward多,则该B类的reward从888+1改为888+2.。。。 以此类推,采用逆向拓扑排序可解此题 #include <cst...原创 2013-07-14 20:25:32 · 607 阅读 · 0 评论 -
hdu 4004 The Frog's Games ( 二分+贪心 )
题目就是说,一条长为l的河有n块石头,给出每块石头离起始的岸边的距离,要求青蛙在经过小于等于m次跳跃后就能到达彼岸,求青蛙在跳的过程中,跳的距离最长的那一步距离是多少。不妨将其称为最长距离。 显而易见,如果只跳一步的话,最长距离就是河的宽度l。取最小的最长距离为0。 利用二分的思想,每次取其中值mid,进行判断。 如果在m次内能跳到彼岸且m次跳跃的距离皆小于mid,则说明 最长距离 最小 可以为m...原创 2013-09-28 19:01:39 · 911 阅读 · 1 评论 -
hdu 1247 Hat’s Words ( STL map、string的使用及本人忽视的map内部机制 )
比较正规的做法应该是枚举每个的单词分成两部分的情况,如果两部分都能找到则输出,所有情况都不能则不输出。 #include <iostream> #include <cstdio> #include <map> #include <cstring> #include <string> using namespace std;...原创 2013-07-13 14:30:16 · 872 阅读 · 0 评论 -
hdu 3342 Legal or Not ( 拓扑排序 )
基本拓扑排序,判断有无环路即可 #include <iostream> #include <cstring> using namespace std; #define MAX 105 bool map[MAX][MAX]; int in[MAX]; int toposort(int n) { for(int i=0;i<n;i++) ...原创 2013-07-14 20:42:41 · 591 阅读 · 0 评论 -
网络流小结&反思 不断补充ing
暑期培训结束之际,开始做网络流。 根据网上网络流的题目,断断续续做到了今天。 很少有能自己想到怎么构图的,有的虽然构图对了,但还是wa了。 还经常犯同样的错误。 为了改变这种状况,特写此文。 ======================================== 一个值得一提的是,在没有经过认真的思考之前尽量不要去搜题解或是看discuss。 在平时训练的时候,...原创 2013-09-27 16:47:59 · 739 阅读 · 0 评论 -
hdu 1166 敌兵布阵 ( 树状数组 )
很裸的树状数组 #include <cstdio> #include <cstring> const int N=50005; int a[N],t[N]; int n; inline int lowbit(int i){return i&(-i);} void update(int i,int j) { while(i<=n) {...原创 2013-09-29 18:04:09 · 654 阅读 · 0 评论