Hdu解题报告
文章平均质量分 68
mr_zys
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Hdu 1007 - Quoit Design//分治,最近点对,计算几何
正在学习算法分析与设计,讲到了分治法求最近点对。。。 但是自己写了一份代码总是RE,求大神指教啊。 下面的是RE的代码: #include #include #include #define Min(a,b) (a<b?a:b) using namespace std; const int maxn = 100005; const double INF = 100000000.0; st原创 2013-05-24 00:47:14 · 716 阅读 · 0 评论 -
Hdu 1695 GCD - 欧拉函数 + 容斥
题目大意: 给定两个区间[1,b]和[1,d],x∈[1,b],y∈[1,d],问有多少种组合,使得gcd(x,y) = k。 题目分析: 将gcd(x,y) = k 化简得 gcd(x/k,y/k) = 1,既表示在两个区间中求多少对数字互质。 最简单的做法就是在区间中枚举,但是有一个条件 gcd(x,y) 和gcd(y,x)属于同一种情况,所以要避免枚举重复的。 如果不想枚举重复的,原创 2013-09-07 10:51:09 · 686 阅读 · 0 评论 -
Hdu 4400 Mines - 搜索 + STL
题目大意: 有点像扫雷游戏,炸弹爆炸的时候就像BFS一样。要确定爆炸的范围。 题目分析: 数据很大,暴力会超时。那么只有离散化以后,在枚举了。 注意枚举的上界和下届,很显然,对于x坐标的下界为x2-x1,上界为x2+x1;对于y坐标的下界为y2-y1,,上界为y2+y1。 下面是代码: #include #include #include #include #include原创 2013-09-02 19:22:27 · 989 阅读 · 0 评论 -
Hdu 4714 Tree2cycle - DFS
题目大意: 给定一颗树,求需要最少减多少枝和加多少枝使其成为一个环。 题目分析: 其实题目已经给出了做法,但是自己在减枝的时候减错了。应该减那条和其父结点相连的那一条边。 A cycle of n nodes is defined as follows: (1)a graph with n nodes and n edges (2)the degree of every node i原创 2013-09-10 11:57:11 · 958 阅读 · 0 评论 -
Hdu 4403 A very hard Aoshu problem - 爆搜
题目大意: 给定n个数字,用一个“=”和若干“+”能组成多少中等式 题目分析: n很小,可以考虑爆搜。但是不好写,因为没想到做预处理,将能构成的所有数先保存,然后直接爆搜。当然,还是可以剪枝的。 下面是代码: #include #include using namespace std; const int maxn = 15; string str; int num[maxn][ma原创 2013-09-03 18:24:24 · 1473 阅读 · 0 评论 -
Hdu 4405 Aeroplane chess - 简单DP
题目大意: 问从0到n所花费时间平均时间。每次有投骰子,投到几就走几步。当然了,还有近道。 题目分析: 假设现在在i,那么接下来有六种可能的走法,分别是: i到i+1,在由i+1到n i到i+2,在由i+2到n i到i+3,在由i+3到n i到i+4,在由i+4到n i到i+5,在由i+5到n i到i+6,在由i+6到n 其中每一个可能的走法发生的概率为n为原创 2013-09-05 21:01:56 · 881 阅读 · 0 评论 -
Hdu 4305 Lightning - 生成树计数 - 行列式求值
调试了很长的时间,orz! AC的代码,时间也蛮久的,o(╯□╰)o! 首先需要建图,然后在构建矩阵,最后求行列式的值。就这么简单,可是代码各种bug。 下面是AC代码:(可以优化的) #include #define maxn 305 #define mod 10007 int g[maxn][maxn]; int d[maxn][maxn]; int a[maxn][maxn];原创 2013-11-29 15:57:28 · 1175 阅读 · 0 评论 -
Hdu 1532 Drainage Ditches - 最大流入门
裸的最大流的题目,直接模版。 下面是代码: #include #include #include #include using namespace std; const int maxn = 300; const int inf = 0xfffff; int g[maxn][maxn]; int pre[maxn]; int maxflow; int n,m; void Edmond原创 2013-12-03 16:55:25 · 675 阅读 · 0 评论 -
Hdu 1853 Cyclic Tour - 最小费用最大流
题目描述:给定n个点和m条边,每条边都有权值。判断是否所有的点都在环中。如果是,则输出遍历这些环的最小值;如果没有,就输出-1 题目分析:如果所有的点都在环中,那么这些点的出度等于入度。然后就是网路流了,囧!(orz!) 下面是代码: #include #include #include #include using namespace std; const int maxn_v原创 2013-12-11 15:31:30 · 868 阅读 · 0 评论 -
Hdu 2795 Billboard
题目大意:给定一个h*w的宣传板,然后在给定n个1*wi的小广告,问这些小广告在宣传板的第几行(因为每个小广告都想放在最上面,且最靠左边的位置)。 题目分析:刚开始想到的是将整个宣传板看做时一个1~h*w的区间,然后用1*wi的小广告来按照题意来更新这段区间。但是这种想法很天真。操作性压根都没用。所以不妨换一种思路。将宣传版的每一行都看做是一个点,这样整个宣传板就可以看做是一个1~h的区间,然后原创 2013-08-17 17:07:21 · 568 阅读 · 0 评论 -
Hdu 1005 Number Sequence//矩阵快速幂
裸的矩阵乘法加矩阵快速幂 下面是代码: #include #include #define maxn 1010 int A,B,n; struct node { int m[2][2]; void init() { memset(m,0,sizeof(m)); } } a,b; node martix_mul(node a,node b) {原创 2013-07-21 21:13:57 · 753 阅读 · 0 评论 -
Hdu 2896 病毒侵袭//Aho-Corasick 自动机
还是一道裸的AC自动机的题目,但是字符集扩大了。字符都是ASCII码可见字符。不知道什么是字符都是ASCII码可见字符,所以RE了很多次,囧! 下面是代码: #include #include #include using namespace std; const int maxn = 10005; const int maxc = 128; int ch[maxn*6][原创 2013-07-20 19:36:15 · 895 阅读 · 0 评论 -
Hdu 1398 Square Coins//整数划分(二)
这道题对整数能够拆分的数有个限制,必须是完全平方数,但是只需要稍微改动一点就可以做了。PS:其实我想用母函数做的,但是代码有点多,o(╯□╰)o! 下面是代码: /*Hdu 1398 Square Coins 整数划分 PS:赶脚自己的代码写的有点繁琐,o(╯□╰)o! */ #include using namespace std; const int maxn = 310;原创 2013-06-08 19:28:14 · 707 阅读 · 0 评论 -
Hdu 2082 找单词//生成函数
一直不想用生成函数做题的,但是这道题找不到递推式,所以用母函数做了。 原来也觉得用母函数的话,时间复杂度有点高,不过题目中有优化,o(╯□╰)o! 下面是代码: /*Hdu 2082 找单词 组合数学 生成函数 这道题就当母函数的模板吧 */ #include using namespace std; const int maxn = 50; int A[maxn]; int原创 2013-06-12 21:14:25 · 854 阅读 · 0 评论 -
Hdu 2955 Robberies//01背包
题目描述:Roy去抢银行,如何在不被抓住的情况下抢到最多的钱。给出抢每个银行能抢到的钱和被抓到的概率。 分析:刚开始以为概率只有两位小数,乘以100直接做的,结果发现数据不是这样的,果断wa了。然后一直在这里纠结,背包容量不为整数怎么办。无奈之下看一下别人的解题报告,发现可以让抢的钱看做背包容量,被抓住的概率为背包价值。(赶脚自己在死学习,o(╯□╰)o)。但是自己又想错了,直接将每次抢银行没被原创 2013-06-04 18:53:40 · 602 阅读 · 0 评论 -
Hdu 1028 Ignatius and the Princess III//整数划分(一)
直接代码吧: /*Hdu 1028 Ignatius and the Princess III 整数划分 */ #include #include using namespace std; const int maxn = 150; int f[maxn][maxn]; int n; int main() { while(cin>>n) { for原创 2013-06-08 16:53:43 · 692 阅读 · 0 评论 -
Hdu递推求解专题练习(For Beginner)
在Hdu上是下面几题: 下面是解题报告(因为有的题有点水,和贴发) Hdu 2044 一只小蜜蜂... 分析:数一下前几种可能的走法,不难发现这是个斐波那契数。但是题目给定任意两个数a和b(a o(╯□╰)o:只知道是斐波那契数,但是布吉岛斐波那契数数的增长很快,很容易爆int。 下面是代码: /*Hdu 2044 一只小蜜蜂... 递推 斐波那契数原创 2013-06-14 21:01:39 · 1615 阅读 · 0 评论 -
Hdu 2222 Keywords Search//Aho-Corasick 自动机
裸的AC 自动机,但是题目没有说明白啊。 keyword 是可以重复的,同时也要就算这些重复的keyword,囧! 下面是代码,将当做AC 自动机的模板吧,以后几天,当然还是要多多理解AC 自动机,多敲模板了。 #include #include #include #define maxs 1000050 #define maxn 500050 using namespace std; i原创 2013-07-19 23:33:31 · 701 阅读 · 0 评论 -
Hdu 3065 病毒侵袭持续中//Aho-Corasick Automaton
这道题题目没说是多case,所以无情wa了半个多小时。囧!AC自动机的水题,下面是代码: #include #include #include #include using namespace std; #define maxn 1010*50 #define maxc 26 int ch[maxn][maxc]; int val[maxn]; int f[maxn]; int cnt; in原创 2013-07-21 09:26:15 · 988 阅读 · 0 评论 -
Hdu 1757 A Simple Math Problem//矩阵乘法
唉,是一道水题,但是错把b也为a,狂wa。。。 还有每次取模,否则,溢出。 下面是代码: #include #include #define maxn 15 struct node { int m[maxn][maxn]; void init() { memset(m,0,sizeof(m)); } } A,B; int k,m;原创 2013-07-22 10:27:56 · 688 阅读 · 0 评论 -
Hdu 3549 Flow Problem - 最大流
题目描述:裸的最大流 题目分析:在刷UVa-11248-Frequency Hopping,一直wa,就拿这道题目来检测一下自己写的Dinic算法的zheng。所以题目是AC了,但是耗时严重啊,贴一下代码,囧。原创 2013-12-17 20:27:16 · 898 阅读 · 0 评论
分享