
HDUOJ
文章平均质量分 81
u011008379
这个作者很懒,什么都没留下…
展开
-
HDU 2222
        一道AC自动机模板题。AC自动机的介绍可以参考AC自动机算法和多模字符串匹配算法之AC自动机—原理与实现。如果对第一篇文章中的绿色有向边不太理解的话,可以结合这原创 2019-01-29 19:46:34 · 290 阅读 · 0 评论 -
HDU 1010 / ZOJ 2110
两道题目是一样的原创 2014-10-08 13:42:19 · 551 阅读 · 0 评论 -
hdu 5053
这题本身没什么好说的,只是说明了我不是yiban原创 2014-09-28 10:59:06 · 650 阅读 · 0 评论 -
HDU 5045
这道题可以用二分图的zu原创 2014-09-28 10:43:09 · 545 阅读 · 0 评论 -
HDU 1166
这道题更适合用树状数组,不过现在还不会,所以原创 2014-09-17 16:41:27 · 699 阅读 · 0 评论 -
HDU 1166
用树状数组来解决,代码简单很多。 树状数组讲解原创 2014-09-17 19:15:02 · 598 阅读 · 0 评论 -
HDU 4788
区域赛的水题,不过通过这道题我才知道printf函数可以自己实现四舍五入。代码(G++):#include #include #include using namespace std;int main(){ //freopen("in.txt","r",stdin); int t,c,x,k; char unit[5]; double ans原创 2014-09-01 19:43:04 · 467 阅读 · 0 评论 -
HDU 4786
很好的一道题目,考验人的ji原创 2014-09-01 15:50:34 · 572 阅读 · 0 评论 -
HDU 1042
这道题是一道大数相乘的题目,本来不是太复杂,但是开始自己思路太死板,写了又长又有错的代码,在看完别人代码后才明白怎么做。另外提示一下,数组最好开到40000,否则可能算出的答案有问题。 代码(C++):#include #define MAX 40000using namespace std;int main(){ int array[MAX+1],n,k,t,原创 2014-01-15 11:47:12 · 624 阅读 · 0 评论 -
HDU 2853
这是一道很值得yizuo二分图最佳匹配的题原创 2014-08-15 21:38:31 · 785 阅读 · 0 评论 -
HDU 2255
一道二分图最佳匹配的rementi原创 2014-08-15 12:54:28 · 830 阅读 · 0 评论 -
HDU 1532
这道题和poj 1273是一样的。之所以再做一遍是因为试用yi原创 2014-07-30 11:35:05 · 574 阅读 · 0 评论 -
HDU 4771
一道常规的搜索题。 不过我犯了一个cuowu原创 2014-10-08 16:23:37 · 620 阅读 · 0 评论 -
HDU 5023
和上一篇那题一样原创 2014-09-29 17:52:40 · 538 阅读 · 0 评论 -
POJ1759
同样是二分搜索,这道题也挺好的,值得做做。首先你需要对公式Hi = (Hi-1 + Hi+1)/2 - 1做一个变换,改成Hi+1 = 2*Hi - Hi-1 + 2。使用这样的递推公式,那么只要知道H2就可以把剩下的都求出来,那么如何这道题就明朗多了。首先枚举H2的值,然后递推出剩余的H值,然后判断是否满足Hi >= 0, for all 1 <= i <= N的要求。原创 2016-04-16 16:54:33 · 567 阅读 · 0 评论 -
HDU 1043
一道十分经典的搜索问题,也顺便考察了一下八数码有解无解判断的知识和哈希的方法,所以导致了有很多种解法。不过杭电数据比北大的强,所以花了我好大一番功夫。我在这里采用了A*+康拓展开(哈希)的方法,效果还不错。原创 2015-05-04 13:58:37 · 596 阅读 · 0 评论 -
HDU 1195
一道广搜的题。 看到bie原创 2014-10-15 16:07:17 · 667 阅读 · 0 评论 -
HDU 2141
一道二分搜索的题。 开始kandao原创 2014-10-30 12:16:17 · 504 阅读 · 0 评论 -
HDU 2041
一道很经典的递归的题目,本来yingga原创 2014-10-29 21:46:36 · 467 阅读 · 0 评论 -
HDU 5040
一道网络赛的搜索题原创 2014-10-02 12:57:01 · 532 阅读 · 0 评论 -
HDU 4770
这道题利用DFSjingxing原创 2014-10-10 21:21:09 · 631 阅读 · 0 评论 -
HDU 5025
一道较为复杂的搜索题。原创 2014-10-01 15:26:36 · 734 阅读 · 0 评论 -
HDU 4801
这是2013年长沙现场赛d原创 2014-10-11 14:01:15 · 720 阅读 · 0 评论 -
HDU 5037
一道贪心的题目,由于原创 2014-09-30 13:02:24 · 709 阅读 · 0 评论 -
HDU 5024
一道搜索题,挺好的一题,可惜开始理解错题目的意思了。 题目y原创 2014-09-30 14:42:11 · 518 阅读 · 0 评论 -
HDU 1016
这道题是求素数环,题意不难理解,思路大家都会有,但这道题需要注意TLE,所以不能用枚举的方法,要用搜索的方法,遍历解答树,利用回溯,节省时间。关于解答树的概念可以参考《算法竞赛入门经典》(刘汝佳)P118。 此外,还要注意,由于可能存在n没有素数环,所以不能边找边输出,需要保存。还有,在输出格式上允许最后一个结果后面输出一行空格。代码(G++):#include原创 2014-03-12 23:53:08 · 620 阅读 · 0 评论 -
HDU 4848
这是一道个人认为很不错的suosu原创 2014-07-26 14:22:16 · 1414 阅读 · 1 评论 -
HDU 4861
这道题是一道简单题,可是让我卡了pantian原创 2014-07-23 16:02:24 · 577 阅读 · 0 评论 -
HDU 1370
这是一道有关中国剩余定理的题目。 中国剩余定理解法(摘自维基百科:维基百科-中国剩余定理):用现代数学的语言来说明的话,中国剩余定理给出了以下的一元线性同余方程组:有解的判定条件,并用构造法给出了在有解情况下解的具体形式。中国剩余定理说明:假设整数m1, m2, ... , mn两两互质,则对任意的整数:a1, a2, ... , an,原创 2014-02-21 15:29:33 · 837 阅读 · 0 评论 -
HDU 1266
今天写了基础题,是关于整型数翻转的,虽然不难,但是看到杭电讨论版块一些人说要注意前导0的错误说法,所以打算写一篇博客说明一下。(如果我说错了,请大家批评指正!)首先这道题不存在有前导0的问题,因为题目给出了各种情况下的翻转方法,其中并没有说明如何处理前导0,所以如果题目和测试数据是严谨的话,就不该出现这种没有说明处理方法的特殊情况。实际上我的代码没有处理前导0,而且出现前导0的话,我的程序也不原创 2014-01-20 16:22:40 · 1059 阅读 · 0 评论 -
HDU 2824
这还是与欧拉函数有关的,不过这次不是求一个,而是求多个,所以我们不能一个一个用求单个数的欧拉函数值的方法,需要用筛法求多个连续数的欧拉函数值。如果你没有看过筛法求素数,那么建议先看一下筛法求素数,这将有助于理解这道题的算法思想。后面给出的代码,会算出从2~n所有数的欧拉函数值,我们只需截取a~b范围内的欧拉函数值相加即可。首先,需要声明一个数组,并需要全部初始化为0。然后从2~n中找出原创 2014-02-18 22:51:30 · 828 阅读 · 0 评论 -
HDU 1061
这题是一道关于快速幂算法的题目,这道题有很多种解题方法,好像找规律也行,不过我在这里不打算讲找规律的方法(我也没找过),我主要是讲一下利用二进制来实现快速幂的方法。 例如:求a^b(不考虑超范围的问题)。先把b按二进制展开,即b=bn*2^n+......+b1*2^1+b0*2^0,所以a^b=a^(bn*2^n+......+b1*2^1+b0*2^0) =a^(bn*2^原创 2014-02-26 16:32:00 · 951 阅读 · 0 评论 -
HDU 1196
这道题是一道需要用位运算的题目,题目所谓的lowest bit,其实是指1的最低位,我们只需将1和后面的0所构成的一个数以十进制的形式输出即可。 我们在这里需要用到位操作符中的“&”和一个用于试探的数字,这个用于试探的数字要求就是在二进制形式中只出现一个1,即00000001,00000010,00000100等等。让试探数字中的1从最低位开始逐渐向高位移动(这里就要用到另一个操作符“原创 2014-01-16 11:56:16 · 890 阅读 · 0 评论 -
HDU 1452
这道题是求一个数所有因子的和,但这道题给出的数是底数相同,但指数不同,而且十分的大。 先将2004分解成素因子乘积的形式,即2004=2^2 * 3 * 167,那么2004^x=2^(2*x) * 3^x * 167^x。由数论知识可知因子和函数是一个乘性函数f(又叫积性函数),所以对于两个互素的正整数a,b,有f(a*b)=f(a)*f(b)。在这里我们可以拆成f(2004^x原创 2014-03-06 14:15:10 · 774 阅读 · 0 评论 -
HDU 1701
这道题没用到任何算法,所以是道简单题,但是有些地方值得注意。 首先这道题的题意乍一看让人有点不明白,其实这道题目给出了ACMer的百分比范围,所以总的学生人数分别乘以P和Q至少得出的人数要相差1,又由于题目求最少学生人数,所以题目就是让你算总的学生人数分别乘以P和Q得出的人数相差1时的总学生数(因为如果总学生数越多,对于同样的P和Q,求出来的值相差就越多,反过来,如果求出的差值越原创 2014-01-19 13:22:27 · 947 阅读 · 0 评论 -
HDU 1395
讲解转载自:杭电Discuss1)当n为1,无解。2)n为偶数2^x显然为偶数,而1为奇数,2^n和1不可能关于n同余,x无解。3)n为奇数时(n与2互素),由费尔马定理知当x=n-1为一解(但不一定是最小),此时暴力即可。值得注意的是,暴力时为了减小运算量,可以先取摸,再乘2,即代码中的i=(i%n)*2。否则会TLE。 代码(G++):#include #include转载 2014-01-21 12:42:10 · 734 阅读 · 0 评论 -
HDU 1576
这道题考察了数论中扩展的欧几里得算法,算一道较为简单的题。首先,从题目我们可以得出两个式子:1)A=xB;2)n=A%9973,由此可以推出Bx+9973y=n,其中x为正数,y为负数。然后,我们由此可以联想到用扩展的欧几里得算法算出ax+by=gcd(a,b)的解,而题目指出gcd(B,9973) = 1,降低了一些难度。如果我们求出了Bx+9973y=1中的x,则n*x%9973,就是原创 2014-02-17 13:26:46 · 821 阅读 · 2 评论 -
HDU 1573
这是一道杭电上的关于中国剩余定理的题目,如果你会解中国剩余定理的题目,那么这道题就难不倒你。 不过要注意两点:1)这里没说a[i]之间互素,所以要用两两合并的方法求解;2)这道题除了要求X,还要求小于等于N的正整数X的数目,所以如果求出的X正好是0,那么在计数时要有办法处理,不要多加一个1,我就没想到这个,导致计数时多了一个1,错了很多次。代码:#include #i原创 2014-02-23 00:28:44 · 721 阅读 · 0 评论 -
HDU 1164
这是一道整数分解的题目,任何一个正整数都能分解成素数相乘的形式,而这道题就是要我们找出这些素数,并按照规定形式输出。先说一下一个正整数X的素因子的分布情况:1)如果X为素数,那么素因子就是X本身;2)如果X为合数,X的素因子要么全部都在[2,sqrt(x)],要么一个在[sqrt(x),X]内,其他素因子在[2,sqrt(x)]区间内。下面就第二种情况解释一下,假设有两个素因子a,b在[s原创 2014-03-01 16:35:50 · 651 阅读 · 0 评论 -
HDU 1083
这是一道二分图最大匹配的问题,用匈牙利算法就可以解决。 如果不懂可以参考一下:匈牙利算法。 在写代码的过程中犯了个错误,代码中已经注释出来了,以后得小心,不要犯同样的错误。代码(G++)://链式前向星版 #include #include #define MAX 305using namespace std;struct edge原创 2014-03-16 22:33:52 · 550 阅读 · 0 评论