HDU
DS-K
这个作者很懒,什么都没留下…
展开
-
HDU 4055 Number String
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4055题意:给一个长度为n的含( d , i , ? )字符串,表示一个1~n+1的排列,表示从第二个位置开始,每个位置和它的前一位的关系。d表示第i位小于i-1位 , i表示第i位大于i-1位 , ?表示第i位可以随意。思路:dp[i][j]表示前i个位置表示1~i的一个排原创 2016-10-27 12:06:32 · 206 阅读 · 0 评论 -
HDU 5726 GCD
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5726题意:给n个数,有Q次询问,每次询问查询[l,r]区间内的所有数的gcd的值,并问在[1,n]区间范围内有多少区间的gcd值为[l,r]区间的gcd值。思路:如果这个区间是不变的,我们可以用ST表来实现O(1)的区间查询。对于第二个问题,我们可以先预处理出所有区间的gcd,原创 2016-07-21 09:19:11 · 211 阅读 · 0 评论 -
HDU 4965 Fast Matrix Calculation
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4965题意:给一个矩阵A(n*k规模),矩阵B(k*n)规模,现在求矩阵(A*B)^(n*n)矩阵中所有元素的和。n思路:n*n的矩阵肯定不能做矩阵乘法快速幂,会超时,把式子变一下型。(A*B)^(n*n) = A* (B*A)^(n*n-1) *B , B*A是一个k*原创 2016-07-20 20:52:19 · 196 阅读 · 0 评论 -
HDU 4990 Reading comprehension
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4990题意:给出n,m,求结果。while(scanf("%d%d",&n,&m)!=EOF) { ans=0; for(i=1;i { if(i&1)ans=(ans*2+1)%m; else ans=ans*2%m;原创 2016-07-20 20:44:59 · 247 阅读 · 0 评论 -
HDU 5015 233 Matrix
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5015题意:给出a1,0 a2,0 a3,0...an,0 ,而且(a0,1 = 233,a0,2 = 2333,a0,3 = 23333...),以及ai,j = ai-1,j +ai,j-1( i,j ≠ 0),求an,m(n ≤ 10,m ≤ 109)。思原创 2016-07-20 20:35:33 · 180 阅读 · 0 评论 -
HDU 4869 Turn the pokers
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4869题意:有m张扑克牌,现在可以翻n次,每一次要翻Xi张牌,一开始全部的牌都是背面,问经过n次操作后,这m张牌的不同状态一共有几种。思路:我们维护每次翻转可以得到的最大正面牌数R和最小正面牌数L,维护n次后,答案为∑C(m,i)( i = L , L+2 , L+4,.....原创 2016-07-31 20:31:36 · 228 阅读 · 0 评论 -
HDU 4901 The Romantic Hero
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4901题意:在n个数的序列中,选出两个集合S,T,使得T集合位置最小的数在S集合位置最大的数的前面(两个集合不为空,不能重叠)。求有多少种选定S和T的方法,使得S集合的异或和等于T集合的与之和。思路:我们可以用f[i][j]表示前i个数使得异或和为j的方案数,g[i][j]表示后原创 2016-07-31 19:49:50 · 272 阅读 · 0 评论 -
HDU 4911 Inversion
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4911题意:一个含有n个元素的序列,最多可以交换相邻元素k次,求交换后的最小的逆序对数量。思路:如果存在逆序对,我们肯定有办法通过一次交换来减少一对逆序对。直接用树状数组求一下逆序对即可,max(0,ans-k).#include #include #includ原创 2016-07-31 19:24:26 · 182 阅读 · 0 评论 -
HDU 1404 Digital Deletions
题目链接:http://acm.hust.edu.cn/vjudge/problem/29195/origin题意:有一些数,每次操作:1、可以选择一个位置,将其数变为比原来小的非负数。2、如果一个位置是0,可以把包括该位置以内以及所有右边的数去掉。不能操作的人输。思路:长度不超过6,因为可以先打一个状态表。注意一点,如果第一个位置是0,那么先手必胜,而且打表取数时也不可以原创 2016-08-03 20:48:01 · 288 阅读 · 0 评论 -
HDU 1729 Stone Game
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1729题意:一个组合博弈论的游戏,有n个盒子,每个盒子有一个容量上限,且每一个盒子里都有一定量的石子。现在两个人轮流向盒子里加石子,一次加石子的范围是1到该盒子原石子的平方,但是盒子里的石子不能超过容量。思路:计算每堆的sg值,然后异或起来。我们可以发现一个小规律,当x*x+x原创 2016-08-03 21:06:10 · 328 阅读 · 0 评论 -
HDU 1536 S-Nim
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1536题意:给一个集合,每次取石子的个数必须是集合内的数,然后询问m次,每次给你n堆石子,问先手必胜还是必败。思路:用sg函数解决。每次给出集合后,就把sg函数打出来,查询的时候直接用即可,然后根据性质把各堆的sg值异或起来。#include #include #原创 2016-08-03 20:54:33 · 219 阅读 · 0 评论 -
HDU 5791 Two
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5791题意:给两个序列A,B,问它们有多少对子序列相同。思路:dp[i][j]表示A的前i个元素和B的前j个元素有多少对子序列相同。如果A[i] != B[j]dp[i][j] = dp[i-1][j] + dp[i][j-1] - dp[i-1][j-1]为什么要减原创 2016-08-03 15:48:21 · 171 阅读 · 0 评论 -
HDU 5792 World is Exploding
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5792题意:给长度为n的序列A,计算有多少对 (a,b,c,d) 满足: a≠b≠c≠d,1≤ab≤n,1≤cd≤n,AaAb,Ac>Ad.思路:(a,b)为顺序对 , (c,d)为逆序对 , 我们记Xn为逆序对的个数,Yn为顺序对的个数,那么Xn*Yn再减去a,b,c,d中有重原创 2016-08-03 15:24:49 · 243 阅读 · 0 评论 -
HDU 5787 K-wolf Number
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5787题意:求区间[L,R]内,任意相邻k位(如果位数不足k,就是全部的数位)没有两两相同的数位的数的个数。思路:数位DP,因为K<=5,我们最多需要保存下来当前位的前4位就足够了。因为dp[pos][p1][p2][p3][p4]表示,现在枚举取第pos位,pos位之前的四位分原创 2016-08-03 15:08:32 · 992 阅读 · 3 评论 -
HDU 4870 Rating
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4870题意:有一个人打比赛开了两个账号 都是0分,每次他用分数低的那个号去比赛,输了-100,赢了+50,分数不可以低于0,给出赢得概率p,问到达1000分的期望次数。思路:f[i][j]表示他的两个号分数分别为i,j(i那么f[i][j] = p * f[ min(i+1,原创 2016-07-28 11:08:48 · 210 阅读 · 0 评论 -
HDU 4868 Task
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4864题意:有n个任务,m台机器,每个任务需要xi的时间去做,且难度为y,做完后会得到500*xi+2*yi的钱;每台机器也有一个使用时间上限xi以及机器的能力yi,一台机器可以完成一个任务仅当机器的x,y都大于任务的,现在每台机器只能做一个任务。求最大完成任务数量以及得到钱的最大值。原创 2016-07-28 11:00:46 · 385 阅读 · 0 评论 -
HDU 4686 Arc of Dream
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4686题意:fn = ∑aibi ( 0a 0 = A0 a i = a i-1*AX+AY b 0 = B0 b i = b i-1*BX+BY给出n,求fn对1,000,000,007的模思路:写出相邻项的转移式,f(n+1) = f(n) +原创 2016-07-25 16:41:58 · 199 阅读 · 0 评论 -
HDU 4549 M斐波那契数列
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4549题意:M斐波那契数列F[n]是一种整数数列,它的定义如下: F[0] = a F[1] = b F[n] = F[n-1] * F[n-2] ( n > 1 ) 现在给出a, b, n,你能求出F[n]的值吗?思路:写一下前几项,发现指数其实就是斐波那契数列,Fn = a^原创 2016-07-25 16:28:00 · 291 阅读 · 0 评论 -
HDU 5723 Abandoned country
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5723题意:求一个图的最小生成树,及在这个最小生成树上的任意两点的期望距离。思路:首先求最小生成树,并把图建好,任意两点的距离期望就是把每一对点的距离累加上再除以总数,但是这样计算会超时,于是我们考虑每条边贡献的值。假设一条边左边有x个点,右边有y个点,那么当求其他点到左边的原创 2016-07-21 09:05:18 · 167 阅读 · 0 评论 -
HDU 5795 A Simple Nim
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5795题意:一个n堆的取石子游戏,每次可以取一堆中的任意个,或者将当前堆分为三个非空堆。求先手/后手必胜。思路:打表sg函数找规律。hihocoder上面有类似的题目,不过那个是分为两堆。http://hihocoder.com/problemset/problem/1173原创 2016-08-04 20:54:59 · 535 阅读 · 0 评论 -
HDU 5583 Kingdom of Black and White
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5583题意:一个01序列的值为连续相同元素作为一个部分,各部分元素个数的平方之和。现在最多修改一个元素(0变1,1变0),求这个序列的最大值。思路:因为最多只变一个元素,所以我们先统计出每个部分的元素个数,然后直接枚举取最大值即可,注意当一个部分只有一个元素时,会把三部分接起来。原创 2016-08-02 10:27:53 · 177 阅读 · 0 评论 -
HDU 3377 Plan
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3377题意:左上角出发走到右下角结束,每个格子有个分数。每个格子最多经过一次,可以不经过,求最大得分。思路:这题要求一个简单路径,也就是说只有起点和终点是单插头,其余点都是双插头, 所以分类讨论一下转移即可。#include #include #include原创 2016-11-06 20:59:24 · 320 阅读 · 0 评论 -
HDU 1964 Pipes
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1964题意:每个格子之间的墙壁有个花费,求用一个环经过每个格子仅一次的最小花费。求最小值花费。思路:一个简单的插头dp,相当于一个n*m的地图里找一个单回路覆盖全部点的最小花费,每个点记录向右走和向下走的花费。#include #include #include原创 2016-11-06 20:29:41 · 338 阅读 · 0 评论 -
HDU 1693 Eat the Trees
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1693题意:给一个n*m的地图,1可走,0不可走。现在可以在地图上构建若干条回路,使得覆盖所有的1,不覆盖任何一个0,而且每个1只能被覆盖一次,求不同的方案。思路:比较简单的插头dp,0的格子无连通,1的格子一定有两个连通(在回路中)。分类转移即可。#include原创 2016-11-06 18:08:11 · 268 阅读 · 0 评论 -
HDU 5835 Danganronpa
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5835题意:有n种礼物,每个有ai个,现在开始给每个人发礼物,每人一个普通礼物和神秘礼物,相邻两人的普通礼物必须不同,每个礼物都可以作为神秘礼物/普通礼物,问最多可以发给多少人。思路:当n为1,那么答案为1。如果有两种以上的礼物,我们现在只看数量最多的礼物A和B,A>B,我们可以原创 2016-08-14 21:50:15 · 1043 阅读 · 0 评论 -
HDU 5512 Pagodas
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5512题意:有n个数1~n,现在给出a,b两个数,每次只能选择未出现过的而且是由已出现过的数集合中i,j的和或差即i+j或i-j,谁没数可选即输。思路:发现每次选数都是gcd(a,b)的倍数,那么先求一下范围内有多少个可选的数,然后判断一下奇偶即可。#include原创 2016-08-11 18:22:17 · 210 阅读 · 0 评论 -
HDU 3980 Paint Chain
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3980题意:有一个含n个点的环,每次只能选择连续的m个点去涂色,两个人轮流去涂色,不能操作的人输。思路:首先考虑到一个环,无论怎么先去涂m个点,都是一样的,会剩下n-m个点形成一条链。如果转化成链的话,这个问题模型就好做了,要么选择涂边上的m个点变成sg[i-m]这个状态,要么选原创 2016-08-07 23:31:30 · 310 阅读 · 4 评论 -
HDU 5794 A Simple Chess
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5794题意:在一个有k个坏点的n*m的棋盘上走马,起点为(1,1),终点(n,m),每次可以从(x,y)走到(x+1,y+2)/(x+2,y+1),问有多少种不同的走法。思路:如果从(x0,y0)到(x1,y1),没有任何坏点,有C( (x1-x0+y1-y0)/3 , x1-x原创 2016-08-11 09:00:51 · 251 阅读 · 0 评论 -
HDU 4352 XHXJ's LIS
题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=4352题意:求[L,R]范围内有多少数满足数位中最长上升子序列长度为m。思路:dp[i][j][k]表示还有i位没确定,前面的子序列状态为j时,要求的最长上升子序列长度为k时的个数。用一个10位的二进制参考nlogn求最长上升子序列的思想更新状态。如果出现数x,如原创 2016-08-22 10:44:02 · 270 阅读 · 0 评论 -
HDU 5860 cjj's string game
题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=5863题意:用k个不同的字符,形成两个长度为n的字符串中,可以有多少种构建两个字符串的方法,使得所有的连续子串中,对应的两串相同的最大子串长度为过m。思路:建立转移矩阵,对于两串前i个字符,有两种情况:一种是前面连续相同最大子串长度没有达到过m,可以0~m-1任意一种原创 2016-08-22 10:04:01 · 350 阅读 · 0 评论 -
HDU 5768 Lucky7
题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=5768题意:给出n对(p,a),求区间[L,R]内为7的倍数,且不满足任意i∈n, x % pi = ai的个数。思路:容斥定理,设单独事件Ai为区间内为7的倍数且满足x % pi = ai的个数。那么区间内7的倍数的个数 - A1∪A2∪A3...∪Ai即为答案。然原创 2016-09-09 11:23:17 · 258 阅读 · 0 评论 -
HDU 3595 GG and MM
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3595题意:两个人同时玩n组游戏,规则都相同,给定一组(x,y)(假设y>=x),每次操作可以在y中拿走x的整数倍变为(x,y-kx),两个人轮流进行,不能操作的那方算输。而同时玩n组游戏时,判断输赢的结果就是这n组游戏最后一组进行完的游戏的结果。思路:这种类型属于Every-S原创 2016-08-07 23:23:11 · 317 阅读 · 1 评论 -
HDU 2999 Stone Game, Why are you always there?
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2999题意:给你n个数的集合,表示你每次取石子只能为集合里的数,然后给你一排石子,编号为1~n,每次你可以取相邻位置的连续石子(数量只能为集合里的数),注意石子的位置时不变的,比如把2拿走了,1和3还是不相邻的。问先手有没有机会赢。思路:如果我们取靠边的x个石子那么就是转移成sg原创 2016-08-07 22:54:24 · 738 阅读 · 0 评论 -
HDU 1851 A Simple Game
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1851题意:有n堆石子,每一堆有mi个,且每次可以取[1,Li],问先手必胜还是后手必胜。思路:数据很小,直接将所有状态的sg值计算出来,然后对于每一堆直接把sg值取出来异或判断结果。#include #include #include #include #i原创 2016-08-07 22:26:17 · 372 阅读 · 5 评论 -
HDU 1848 Fibonacci again and again
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1848题意:1、 这是一个二人游戏; 2、 一共有3堆石子,数量分别是m, n, p个; 3、 两人轮流走; 4、 每走一步可以选择任意一堆石子,然后取走f个; 5、 f只能是菲波那契数列中的元素(即每次只能取1,2,3,5,8…等数量); 6、 最先取光所有石子的人原创 2016-08-07 22:20:54 · 364 阅读 · 4 评论 -
HDU 3537 Daizhenyang's Coin
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3537题意:翻硬币游戏,如果一枚硬币正面朝上,你可以将它翻过来,并且自选0~2颗它左边的硬币,改变它们的状态(正反交替)。谁不能翻谁输。思路:定义硬币全反时的sg为0,现在单个游戏就是只有一枚硬币朝上,其余都是反,其他情况都可以由单一游戏组合而成。如果位置i有一个正面朝上的硬币,原创 2016-08-05 17:43:20 · 1055 阅读 · 0 评论 -
HDU 3389 Game
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3389题意:有n个盒子编号1~n,每个盒子里都有一些卡牌。每次可以选择一个非空盒子A,拿任意个盒子里面的到盒子B,A、B盒子的编号必须满足(B思路:先找到移动的终点数字,1、3、4 这三个盒子是不可以再拿卡牌出来的。134这样可以把数分为三类,每一类盒子只能在自己原创 2016-08-05 17:25:18 · 288 阅读 · 0 评论 -
HDU 5584 LCM Walk
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5584题意:有一只青蛙在(x,y)点,每次它只能跳向(x+z,y)或者(x,y+z) z = lcm(x,y)。现在知道它跳了若干步后在(ex,ey)点,求可能的起点个数。思路:设x = p * k , y = q * k ( k = gcd(x,y) , p q 互质原创 2016-08-02 10:39:49 · 331 阅读 · 0 评论 -
HDU 5656 CA Loves GCD
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5656题意:给n个数,求出所有非空子集的gcd之和。题目中所有出现的数的范围都不超过1000。思路:由于范围很小,我们用f[i][j]表示前i个数构成gcd为j的子集的方法数,有递推式f[i][gcd(a[i],j)] += f[i-1][j](选ai),f[i][j] +=f[原创 2016-07-24 09:56:04 · 168 阅读 · 0 评论 -
HDU 4405 Aeroplane chess
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4405题意:一个人在玩飞行棋,一共有n个点和m条航线,每一条航线有x,y,如果到达点x那么会直接到达点y(x思路:f[i]表示在i点时游戏结束的期望次数。f[i] = 1 / 6( ∑f[i+j] ) + 1 (1pos[i]是一条航线。#include #inc原创 2016-06-30 09:53:47 · 230 阅读 · 0 评论