题目
文章平均质量分 58
Paulliant
这个作者很懒,什么都没留下…
展开
-
HDU-5396 Expression(区间DP+组合数)
题意:给定一串包含n个整数和n-1个运算符(包括+-*)的算式,每次操作会将两个数通过它们之间的运算符运算合并在一起,求所有不同合并最终答案的总和%(1e9+7)(合并顺序不同的两种合并方式称为不同的)。(n<=100)首先不必说,明显是区间DP,dp[L][R]表示区间[L,R]所有不同的合并方式的结果总和,而这个值似乎不好转移。在数的区间[L,R]中,符号的区间为[L,R-1]...原创 2018-05-10 08:48:36 · 267 阅读 · 0 评论 -
HDU-3280 Equal Sum Partitions(区间DP/模拟)
题意:给定一个长度为n序列,分成若干个区间,保证每个区间的和相等,求这个最小的和。(n<=10000)这题主要是数据给水了,可用区间DP或枚举答案区间DP#include<iostream>#include<cmath>#include<cstdio>#include<cstdlib>#include<cstring>#i...原创 2018-05-03 20:34:51 · 265 阅读 · 0 评论 -
HDU-4283 You Are The One(区间DP)
题意:n个人要入场选秀,给定他们的屌丝值D,可以用一个栈来调整顺序,第i个人第j个入场的不开心值为Di*(j-1),问所有人不开心值的总和最小是多少?(n<=100)这明显是区间DP的套路题,对于一个区间[L,R],先将L推进栈里,枚举第L个人第k个进场,那么第一个入场的人可以推出为L+k-1,那么就分成了{L},[L+1,L+k-1],[L+k,R]三个子区间,其中L的不开心值为D[L]*...原创 2018-05-04 09:09:20 · 206 阅读 · 0 评论 -
HDU-5900 QSC and Master(区间DP)
题意:给定一串长度为n的数对ai(key,value),若两个相邻的数对key值不互质,则可以将这两个数合并,并将最终结果加上两个数的value值,求最终结果最大是多少。(n<=300)用dp[L][R]表示区间[L,R]中的最优解是多少。对于dp[L][R],如果aL,aR可以相消,[L+1,R-1]可以全部消完,那么可以由[L+1,R-1]的最优解加上L和R的value值转移来;否则,只...原创 2018-05-11 10:47:10 · 186 阅读 · 0 评论 -
POJ-3252 Round Number(数位DP)
题意,给定一个区间[a,b],求满足二进制位零的个数大于等于一的个数的数的个数。(0<a<b<2e9)裸的数位DP,状态保存零的个数减一的个数,由于会出现负数,再加上32。#include<iostream>#include<cmath>#include<cstdio>#include<cstdlib>#include<...原创 2018-05-18 07:27:56 · 218 阅读 · 0 评论 -
HDU-3652 B-number(数位DP)
题意:给定一个区间[a,b],求满足数中含有“13”子串且能被13整除的数的个数。看到整除的条件,应该想到再压一维余数传下去,其他都是裸的数位DP。#include<iostream>#include<cmath>#include<cstdio>#include<cstdlib>#include<cstring>#include...原创 2018-05-18 07:46:13 · 203 阅读 · 0 评论 -
HDU-6103 Kirinriki(尺取法)
题意:给定一个长度不大于5000的字符串str和一个整数m,对于str的两个长度均为n且不相交的子串AB,定义dis(A,B)=∑(i=0,n-1)|A[i]-B[n-i-1]|,求dis(A,B)<=m时的最大n值。(m<=5000)这种区间的变化有规律的问题,尺取是一个很好的算法。对于这道题,如果枚举了A串的右端点和B串的左端点,在A左端点左移和B右端点右移时,dis值单调递增或不...原创 2018-05-12 10:09:44 · 317 阅读 · 0 评论 -
HDU-4293 Groups(区间DP)
题意:n个人组成m个小队,n个人每人反馈两个数A,B,表示这个人所在的小队前面有A个人,后面有B个人,经调查发现有某些人说了假话,求最多有多少人说真话。(n<=500)分析题目可得,一个人给的数对A,B代表他的队伍区间为[A+1,n-B],由此可以开grp[i][j]和dp[i]两个数组。其中,grp[i][j]表示说自己的队伍区间为[i,j]的人数,dp[i]表示前i人中最多说真话的人数,...原创 2018-05-05 22:20:41 · 163 阅读 · 0 评论 -
HDU-4412 Sky Soldiers(区间DP)
题意:有k个空兵跳伞,第i个空兵有Li个位置可能会降落,降落在第j个位置xi,j的概率为为Pi,j,(保证(Σ(j=1,Li)Pi,j)=1)现在需要在坐标轴放置m个任务点,每个空兵降落后会往离自己的任务点走去,求每个空兵行走距离总和的期望值最小是多少。(1<=k<=1000,1<=50<=m,m<=∑(i=1,k)Li<=1000)首先,如果有多个空兵可能落在...原创 2018-05-06 18:44:53 · 236 阅读 · 0 评论 -
HDU-4597 Play Game(区间DP)
题意:给定两串长度均为n的数列,两个人轮流取数,可以取两串数列的头或尾元素,求先取者能获得的最大值。明显的四维区间dp,相当于取数游戏的升级版,由小区间拓展到大区间即可。#include<iostream>#include<cmath>#include<cstdio>#include<cstdlib>#include<cstring&g...原创 2018-05-06 21:09:54 · 239 阅读 · 0 评论 -
HDU-6212 Zuma(区间DP)
题意:给定一个长度为n的01串(n<=200),每次操作你可以在任何位置插入0或1,若出现连续的三个或三个以上的0或1,则可以互相消去,求全部消完的最少操作次数,保证刚输入的01串不能相消。思维好题。首先由于只有两种数组,且只有数字异同在考虑范围之内,我们可以将01串压缩,将相同数字压在一起。如0011101001压缩成231121。我们直接考虑压缩后的数字。对于一个区间,从小区间拼接当然是...原创 2018-05-13 18:28:10 · 454 阅读 · 0 评论 -
HDU-4745 Two Rabbits(区间DP)
题意:在n个石头围成的环上,两只兔子一只顺时针跳,一只逆时针跳。它们首先各选一个重量相同的石头,再跳的时候可以跨过石头,但不能跳上或跨过已经跳过的石头。两只兔子同时跳到的石头的重量必须相同,且它们可以同时跳到一个石头上。求若满足上述规则,最多可以进行几轮。(n<=1000)在环上的问题,很容易想到破环成链开两倍数组,虽然这题也可以这样做,但常数偏大。由于是环形的问题,我们可以让第一只兔子跳的...原创 2018-05-07 11:10:21 · 316 阅读 · 0 评论 -
HDU-3709 Balanced Number(数位DP)
题意:给定一个区间[a,b],求区间内的平衡数个数,平衡数指的是存在一个支点使数形成杠杆平衡的数。(0<=a<=b<=1e18)支点是判断一个数是否平衡的重要因素,因此把支点当参数传下来,并压在dp数组中。每枚举一个数就算一次这个数乘力矩的值,累计在sum中,最后判断sum是否为0即可。#include<iostream>#include<cmath>...原创 2018-05-20 10:58:28 · 175 阅读 · 0 评论 -
HDU-5115 Dire Wolf(区间DP)
题意:Matt面前有n匹狼排成一排,他要将这些狼全部杀死才能活下来,第i匹狼有两个数据ai,bi,分别表示它的基础攻击力和它能为相邻的狼带来的附加攻击力。其中一匹狼被杀死后,它左右的狼视为相邻,Matt将受到它的基础攻击力与它左右的狼带来的附加攻击力之和的伤害,求要活下来受到到最小伤害。(n<=200)无论是怎样的转移,都无疑是由小区间推得大区间,现在dp[L][R]表示杀死区间[L,R]内...原创 2018-05-07 16:24:13 · 260 阅读 · 0 评论 -
HDU-4352 XHXJ s LIS(数位DP+状压DP)
题意:给定一个区间[a,b]和一个数字k,求区间内符合LIS为k的数字的个数。由O(nlogn)的LIS算法中可以得到启发,可以压缩前面的数中某个数字出现与否,然后每加入一个新的数,在这个状态上修改即可。#include<iostream>#include<cmath>#include<cstdio>#include<cstdlib>#inc...原创 2018-05-20 16:23:41 · 253 阅读 · 0 评论 -
CodeForces-55D Beautiful numbers(数位DP+离散化)
题意:给定一个区间[a,b],求满足所有非零位都是这个数因数的数的个数。#include<iostream>#include<cmath>#include<cstdio>#include<cstdlib>#include<cstring>#include<algorithm>#define FOR(i,x,y) f...原创 2018-05-20 16:27:28 · 181 阅读 · 0 评论 -
HDU-5273 Dylans loves sequence(区间DP)
题意:给定一个长度为n的数列ai,有q个询问(x,y),表示区间[x,y]中有几个逆序对,回答这些询问。(n<=1000,q<=100000,ai∈{int})题目短小精悍。首先,q的值非常大,很明显,需要把每个区间的逆序对数预处理出来。而预处理求逆序对的方法,我想到的是“离散化+计数”。首先ai非常大,必须先离散化后才能计数。开一个cnt[i][j]表示前i个数中大于j的数的个数,d...原创 2018-05-07 20:41:19 · 240 阅读 · 0 评论 -
SPOJ-BALNUM Balanced Numbers(数位DP+状压DP)
题意:给定一个区间[a,b],求区间中平衡数的个数,平衡数指出现过的奇数均为偶数次,出现过的偶数均为奇数次。(如888是平衡数,而882不是)一个数的状态只有三种,出现奇数次,出现偶数次,没出现过,压一个三进制即可。开一个全局的mark数组辅助改变状态和check。#include<iostream>#include<cmath>#include<cstdio&g...原创 2018-05-21 07:01:48 · 143 阅读 · 0 评论 -
HDU-4734 F(x)(数位DP)
题意:对于一个n位的数x(An,An-1,An-2,An-3...A2A1),定义F(x)=An*2^n-1+An-1*2n-2+..+A1*1。给定两个数A,B,求满足k∈[0,B]且F[k]<=F[A]的数的个数。比较好写的数位DP。首先一组数据中的每个测试用例的A值不同,为了防止...原创 2018-05-25 07:10:20 · 375 阅读 · 0 评论 -
HDU-2089 不要62(模拟/数位DP)
题意:给定一个区间[a,b],求不含数字4和子串62的数的个数。(0<a<b<1e6)数位DP入门题,虽然可以纯模拟过掉,不过最好趁这个机会理一下数位DP的思想。首先说它是DP,倒不如说是深搜套一个记忆化的壳。在深搜之前,需要把数拆成数组,然后我们记录取到第k位,要取之后的n-k个数的方案数(不考虑是否超过范围),以及取到这一位的状态(视题意而定)。一般在深搜的过程中,要传下下面...原创 2018-05-15 21:00:39 · 272 阅读 · 0 评论 -
HDU-3555 Bomb(数位DP)
题意:给定一个区间[a,b],求[a,b]中存在子串49的数字的个数有了上一道“不要62”的基础,这道题其实非常好写了,甚至可以把这道题当作“不要49”来做,用区间长度减去答案即可。当然,也可以正着来。用status记录三种状态:上一位为4,出现过49,其他。#include<iostream>#include<cmath>#include<cstdio>...原创 2018-05-15 21:13:24 · 118 阅读 · 0 评论 -
SCOI-2009 windy数(数位DP)
题意:给定一个区间[a,b],求相邻两个数字之差至少为2的数的个数。数位DP,status保存上一个数是什么即可,注意前导零。#include<iostream>#include<cmath>#include<cstdio>#include<cstdlib>#include<cstring>#include<algorit...原创 2018-05-16 07:37:46 · 148 阅读 · 0 评论 -
HDU-5456 Matches Puzzle Game(数位DP)
题意给你n根火柴棒,求能拼成A-B=C的式子有多少种,种数模P,其中每个数字拼法如下: 如下是一个合法的式子: 思路首先除去减号和等号的三根火柴棒,并预处理每个数字需要的火柴棒数。式子可以移项化为B+C=A。对于一个算式填充问题,按照一般的套路,从低位向高位枚举数字。在递归的过程中,需要记录三个变量,f1,f2分别表示是数字B,C是否枚举结束,flow表示是否进位。然后根据情况...原创 2018-05-26 20:58:57 · 277 阅读 · 0 评论 -
HDU-5787 K-wolf Number(数位DP)
题目如果一个数 nnn ,每 kkk 个连续的数位各位数字均不相同,则称这个数为 k−wolfk−wolfk - wolf 数,求一个区间 [a,b][a,b][a,b] 中 k−wolfk−wolfk-wolf 数的个数。 1≤a≤b≤1∗10181≤a≤b≤1∗10181 \leq a \leq b \leq 1*10^{18} 2≤k≤52≤k≤52 \leq k \leq 5思...原创 2018-05-26 21:46:47 · 542 阅读 · 0 评论 -
HDU-5898 odd-even number (数位DP)
题意对于一个数 aaa ,如果 aaa 的所有连续偶数长度均为奇数且所有连续奇数长度均为偶数,则称 aaa 为 odd−evenodd−evenodd-even numbernumbernumber。给定一个区间 [L,R][L,R][L,R] ,求区间 [L,R][L,R][L,R] 中odd−evenodd−evenodd-even numbernumbernumber的个数。 1≤L≤...原创 2018-05-27 07:57:28 · 220 阅读 · 0 评论 -
HDU-6148 Valley Numer(数位DP)
题意如果对于一个 nnn 位数 aaa ,如果不存在 i∈[2,n−1]i∈[2,n−1]i \in [2,n-1] 使得 ai>ai−1ai>ai−1a_i > a_{i-1} 且 ai>ai+1ai>ai+1a_i > a_{i+1} ,则称 aaa 为 ValleyValleyValley NumberNumberNumber ,求区间 [1,N][1,N...原创 2018-05-27 09:11:57 · 195 阅读 · 0 评论 -
HDU-4507 吉哥系列故事——恨7不成妻(数位DP)
题意:给定一个区间[a,b],求区间中和7无关的数的平方和。一个数如果某一位是7、每一位加起来是7的倍数或这个数是7的倍数,则这个数和7有关。如果求的是个数,这道题明显可解,很裸的数位DP,但这道题求的是平方和。注意到统计个数时,我们把个数当返回值往上传,因为递归到某一位时,这一位的数字已经都枚举过了,只要把个数累加即可。求平方和时,不能直接累加,我们假设递归到第k位,枚举数字i,求到前k-1位的...原创 2018-05-24 07:17:05 · 306 阅读 · 0 评论 -
HDU-5114 Collision(扩展欧几里得)
题意给定一个坐标范围为 x∈[0,m]x∈[0,m]x \in [0,m], y∈[0,n]y∈[0,n]y \in [0,n] 的矩形和两个小球的坐标 (x1,y1),(x2,y2)(x1,y1),(x2,y2)(x_1,y_1),(x_2,y_2) ,两个小球的初速度为 (1,1)(1,1)(1,1) 当小球碰到矩形边缘时会进行反射(类似光的反射),求两个小球第一次相遇的位置。 1≤m,...原创 2018-06-20 07:14:58 · 354 阅读 · 0 评论 -
ZOJ-3593 One Person Game(扩展欧几里得)
题意坐标轴上,一个人想从 AAA 点走到 BBB 点,每次移动可以向左或向右走 aaa 个单位、 bbb 个单位或 a+ba+ba+b 个单位,求最少移动多少次。思路先将原题转化为向右移动 B−AB−AB-A 个单位需要的最小步数。如果不考虑长度为 a+ba+ba+b 的移动,不难看出,不可能向左移动 aaa 长度后,又向右移动 aaa 长度。那么可以设向右的 aaa 移动作了 k1k...原创 2018-05-30 07:47:28 · 470 阅读 · 0 评论 -
POJ-2142 The Balance(扩展欧几里得)
题意给你一台无刻度的天平和两种质量为 A,BA,BA,B 的砝码,使用 xxx 个 AAA 砝码, yyy 个 BBB 砝码,称出质量为 CCC 的物品(砝码可以放在天平的任意一侧)。求当 x+yx+yx+y 值最小时 Ax+ByAx+ByAx+By 最小的 x,yx,yx,y 值。 0&lt;A,B≤100000&lt;A,B≤1000000&lt;C≤500000&lt;C≤500000...原创 2018-05-30 08:28:38 · 342 阅读 · 0 评论 -
HDU-3430 Shuffling(中国剩余定理)
题意给定一堆个数为 nnn 的牌堆,一开始第 iii 张牌的数字是 iii 。你有一个坏掉的洗牌机,它一次操作只能把在 iii 位置的牌洗到 AiAiA_i 位置。你希望得到一个牌堆,使数字为 iii 的牌在 BiBiB_i 的位置。求最少需几次操作,如果做不到,输出 −1−1-1。 1≤n≤5201≤n≤5201 \leq n \leq 520思路将每张牌分开来讨论,对于数字为 ...原创 2018-06-20 18:34:36 · 414 阅读 · 0 评论 -
HDU-5446 Unknown Treasure(中国剩余定理+卢卡斯定理)
题意输出 Cmn%∏i=1ppiCnm%∏i=1ppiC_n^m\% \displaystyle\prod_{i=1}^pp_i 的值。 1≤n,m≤10181≤n,m≤10181 \leq n,m \leq 10^{18} 1≤k≤101≤k≤101 \leq k \leq 10 ∏i=1ppi≤1018∏i=1ppi≤1018\displaystyle\prod_{i=1}^pp_...原创 2018-06-20 19:56:16 · 247 阅读 · 0 评论 -
HDU-5238 Calculator(线段树+中国剩余定理)
题意给定一个关于 xxx 的表达式,形如下例: x×4+2^3+8×6x×4+2^3+8×6x \times 4+2 \text{^} 3 +8 \times 6 按如下方法计算: (((x×4)+2)3+8)×6(((x×4)+2)3+8)×6(((x \times 4)+2)^3 +8) \times 6 运算符只有 +++ 加号、 ××\times 乘号、 ^^\text{^} ...原创 2018-06-20 21:36:13 · 248 阅读 · 0 评论 -
HDU-5668 Circle(中国剩余定理)
题意有 nnn 个人围成一圈进行“猴子选大王”游戏, kkk 个 kkk 个数,第 kkk 个人出圈。给定一个长度为 nnn 的数组 aaa , aiaia_i 表示刚开始编号为 iii 的人是出圈的第 aiaia_i 个人,求最小的 kkk 值。思路按 aiaia_i 从小到大求出每个人的 CRTCRTCRT ,再一一合并即可。这个人在圈内的位置记作此人 CRTCRTCRT 的 ...原创 2018-06-21 07:43:12 · 236 阅读 · 0 评论 -
HDU-5768 Lucky7(中国剩余定理+容斥原理)
题意给定两个长度为 nnn 的数组 A,PA,PA,P ,求区间 [L,R][L,R][L,R] 中满足 xxx 是 777 的倍数且对于 ∀i∈[1,n]∀i∈[1,n]\forall i \in [1,n], x≢Ai(modPi)x≢Ai(modPi)x \not\equiv A_i \pmod {P_i},求 xxx 的个数。 1≤L&lt;R≤10181≤L&lt;R≤10181...原创 2018-06-21 11:14:18 · 218 阅读 · 0 评论 -
POJ-1006 Biorhythms(中国剩余定理)
题意有些人相信人的生命存在三个轮回:身体、精神、智力,周期分别是23天、 28天、33天。分别给出一个人身体、精神、智力高潮的某一个日期 P,E,IP,E,IP,E,I ,以及是当前的日期 ddd ,求下一个三重高潮在哪一天。思路很明显是中国剩余定理模板题,列出三条方程: X=P+23k1X=P+23k1X=P+23k_1 X=E+28k2X=E+28k2X=E+28k_2 X=...原创 2018-06-20 07:15:11 · 198 阅读 · 0 评论 -
HDU-3579 Hello Kiki(中国剩余定理)
题意给定一个实数 nnn ,一些硬币 MiMiMiMiMiMi 个数还剩下 AiAiAi 个 (i∈[1,n])(i∈[1,n])(i\in[1,n]),求硬币的最小数目。思路中国剩余定理模板题,从头梳理一遍。exgcd函数求的是方程 ax+by=gcd(a,b)ax+by=gcd(a,b)ax+by=gcd(a,b) 的一组特解 (x,y)(x,y)(x,y)。 ...原创 2018-06-20 07:15:18 · 344 阅读 · 0 评论 -
POJ-2115 C Looooops(扩展欧几里得)
题意c++语言的for循环格式如下:for (variable = A; variable != B; variable += C) statement;这里的 variablevariablevariable 是一个 kkk 位的无符号整数,也就是说,当位数大于k时,高位会溢出并舍去,求这个循环进行了多少次。思路设这个循环进行了 k1k1k_1 次,不难列出方程 A+C...原创 2018-05-31 07:38:53 · 191 阅读 · 0 评论 -
HDU-4373 Mysterious For(中国剩余定理+卢卡斯定理+可重组合)
题意定义两种类型的 forforfor 循环:for(int a[i]=0;a[i]&lt;n;a[i]++){ //类型一 ...}for(int a[i]=a[i-1];a[i]&lt;n;a[i]++){ //类型二 ...}现在给定循环范围 nnn 并将 mmm 重循环嵌套,最里层的循环内是 fff 函数,已知类型一的循环有 kkk 个并给定这...原创 2018-06-21 15:27:23 · 277 阅读 · 0 评论 -
HDU-3339 In Action(最短路径+01背包)
题意给定一个无向图代表一个电网 nnn 个节点 mmm 条边,每个节点上都有一个电站,每个电站都有一个功率,每条边上都有一个价值。现在在节点 000 上(不属于那 nnn 各节点),有无数辆坦克可以开到一个电站并将它关闭(关闭后坦克不能移动)。求关闭一半以上的功率至少需要多少价值。 1≤n≤1001≤n≤1001 \leq n \leq 100 1≤m≤100001≤m≤100001 \l...原创 2018-06-25 19:56:38 · 225 阅读 · 0 评论