随笔分类 -  HDU

摘要:题目大意:给你一个最长为1e6的字符串,再给你一个字典,问你在这个字符串里面有多少字典中国的字符串出现过。解题思路:AC自动机模板题。这道题目,有两个坑点。大概是两个坑点吧。第一个就是要被匹配的串可能会匹配字典中的字符串多次。第二个就是字典中的字符串可能会重复,可能会被多次匹配到。比如一个数据:13... 阅读全文
posted @ 2016-12-13 15:01 _Wilbert 阅读(132) 评论(0) 推荐(0)
摘要:题目大意:有两个函数,g[i] = k * i + b,另外一个函数f[i] = f[i-1] + f[i-2],问你从0到n-1的f(g[i])的和。解题思路:斐波那契数列有种递推的思路是:{f[i+1], f[i]; f[i], f[i-1]} = A ^ i其中A = {1, 1; 1, 0}... 阅读全文
posted @ 2016-10-17 17:24 _Wilbert 阅读(113) 评论(0) 推荐(0)
摘要:题目大意:已知f[0] = 0, f[1] = 1, f[i] = f[i-1] * 2 + f[i-2],且g[n] = g[n-1] + f[n] * f[n],现在给出n,y,x,s,问你x^(g[n*y]) mod (s + 1)的值为多少。解题思路:首先可以得到的是g[n] = f[n] ... 阅读全文
posted @ 2016-09-20 20:39 _Wilbert 阅读(170) 评论(0) 推荐(0)
摘要:题目大意:有n对二元组(key, value),两个相邻的元组间如果key的不互质,那么可以被移除,并获得两个元组的value值之和的分数,问你最多能有多少分数。解题思路:区间DP按照最裸的区间DP模型用记忆化搜索写是要超时的...本题的模型可以参考POJ-2955 Brackets题解这里有~设d... 阅读全文
posted @ 2016-09-19 18:26 _Wilbert 阅读(105) 评论(0) 推荐(0)
摘要:题目大意:给你n个点,有m条边,让你求出这个图的最短路上的最小割,这个最小割。解题思路:直接求出最短路图然后dinic跑最小割就行。我遇到的一些错误点:1、用dinic算法求解最小割需要使用当前弧优化,否则会TLE2、最短路图注意求最短路的时候,每个边都是长度为1,也就是说可以bfs求。千万不要把权... 阅读全文
posted @ 2016-09-18 21:45 _Wilbert 阅读(152) 评论(0) 推荐(0)
摘要:题目大意:给你n个长度为ai的序列,让你把这n个序列合并,每次合并需要一个cost,值为合并的序列的长度之和,每次最多可以合并k个序列。现在问你,给出cost最大为T,最小的k是多少。解题思路:显然,可以用优先队列水一发,复杂度为nlognlogn二分枚举k,然后每次取最小的k个加在一起,加入队列,... 阅读全文
posted @ 2016-09-17 22:54 _Wilbert 阅读(153) 评论(0) 推荐(0)
摘要:题目大意:给你一个完全图让你删除给出的这些边形成新的图,问你在新的图上的s点到其它所有点的距离。解题思路:BFS乱搞...补图的BFS的问题虽然很经典= =不过确实还是第一次做。很方。用一个map来保存邻接的信息。因为最多20000,很坑的是比赛时候题面给的是5000然后先从s来遍历所有点,如果邻接... 阅读全文
posted @ 2016-09-13 12:57 _Wilbert 阅读(151) 评论(0) 推荐(0)
摘要:题目大意:在地球上有n个人,但是地球快要game over了,所以这n个人要去别的星球生存,有m个适宜居住的星球,然后每个人对这m个星球都有一个适宜度,1代表适宜,0代表不适宜,最后给出m个星球每个能容纳多少人,问你这m个星球能否让这n个人搬去住解题思路:这是一道网络流的题,据说可以用二分图匹配来做... 阅读全文
posted @ 2016-08-06 21:22 _Wilbert 阅读(131) 评论(0) 推荐(0)
摘要:Problem DescriptionIgnatius最近遇到一个难题,老师交给他很多单词(只有小写字母组成,不会有重复的单词出现),现在老师要他统计出以某个字符串为前缀的单词数量(单词本身也是自己的前缀). Input输入数据的第一部分是一张单词表,每行一个单词,单词的长度不超过10,它们代表的是... 阅读全文
posted @ 2016-08-04 10:33 _Wilbert 阅读(100) 评论(0) 推荐(0)
摘要:题目大意:给你一个n*m的矩阵,现在有一个长度为n的序列a,一个长度为m的序列b,让你把这个矩阵第i行的所有元素都乘以a[i],把第j列的元素都除以b[j],问你存不存在这样的两个序列a,b,使得经过这些操作之后的矩阵每个元素都在[L, U]之间解题思路:可以得出要求是 L #include #in... 阅读全文
posted @ 2016-08-03 10:34 _Wilbert 阅读(117) 评论(0) 推荐(0)
摘要:题目大意:N个人去看世博会,但是这N个人的关系不同所以希望站的序列也有一定要求,给出X个约束:A和B必须最多离开C距离,再给出Y个约束:A和B必须至少离开C距离,现在问你有没有这样的序列满足,有的话,输出1-n的最大距离,如果没有输出-1,如果有但是1-n的距离可以任意远,输出-2解题思路:差分约束... 阅读全文
posted @ 2016-08-03 10:28 _Wilbert 阅读(117) 评论(0) 推荐(0)
摘要:题目大意:有个人经常跳房子,但是他必须从低的跳到高的,他有个能力,他能够把房子搬动,但是他搬动房子之后不能破坏原本的序列,现在给出房子高度的序列,并且给出他能跳房子的最大距离,然后让你求最高的房子到最低的房子间最大的距离。解题思路:差分约束代码:#include #include #include ... 阅读全文
posted @ 2016-08-03 10:22 _Wilbert 阅读(123) 评论(0) 推荐(0)
摘要:题目大意:给你n个项目,并给出m个约束,其中SAF表示start after finish, SAS 表示start after start, FAS表示finish after start, FAF表示finish after finish解题思路:差分约束代码:#include #include... 阅读全文
posted @ 2016-08-03 10:15 _Wilbert 阅读(132) 评论(0) 推荐(0)
摘要:题目大意:给出n个约束,问你能不能找到一个序列满足这个约束解题思路:差分约束代码:#include #include #include #include using namespace std;const int maxn = 150;const int INF = 0x3f3f3f3f;typed... 阅读全文
posted @ 2016-08-03 10:12 _Wilbert 阅读(120) 评论(0) 推荐(0)
摘要:题目大意:从0点到23点,给出每个时刻需要的售货员个数,再给出每个时刻应征的售货员个数,然后让你求出满足需求的最小售货员个数解题思路:差分约束代码:#include #include #include #include using namespace std;const int maxn = 100... 阅读全文
posted @ 2016-08-03 10:09 _Wilbert 阅读(104) 评论(0) 推荐(0)
摘要:题目大意:有一个整数集合Z,现在给出n个整数区间[a,b]以及|Z∩[a,b]|的最少个数c,让你求这个整数集合的最小有多少解题思路:差分约束系统+spfa差分约束系统事实上就是一个构图的过程比如说现在有n个不等式X1 - X2 #include #include #include #include... 阅读全文
posted @ 2016-07-31 22:09 _Wilbert 阅读(99) 评论(0) 推荐(0)
摘要:题目大意:求∑gcd(x^a-1, x^b-1)对1e9+7取模的值解题思路:官方题解:首先有等式({x}^{a}-1x​a​​−1,{x}^{b}-1x​b​​−1)={x}^{gcd(a,b)}-1x​gcd(a,b)​​−1成立,相当于计算\sum \sum {x}^{gcd(a,b)}-1∑... 阅读全文
posted @ 2016-07-31 16:27 _Wilbert 阅读(138) 评论(0) 推荐(0)
摘要:题目大意:给定一个数x,求正整数y\geq 2y≥2,使得满足以下条件:1.y-x的绝对值最小2.y的质因数分解式中每个质因数均恰好出现2次。解题思路:由于y质因数分解式中每个质因数均出现2次,那么y是一个完全平方数,设y=z*z,题目可转换成求z,使得每个质因数出现1次. 我们可以暴力枚举z,检查... 阅读全文
posted @ 2016-07-31 14:20 _Wilbert 阅读(117) 评论(0) 推荐(0)
摘要:题目大意:小白在玩一个游戏。桌子上有n张多米诺骨牌排成一列。它有k次机会,每次可以选一个还没有倒的骨牌,向左或者向右推倒。每个骨牌倒下的时候,若碰到了未倒下的骨牌,可以把它推倒。小白现在可以随意设置骨牌的高度,但是骨牌高度为整数,且至少为1,并且小白希望在能够推倒所有骨牌的前提下,使所有骨牌高度的和... 阅读全文
posted @ 2016-07-31 14:14 _Wilbert 阅读(138) 评论(0) 推荐(0)
摘要:题目大意:给定一个数列,求是否存在连续子列和为m的倍数,存在输出YES,否则输出NO解题思路:官方题解:预处理前缀和,一旦有两个数模m的值相同,说明中间一部分连续子列可以组成m的倍数。 另外,利用抽屉原理,我们可以得到,一旦n大于等于m,答案一定是YES 复杂度 O(n)代码:#include #i... 阅读全文
posted @ 2016-07-31 14:07 _Wilbert 阅读(124) 评论(0) 推荐(0)