08 2017 档案

摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6172 题意:给一堆东西,就是求个线性递推式,求第n项%1e9+7 杜教板真牛逼啊,线性递推式用某特征值相关的论文板,打表前几项丢进去就出结果了。 阅读全文
posted @ 2017-08-24 19:32 Kirai 阅读(409) 评论(0) 推荐(0)
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6180 题意:n个线段拆成k个不相交的集合,要求k最小的情况下,所有线段集合中右端点与左端点差的和最小。 贪心,首先给线段排序,往multiset中插,multiset中的数代表某一个集合的右端点编号。 阅读全文
posted @ 2017-08-24 19:29 Kirai 阅读(342) 评论(0) 推荐(0)
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6178 题意:希望在一棵树中删掉最多的边,使得剩下的k个点至少有一个点相连。 比赛时候学弟贪心dfs过的,然后发现这个题实际上是最大匹配。 任意两点相连代表匹配中的一条边,最大匹配后的结果就是树上最多有多 阅读全文
posted @ 2017-08-24 19:25 Kirai 阅读(195) 评论(0) 推荐(0)
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6170 题意:给个只有[a-z]/*/.的正则式,拿去匹配一个字符串,问能不能匹配上。 f(i,j)代表正则式到i,匹配字符串到j时的匹配情况,a-z和.的匹配非常容易转移,难点在处理*上。 一开始想用树 阅读全文
posted @ 2017-08-24 11:36 Kirai 阅读(136) 评论(0) 推荐(0)
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6165 题意:问一个有向图中是否有任意两点可以到达。 读错题就彻底输了,读成判断是否有任意条路,使得经过所有点并且每条边最多走一次。 强联通缩点,然后维护拓扑序,假如拓扑序中有两个以上点入度为0,那么这几 阅读全文
posted @ 2017-08-22 19:13 Kirai 阅读(240) 评论(0) 推荐(0)
摘要:题目链接:http://codeforces.com/contest/750/problem/D 题意:烟花看做n层,第i层的格子可以朝45°方向的格子扩展ti次,问有多少格子可以被经过。 vis(x,y,i,dir,st)表示(x,y)点在第i层,由dir方向,走了st步过来。写好方向的元组,每次 阅读全文
posted @ 2017-08-22 14:56 Kirai 阅读(297) 评论(0) 推荐(0)
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6034 题意:给'a'到'z'重新安排顺序,使得在给出的n个字符串分别代表的26进制数和最大。 一开始'a'到'z'只起到占位作用,分别统计某个字符在某个位置出现的次数和这个位置代表的价值。之后对每个字符 阅读全文
posted @ 2017-08-21 21:57 Kirai 阅读(189) 评论(0) 推荐(0)
摘要:题目链接:http://hihocoder.com/problemset/problem/1560 有了数位dp的思维基础,这个递推式很容易想到: 构造转移矩阵的时候思考数位dp的转移。 阅读全文
posted @ 2017-08-21 14:22 Kirai 阅读(279) 评论(0) 推荐(0)
摘要:题目链接:http://hihocoder.com/problemset/problem/1555 首先要知道一元四次方程根与系数的关系: 设x^4+ax^3+bx²+cx+d=0的四个根是x1,x2,x3,x4,则x1+x2+x3+x4=﹣ax1x2+x1x3+x1x4+x2x3+x2x4+x3x 阅读全文
posted @ 2017-08-21 13:15 Kirai 阅读(563) 评论(0) 推荐(0)
摘要:题目链接:http://hihocoder.com/problemset/problem/1554 不能直接暴力,遇到相同的时候贪心给任意一个串。比如下列数据: aaa abc abcaaa 应该在遇到相同的时候DP处理,f(i,j,k)表示ai bj sk的时候字符串的最短长度,还要考虑从s的哪个 阅读全文
posted @ 2017-08-21 11:47 Kirai 阅读(150) 评论(0) 推荐(0)
摘要:题目链接:http://codeforces.com/contest/831/problem/D 题意:数轴上,n个人k把钥匙。所有人都要先拿到一把钥匙再去p点,一把钥匙只能一个人用,问最少需要多少时间。 最大流做最大匹配会TLE,所以GG。 很经典,二分时间,相当于每个人都有那么长的时间,然后处理 阅读全文
posted @ 2017-08-20 14:28 Kirai 阅读(1083) 评论(0) 推荐(0)
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6156 题意:算十进制下数字在[L,R]内用[l,r]进制表述下的数字贡献。 贡献有两种:回文数,贡献是进制k;不是回文数,贡献是1。 由于进制只有36个,枚举进制分别做统计回文数的数位dp即可,贡献按要 阅读全文
posted @ 2017-08-19 21:05 Kirai 阅读(388) 评论(0) 推荐(0)
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6154 有些题一辈子只会做一次,比如这个题。。 题意:炒鸡难懂,学弟读明白的。懒得描述,反正这题以后不会再做。 f(i)表示i个线段能围成的最大面积,画画图就会发现一个规律。 然后查询的时候二分最小的大于 阅读全文
posted @ 2017-08-19 21:03 Kirai 阅读(336) 评论(0) 推荐(0)
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6153 题意:给两个字符串s1, s2。问s2的所有后缀在s1中出现次数*后缀长度的和。 两个字符串反过来,s2预处理个pre数组,在对s1跑kmp。失配的时候记录下这个长度len,代表1~len这么多个 阅读全文
posted @ 2017-08-19 21:01 Kirai 阅读(234) 评论(0) 推荐(0)
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6152 拉姆齐定理,R(3,3)=6,说明6个人以上的时候,一定会存在规模为3的团或者3个团。 所以暴力枚举6点以下的结果,其余bad就好。不小心mle了几发。 阅读全文
posted @ 2017-08-19 20:58 Kirai 阅读(212) 评论(0) 推荐(0)
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6147 果然是原题之星…原题链接:http://contest.felk.cvut.cz/14prg/solved/self/ 确实很容易发现,第一次覆盖一定是与轨迹上的前8段(或者更 少)中的某一段。 阅读全文
posted @ 2017-08-19 11:18 Kirai 阅读(352) 评论(0) 推荐(0)
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6149 比赛时这题想歪到最大流了,实际上高点至多只有15个。因此可以枚举低点,再枚举低点相连的高点做dp。 f(i,j)代表前i个低点,此时高点使用状态为j时的最多三元组数。事先预处理每一个高点在bit位 阅读全文
posted @ 2017-08-19 10:40 Kirai 阅读(160) 评论(0) 推荐(0)
摘要:题目链接:http://codeforces.com/problemset/problem/792/D 画出树,找找规律,画图就好了。不算麻烦。 往下走的时候特判是不是叶子,往上走的时候特判是不是根。其余时候按照规律转移就是。 感觉可以推广到建树上,可以缩小常数是极好的。 阅读全文
posted @ 2017-08-18 20:29 Kirai 阅读(299) 评论(0) 推荐(0)
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6148 经典数位dp,dp(l,pre,status)表示长度l,之前数字是pre,由什么状态转移过来的。 status有3个:0初始(就一次)1上升2下降,按要求分三个情况讨论转移就行了。 阅读全文
posted @ 2017-08-18 20:27 Kirai 阅读(142) 评论(0) 推荐(0)
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6146 一个可行的思路是考虑三个子问题 全部走完2*N个格子的方法总数DP[N] 全部走完2*N个格子并且起点是最左边的两个格子之一的方法总数DP2[N] 全部走完2*N个格子并且起点和终点分别是最左边的 阅读全文
posted @ 2017-08-18 20:25 Kirai 阅读(147) 评论(0) 推荐(0)
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6144 XJB模拟一下就行,反正最多重复⑨次。 非要说用上什么数学原理的话,大概就是(a+b)%mod = (a%mod)+(b%mod)%mod,(a*b)%mod。。。吧 阅读全文
posted @ 2017-08-18 20:23 Kirai 阅读(255) 评论(0) 推荐(0)
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6143 题意:给m个字符,要求分配m个字符给许多二元组,每个二元组包含两个字符串,长度为n。要求两个字符串中不能出现相同的字符,问有多少种二元组。 考虑给二元组中第一个字符串i个字符,那么有C(m,i)种 阅读全文
posted @ 2017-08-18 12:46 Kirai 阅读(194) 评论(0) 推荐(0)
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6119 合并有重叠的段后尺取。 阅读全文
posted @ 2017-08-18 12:37 Kirai 阅读(145) 评论(0) 推荐(0)
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6118 这个建图炒鸡简单,中间的图去掉重边后丢进去就行。 建图的时候费用实际上是价值,所以正的费用就不用跑了,相当于求费用可行流。 阅读全文
posted @ 2017-08-18 12:36 Kirai 阅读(303) 评论(0) 推荐(0)
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6115 这题数据太弱了,看到群里说这题暴力就行,就打了一个暴力。 预处理每个点到根的距离,查的时候O(n^2logn)就行了。。。 当然不排除我的暴力姿势好(1e6^3姿势再好也白搭) 阅读全文
posted @ 2017-08-18 12:28 Kirai 阅读(168) 评论(0) 推荐(0)
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6114 其实就是n*m的格子里放棋子,当前层的棋子必须在上一层的右边,问多少种放法。 其实就是求组合数,注意n m大小。 阅读全文
posted @ 2017-08-18 12:24 Kirai 阅读(161) 评论(0) 推荐(0)
摘要:题目链接:http://codeforces.com/contest/792/problem/C 题意:给个超长整数,问最少删掉几个数,使得这个数能被3整除。输出这个删掉字符后的字符串。 当然这个数各位加起来能被三整除,那么这个数就能被三整除。 很容易的dp,f(i,j)表示前i个字符各位和%3=j 阅读全文
posted @ 2017-08-18 11:51 Kirai 阅读(1031) 评论(0) 推荐(0)
摘要:题目链接:http://codeforces.com/problemset/problem/825/E 题意:给一个有向图,求一个排列,这个排列是每一个点的序号,使得序号对应的点的排序符合拓扑序并且这个排列字典序最小。 直接跑字典序最小的拓扑排序是不行的,因为那样只是确保点的字典序而非这个排列的字典 阅读全文
posted @ 2017-08-12 13:39 Kirai 阅读(332) 评论(0) 推荐(0)
摘要:题目链接:http://codeforces.com/problemset/problem/825/D 题意:给两个字符串s t,s中有一些问号。现在问号可以替换为任意字符,s字符串可以任意换位置,希望让t在s中出现次数最多。 统计s中各个字符出现次数,一直扫t,用s中与t相同字符抵消,不能抵消就用 阅读全文
posted @ 2017-08-12 13:33 Kirai 阅读(581) 评论(0) 推荐(0)
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6084 这题打表找规律,发现答案是: 打表代码: 之后发现这个阶乘怎么这!么!大! 而后阶乘再打个表,跑不到一分钟就能跑出来。 ac代码: 阅读全文
posted @ 2017-08-11 18:23 Kirai 阅读(428) 评论(0) 推荐(0)
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6081 无向图求割点,应该是个论文题,16年有一篇SW算法+斐波那契堆优化的论文。 但是这数据怎么这!么!水! 我在有生之年大概不会需要接触这篇论文了)flag 阅读全文
posted @ 2017-08-11 18:12 Kirai 阅读(240) 评论(0) 推荐(0)
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6082 枚举所有怪兽可能的生命值和防御值,以此为代价,对魔法值和伤害值做完全背包,每次求出击杀怪物的最小花费,求答案的时候把各种组合的最小花费加起来即可。 阅读全文
posted @ 2017-08-11 18:08 Kirai 阅读(210) 评论(0) 推荐(0)
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6083 01背包加记录路径,用path(i,j)给转移时的状态打标记,倒推回去就行。 阅读全文
posted @ 2017-08-11 18:05 Kirai 阅读(161) 评论(0) 推荐(0)
摘要:题目链接:http://codeforces.com/contest/837/problem/D 题意:n个数里选k个数,使得它们的乘积末尾0个数最多。 只需要统计每个数的2和5的数量,一个作为容量,一个作为价值。f(i,k,j)表示前i个数选k个,一共有j个2的时候,5最多有几个。 外层枚举前i个 阅读全文
posted @ 2017-08-06 21:35 Kirai 阅读(183) 评论(0) 推荐(0)
摘要:题意:http://codeforces.com/contest/837/problem/B 判断给定二维阵是否是个条形旗,条形旗符合条件: Flag consists of three colors which correspond to letters 'R', 'G' and 'B'. Fla 阅读全文
posted @ 2017-08-06 17:55 Kirai 阅读(244) 评论(0) 推荐(0)
摘要:题目链接:https://vjudge.net/problem/UVA-12563 题意:n首歌要在m-1的时间内挑k首唱,现在希望在k尽可能大的情况下,时间尽可能长地唱。问最后最大k+1多大,最长时间+678多长。 普通完全背包,附加额外记一维记录歌曲个数。先判断当个数相同的时候,仅更新时长,否则 阅读全文
posted @ 2017-08-04 23:45 Kirai 阅读(149) 评论(0) 推荐(0)