![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
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 · 659 阅读 · 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 · 612 阅读 · 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 · 934 阅读 · 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 · 900 阅读 · 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 · 1398 阅读 · 0 评论 -
Hdu 4405 Aeroplane chess - 简单DP
题目大意:问从0到n所花费时间平均时间。每次有投骰子,投到几就走几步。当然了,还有近道。题目分析:假设现在在i,那么接下来有六种可能的走法,分别是:i到i+1,在由i+1到ni到i+2,在由i+2到ni到i+3,在由i+3到ni到i+4,在由i+4到ni到i+5,在由i+5到ni到i+6,在由i+6到n其中每一个可能的走法发生的概率为n为原创 2013-09-05 21:01:56 · 819 阅读 · 0 评论 -
Hdu 4305 Lightning - 生成树计数 - 行列式求值
调试了很长的时间,orz!AC的代码,时间也蛮久的,o(╯□╰)o!首先需要建图,然后在构建矩阵,最后求行列式的值。就这么简单,可是代码各种bug。下面是AC代码:(可以优化的)#include #define maxn 305#define mod 10007int g[maxn][maxn];int d[maxn][maxn];int a[maxn][maxn];原创 2013-11-29 15:57:28 · 1105 阅读 · 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 · 622 阅读 · 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 · 802 阅读 · 0 评论 -
Hdu 2795 Billboard
题目大意:给定一个h*w的宣传板,然后在给定n个1*wi的小广告,问这些小广告在宣传板的第几行(因为每个小广告都想放在最上面,且最靠左边的位置)。题目分析:刚开始想到的是将整个宣传板看做时一个1~h*w的区间,然后用1*wi的小广告来按照题意来更新这段区间。但是这种想法很天真。操作性压根都没用。所以不妨换一种思路。将宣传版的每一行都看做是一个点,这样整个宣传板就可以看做是一个1~h的区间,然后原创 2013-08-17 17:07:21 · 513 阅读 · 0 评论 -
Hdu 1005 Number Sequence//矩阵快速幂
裸的矩阵乘法加矩阵快速幂 下面是代码:#include#include#define maxn 1010int 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 · 706 阅读 · 0 评论 -
Hdu 2896 病毒侵袭//Aho-Corasick 自动机
还是一道裸的AC自动机的题目,但是字符集扩大了。字符都是ASCII码可见字符。不知道什么是字符都是ASCII码可见字符,所以RE了很多次,囧! 下面是代码:#include#include#includeusing namespace std;const int maxn = 10005;const int maxc = 128;int ch[maxn*6][原创 2013-07-20 19:36:15 · 847 阅读 · 0 评论 -
Hdu 1398 Square Coins//整数划分(二)
这道题对整数能够拆分的数有个限制,必须是完全平方数,但是只需要稍微改动一点就可以做了。PS:其实我想用母函数做的,但是代码有点多,o(╯□╰)o!下面是代码:/*Hdu 1398 Square Coins 整数划分 PS:赶脚自己的代码写的有点繁琐,o(╯□╰)o!*/#includeusing namespace std;const int maxn = 310;原创 2013-06-08 19:28:14 · 645 阅读 · 0 评论 -
Hdu 2082 找单词//生成函数
一直不想用生成函数做题的,但是这道题找不到递推式,所以用母函数做了。原来也觉得用母函数的话,时间复杂度有点高,不过题目中有优化,o(╯□╰)o!下面是代码:/*Hdu 2082 找单词 组合数学 生成函数 这道题就当母函数的模板吧*/#includeusing namespace std;const int maxn = 50;int A[maxn];int原创 2013-06-12 21:14:25 · 779 阅读 · 0 评论 -
Hdu 2955 Robberies//01背包
题目描述:Roy去抢银行,如何在不被抓住的情况下抢到最多的钱。给出抢每个银行能抢到的钱和被抓到的概率。分析:刚开始以为概率只有两位小数,乘以100直接做的,结果发现数据不是这样的,果断wa了。然后一直在这里纠结,背包容量不为整数怎么办。无奈之下看一下别人的解题报告,发现可以让抢的钱看做背包容量,被抓住的概率为背包价值。(赶脚自己在死学习,o(╯□╰)o)。但是自己又想错了,直接将每次抢银行没被原创 2013-06-04 18:53:40 · 534 阅读 · 0 评论 -
Hdu 1028 Ignatius and the Princess III//整数划分(一)
直接代码吧:/*Hdu 1028 Ignatius and the Princess III 整数划分 */#include#includeusing namespace std;const int maxn = 150;int f[maxn][maxn];int n;int main(){ while(cin>>n) { for原创 2013-06-08 16:53:43 · 641 阅读 · 0 评论 -
Hdu递推求解专题练习(For Beginner)
在Hdu上是下面几题:下面是解题报告(因为有的题有点水,和贴发)Hdu 2044 一只小蜜蜂... 分析:数一下前几种可能的走法,不难发现这是个斐波那契数。但是题目给定任意两个数a和b(ao(╯□╰)o:只知道是斐波那契数,但是布吉岛斐波那契数数的增长很快,很容易爆int。下面是代码:/*Hdu 2044 一只小蜜蜂... 递推 斐波那契数原创 2013-06-14 21:01:39 · 1442 阅读 · 0 评论 -
Hdu 2222 Keywords Search//Aho-Corasick 自动机
裸的AC 自动机,但是题目没有说明白啊。keyword 是可以重复的,同时也要就算这些重复的keyword,囧!下面是代码,将当做AC 自动机的模板吧,以后几天,当然还是要多多理解AC 自动机,多敲模板了。#include#include#include#define maxs 1000050#define maxn 500050using namespace std;i原创 2013-07-19 23:33:31 · 635 阅读 · 0 评论 -
Hdu 3065 病毒侵袭持续中//Aho-Corasick Automaton
这道题题目没说是多case,所以无情wa了半个多小时。囧!AC自动机的水题,下面是代码:#include#include#include#includeusing namespace std;#define maxn 1010*50#define maxc 26int ch[maxn][maxc];int val[maxn];int f[maxn];int cnt;in原创 2013-07-21 09:26:15 · 915 阅读 · 0 评论 -
Hdu 1757 A Simple Math Problem//矩阵乘法
唉,是一道水题,但是错把b也为a,狂wa。。。 还有每次取模,否则,溢出。 下面是代码:#include#include#define maxn 15struct node{ int m[maxn][maxn]; void init() { memset(m,0,sizeof(m)); }} A,B;int k,m;原创 2013-07-22 10:27:56 · 617 阅读 · 0 评论 -
Hdu 3549 Flow Problem - 最大流
题目描述:裸的最大流题目分析:在刷UVa-11248-Frequency Hopping,一直wa,就拿这道题目来检测一下自己写的Dinic算法的zheng。所以题目是AC了,但是耗时严重啊,贴一下代码,囧。原创 2013-12-17 20:27:16 · 831 阅读 · 0 评论