
HDOJ 题解
文章平均质量分 69
剑紫青天
在校本科生,ACMer
展开
-
HDOJ-2069-Coin Change 解题报告
普通母函数变体。题意:有五种面值的硬币,50分,25分,10分,5分,1分。现在,比如我们有11分,那么这11分换成硬币可以是1个10分和1个1分,2个5分和1个1分,1个5分和6个1分以及11个1分这4种情况。现在告诉你我们手上拥有的钱数,问如果要换成硬币,有多少中换法。注意:总硬币数不能超过100。 我的解题思路:一般的母函数都是限制每种硬币的个数,而本题是限制所有硬币原创 2015-05-19 16:21:10 · 1548 阅读 · 0 评论 -
HDOJ-5175-Misaki's Kiss again 解题报告
枚举和运用位运算性质。题意:给你一个数N(0 我的解题思路:首先注意数据范围已经超过32位整型了,所以要用64位整型。由于数据范围太大所以我们不能够直接枚举M然后求M与N的最大公约数是否等于M与N异或的值。不过我们可以直接枚举最大公约数,也就是枚举N的约数。因为N与M的最大公约数也是N与M异或的值,根据异或的性质:如果A XOR B = C,那么C XOR B = A,我原创 2015-02-16 14:24:16 · 605 阅读 · 0 评论 -
POJ-1142 & HDOJ-1333 Smith Numbers 解题报告
分解质因数题。题意:所谓史密斯数就是说这个数分解成质因数后每一个质因数各个数位上的数字之和相加的结果与这个数各个数位上的数字之和相等,并且这个数不能是质数。现在给你一个不超过8位的数字n,求出大于n的最小史密斯数。 我的解题思路:分解质因数后判断就行了,注意素数不是史密斯数,另外因为给的是不超过8位的数字,所以但给的数字是99999999的时候答案是会超过八位的,因此计算数原创 2015-01-22 19:09:29 · 829 阅读 · 0 评论 -
HDOJ-1563-Find your present! 解题报告
位运算巧解题。题意:给你n个数,n为奇数,这n个数里面除了一个数只出现一次其他数都有出现两次,请输出那个出现一次的数。 我的解题思路:根据异或运算性质,相同的数异或等于0,0与任何数异或都得任何数,异或运算满足交换律。这么以来把这所有的数都异或之后就得到了只出现一次的数了。 我的解题代码:#include #include #include原创 2015-02-18 11:08:55 · 874 阅读 · 0 评论 -
HDOJ-2608-0 or 1 解题报告
唯一分解定理,有点难,需要推理,也可以找规律。题意:定义T(n)为能整除n的所有正整数的和,S(n) = T(1) + T(2) + ... + T(n)。现在给你一个32位有符号整型范围类的数n,输出S(n)%2的值。 我的解题思路:首先根据定义T(n)为能整除n的所有正整数和,即T(n)就是n的所有正因子和。根据唯一分解定理的推论,一个整数n的唯一分解式是n = p1^原创 2015-02-13 15:37:16 · 818 阅读 · 0 评论 -
HDOJ-1395-2^x mod n = 1 解题报告
欧拉定理,可暴力。题意:给一个整数n求满足2^x = 1(mod n)的最小x(x > 1)。 我的解题思路:根据欧拉定理及其推广,当n与2互素时2^phi(n) = 1(mod n),因此容易得知当n为奇数时n与2互素。当n为偶数或者1时则必定不能满足2^x = 1(mod n)。另外,当n与2互素时phi(n)不一定是满足要求的最小x,但是根据欧拉定理的推广,最小x必定原创 2015-02-06 18:13:52 · 741 阅读 · 0 评论 -
HDOJ-4965-Fast Matrix Calculation 解题报告
矩阵快速幂好题。题意:给一个N×K的矩阵A和K×N的矩阵B(4 我的解题思路:矩阵C是N×N的矩阵,而N的值高达1000,因此暴力计算会超时。根据C=A×B,所以C^(n×n) = (A×B)^(n×n)。矩阵乘法满足乘法分配律,所以(A×B)^(n×n) = A×(B×A)^(n×n-1)×B,其中B×A是一个M×M的矩阵,M最多为6,这样就可以避免超时了。原创 2015-02-07 20:54:33 · 784 阅读 · 0 评论 -
POJ-1411 & HDOJ-1239 Calling Extraterrestrial Intelligence Again 解题报告
筛素数并且需要优化技巧的题,当然暴力貌似也能过,不推荐暴力。题意:很简单,给你三个正整数m,a,b(其中4 1 )。现在让你找到两个素数p和q,使得pq 我的解题思路:如果是暴力的话筛出m最大值以内的素数然后开始从小到大枚举p的值就是了,很明显q必定大于等于p。我初步优化的话通过a/b 我的解题代码:#include #include原创 2015-01-20 11:00:13 · 884 阅读 · 0 评论 -
HDOJ-5019-Revenge of GCD 解题报告
求k大GCD。题意:给三个正整数x,y和k,求x和y的第k大公约数。 我的解题思路:首先根据求最大公约数的原理,k大公约数是最大公约数的因子。那么求k大公约数就转换成为了求最大公约数的第k大因子。可以通过唯一分解定理得到最大公约数的因子个数,然后根据情况判断是否枚举。 我的解题代码:#include #include #include #i原创 2015-02-05 19:07:11 · 856 阅读 · 0 评论 -
POJ-1308 & HDOJ-1325 Is It A Tree? 解题报告
这是一道原创 2014-05-08 20:46:59 · 995 阅读 · 0 评论 -
HDOJ-1299-Diophantus of Alexandria 解题报告
好题,用到唯一分解定理的推广。题意:给一个整数n(1 我的解题思路:因为x和y都是正整数,所以1/x和1/y都大于1,所以1/x和1/y都小于1/n,可知x和y都会大于n。那么假设x = n + a,y = n + b,这样的话将等式化为xy = n(x+y)后再代入化简就得到n^2 = ab,这样就是求a和b有多少种组合了,说白了,就是求n^2的因数个数。求一个正整数的原创 2015-02-03 19:13:13 · 617 阅读 · 0 评论 -
HDOJ-5171-GTY's birthday gift
矩阵快速幂。题意:在一个有n个整数元素的集合S中,你可以做操作:选择集合S的两个元素a和b,把a+b放进集合S中。这种操作只能够做k次,要求做完后集合S里所有元素的和最大。输出S里所有元素的和模10000007的结果。 我的解题思路:首先肯定是选择S里面最大的两个元素合并再添加到S集合中,假设一开始S的最大两个元素是a和b。那么第一次添加到S集合的元素是a+b,第二次是a+原创 2015-03-25 19:45:32 · 929 阅读 · 0 评论 -
HDOJ-5194-DZY Loves Balls 解题报告
概率水题,或者可以用搜索。题意:给你n个1和m个0,它们能组成q种不同的排列组合字符串,记p为这些字符串中出现01子串的次数,输出p/q的最简形式。 我的解题思路:用求概率的思路来推的话结果是(n×m)/(n+m)的最简分数形式,可是我不会。由于数据规模不大,所以也可以用dfs搜索来求出答案,dfs记录上一个数字,剩余1和0的个数还有已出现01串的次数就好了。原创 2015-03-30 19:19:37 · 1158 阅读 · 2 评论 -
HDOJ-1164-Eddy's research I 解题报告
分解质因数水题。题意:所有数都能够被分解成质因数的乘积,现在给你一个数,请输出这个数的质因数分解式。 我的解题思路:就是分解质因数,只是格式不太好处理而已。除了第一个质因数前面不要输出*,其他质因数前面都输出一个*就可以了。 我的解题代码:#include #include #include #include #include #inc原创 2015-02-17 19:14:14 · 767 阅读 · 0 评论 -
HDOJ-1709-The Balance 解题报告
普通母函数,不错的题。题意:你需要计算一份药的剂量,现在有若干砝码,问在从1到所有砝码的质量和这段区间内有那些重量是测量不出来的。 我的解题思路:砝码并不是只放在天平的一端,可以把砝码放在天平的两端,这样两边砝码的差值就是可以测量的质量数。所以对于每一个砝码,有三种情况,放天平左边,放天平右边,以及未使用。令砝码质量为x的指数,那么构造的母函数中对于一个质量为a的项为(x^原创 2015-05-18 17:57:50 · 936 阅读 · 0 评论 -
HDOJ-1171-Big Event in HDU 解题报告
普通母函数。题意:有最多50种不同价值的机器,每种机器的价值不超过50并且数量不超过100,现在要把这些机器分成A和B两部分,使两部分机器的价值尽可能相等且A的价值不能够小于B。 我的解题思路:可用普通母函数解题,也可用DP。DP貌似更加快,可惜我不会Orz。讲母函数的解法:这题本质上还算是母函数的水题,用价值作为x的指数求出母函数后找到与总价值(也就是最大的指数)的一半最原创 2015-05-21 18:56:02 · 799 阅读 · 0 评论 -
HDOJ-2152-Fruit 解题报告
普通母函数带上下界。中文题意不说了。 我的解题思路:我们可以设置水果的个数为x的指数,那么对于上下界分别为a和b的水果的母函数那一项为(x^a + x^(a+1) + ... + x^b)了。最内层循环枚举水果个数的时候根据上下界枚举,哎呀比较水也没什么好说的了。 我的解题代码:#include #include #include #inc原创 2015-05-20 14:08:39 · 969 阅读 · 0 评论 -
HDOJ-2082-找单词 解题报告
普通母函数基础题。把字母的价值作为x的指数然后就可以构造母函数为(1 + x + x^2 + ...)(1 + x^2 + x^4 + ...)...但是这里有一个需要注意的就是题目要求找到价值小于等于50的单词就行了,所以大于50的可以直接跳过。另外价值为0也就是没有英文字母这种不算单词。 解题代码:#include #include #include #inc原创 2015-05-07 14:28:13 · 804 阅读 · 0 评论 -
HDOJ-1085-Holding Bin-Laden Captive! 解题报告
普通母函数水题。题意:有三种面值的硬币,一元,两元和五元,个数分别为num_1,num_2,num_5,现在求不能一次性付清的最少钱数。比如如果你只有一个两元硬币,那么1元就是你无法一次付清的最少钱数。 我的解题思路:以钱数来做x的指数,那么这道题其实就是求指数最小的系数为0项(指数为0不算)了。 我的解题代码:#include #includ原创 2015-05-15 19:54:40 · 814 阅读 · 0 评论 -
HDOJ-1028-Ignatius and the Princess III 解题报告
普通母函数基础题。题意:对于整数拆分问题,4有如下几种拆法4 = 44 = 3 + 14 = 2 + 24 = 2 + 1 + 14 = 1 + 1 + 1 + 1其中3 + 1和1 + 3属于同一种拆法。现在给你一个数,问这个数有几种拆法。 我的解题思路:普通母函数题,令数字为x的指数,那么可以构造出母函数(1 + x + x^2 + ...)原创 2015-05-07 14:41:16 · 741 阅读 · 0 评论 -
HDOJ-1398-Square Coins 解题报告
普通母函数题。题意:在一个只使用平方数面值硬币的岛上(不超过17^2=289),有这些面值的硬币,1,4,9......等,现在要支付十元,有四种方式:十个1元硬币,一个4元硬币和六个1元硬币,两个4元硬币和一个1元硬币,一个9元硬币和一个1元硬币。现在告诉你需要支付的数量,请输出有多少种不同的支付方式。 我的解题思路:假设硬币的面值为x的指数,那么1元硬币的那一项原创 2015-05-12 15:58:32 · 913 阅读 · 0 评论 -
HDOJ-1211-RSA 解题报告
同余方程或快速幂水题。题意:RSA加密算法是这样的,1.选择两个大素数p和q2.计算n = p × q,F(n) = (p - 1) × (q - 1)3.选择一个整数e(1 4.计算一个整数d,使得d × e = 1 (mod F(n)),d 就是密钥加密用这个方法C = E(m) = m^e mod n解密用这个方法M = D(c) = c^d mod n现原创 2015-04-09 15:23:34 · 864 阅读 · 0 评论 -
HDOJ-5199-Gunner 解题报告
哈希。题意:有n个鸟分别在n棵树的顶端,第i棵树的高度为Hi,有个猎人准备开m枪打鸟,开枪的高度为Qi,可以把在Qi高度的所有鸟击落,现在请你输出每开一枪能够击落的鸟的个数。 解题思路:刚开始还以为是线段树,一看数据范围就萌萌哒了。看题解说是哈希可搞,于是就学了一下STL里面的map哈希,果然名不虚传。 解题代码:#include #inclu原创 2015-04-05 20:03:29 · 626 阅读 · 0 评论 -
HDOJ-1397-Goldbach's Conjecture 解题报告
哥德巴赫猜想水题。题意:根据哥德巴赫猜想,任何一个大于等于4的数都能被分解成两个素数的和,现在给你一个数,求它的分解方式有多少种,如果一个数可以被分解成a+b,那么b+a不能够再计算一次。 我的解题思路:数据范围什么的都水,先筛个素数,然后一个一个循环判断,循环到n/2就可以了。 我的解题代码:#include #include #inclu原创 2015-02-17 19:08:23 · 891 阅读 · 0 评论 -
HDOJ-1920-Jackpot 解题报告
求多个数的最小公倍数,水题。题意:简单说吧,老虎机有几个转盘,每一个转盘停留在jackpot上都有一个固定的周期,如果所有转盘都停留在jackpot上,那么就可以赢钱,现在要求赢钱的周期,如果大于指定的数就要给出指定的信息。 我的解题思路:每个转盘的周期求最小公倍数就可以了,考虑一下边界情况只有一个转盘的情况就行了,另外根据题意如果最小公倍数大于10^9的话就输出“More原创 2015-02-03 13:59:31 · 733 阅读 · 0 评论 -
HDOJ-1905-Pseudoprime numbers 解题报告
快速幂和判断素数。题意:如果a^p mod p = a mod p且p不为素数,那么称p为基于a的伪素数,现在给你p和a,问p是不是基于a的伪素数。 我的解题思路:很简单,判断一下p是否为素数,然后快速幂求a^p mod p的值就行了,由于a比p小,所以a mod p肯定还是a,就不用判断是否等于a mod p了,另外必须要用64位整型,不然会溢出。原创 2015-02-04 14:20:32 · 684 阅读 · 0 评论 -
HDOJ-1787-GCD Again 解题报告
求欧拉函数单值,水题。题意:给你一个数n,求出大于0小于n的正整数中与n的最大公约数大于1的数的个数。 我的解题思路:与n的公约数大于1的数的个数就是与n不互素的数的个数。这里有个坑,首先就是小于n,因此输出应该是n - 1 - phi(n)。 我的解题代码:#include #include #include #include #inc原创 2015-01-31 18:17:37 · 658 阅读 · 0 评论 -
HDOJ-1224-Free DIY Tour 解题报告
DP原创 2014-08-09 23:07:39 · 1260 阅读 · 0 评论 -
HDOJ-1217-Arbitrage 解题报告
求最短路的题,与普通最短路不通原创 2014-06-19 14:48:53 · 1772 阅读 · 0 评论 -
HDOJ-3635-Dragon Balls 解题报告
这是一道考察并查集的路径压缩的题。原创 2014-06-21 18:11:17 · 799 阅读 · 0 评论 -
HDOJ-2680-Choose the best route 解题报告
一道不错的最短路题目原创 2014-06-03 16:04:33 · 974 阅读 · 0 评论 -
HDOJ-1072-Nightmare 解题报告
这是一道十分值得一做的原创 2014-07-28 17:49:33 · 1175 阅读 · 0 评论 -
HDOJ-1251-统计难题 解题报告
这是一道字典树原创 2014-07-27 21:58:33 · 900 阅读 · 0 评论 -
HDOJ-2571-命运 解题报告
一道简单的二维动态规划题。原谅我原创 2014-08-02 21:39:53 · 823 阅读 · 0 评论 -
HDOJ-2102-A计划 解题报告
这是一道三维图的原创 2014-07-26 14:15:20 · 830 阅读 · 0 评论 -
HDOJ-1875-畅通工程再续 解题报告
一道最小生成树题目。原创 2014-06-02 21:43:53 · 990 阅读 · 0 评论 -
HDOJ-2112-HDU Today 解题报告
最短路问题,原创 2014-06-01 21:25:39 · 891 阅读 · 0 评论 -
HDOJ-5023-A Corrupt Mayor's Performance Art 解题报告
一道跟POJ2777线段树基本一样的题,不同点就在于输出时这道题是按照颜色id从小到大输出而不是输出颜色。简单讲一下题意:给围墙染色,P操作代表给坐标为[a,b]的墙染上id为c的颜色,而Q操作表示询问在[a,b]范围内的围墙颜色种类,并且按照升序输出颜色id。 我的解题思路:肯定和POJ2777线段树一样,使用一个32位整型数来存储颜色(因为有30种颜色,所以不需要开一个原创 2014-09-21 20:37:47 · 818 阅读 · 0 评论 -
HDOJ-1087-Super Jumping! Jumping! Jumping! 解题报告
动态规划题(这题目名字好长啊、、、)原创 2014-08-03 19:18:53 · 1085 阅读 · 0 评论 -
HDOJ-1160-FatMouse's Speed 解题报告
一道求最长上升原创 2014-08-12 21:29:20 · 1201 阅读 · 0 评论