08 2016 档案

摘要:题目链接:hdu_3247_Resource Archiver 题意: 有n个资源串,m个病毒串,现在要将所有的资源串整合到一个串内,并且这个串不能包括病毒串,问最短的串长为多少 题解: 将资源串和病毒串都插入到AC自动机中,分别做好标记,然后用bfs求出0节点和所有资源串互相的最短距离,最后就是一 阅读全文
posted @ 2016-08-31 21:55 bin_gege 阅读(160) 评论(0) 推荐(0) 编辑
摘要:题目链接:hdu_3341_Lost's revenge 题意: 有n个模式串,一个标准串,现在让标准串重组,使得包含最多的模式串,可重叠,问重组后最多包含多少模式串 题解: 显然是AC自动机上的状态压缩DP,不过如果直接开404*500的数组显示开不下,所以这样要将状态hash一下,然后再DP,因 阅读全文
posted @ 2016-08-31 16:11 bin_gege 阅读(148) 评论(0) 推荐(0) 编辑
摘要:题目链接:hdu_2296_Ring 题意: 有m个字符串,每个字符串有一个价值,现在让你组成一个不超过n长度的字符串,使得价值最大 题解: 很明显是在AC自动机上的DP,设dp[i][j]表示当前长度为i,AC自动机上匹配到j这个节点的最大价值,这里要求字典序最小,处理的稍微复杂一点,具体看代码 阅读全文
posted @ 2016-08-30 21:24 bin_gege 阅读(146) 评论(0) 推荐(0) 编辑
摘要:题目链接:Codeforces Round #369 (Div. 2) C. Coloring Trees 题意: 有n个树,每个树有一个颜色,如果颜色值为0,表示没有颜色,一共有m个颜色,第j种颜色涂第i棵树需要花费pij,颜色一样且相邻的分为一组 现在要将所有颜色为0的树涂上颜色,使得这些树恰好 阅读全文
posted @ 2016-08-30 16:49 bin_gege 阅读(189) 评论(0) 推荐(0) 编辑
摘要:题目链接:hdu_2825_Wireless Password 题意: 给你m个串,问长度为n至少含k个串的字符串有多少个 题解: 设dp[i][j][k]表示考虑到长度为i,第j个自动机的节点,含有k这个压缩状态的方案数,然后DP下去就行了 1 #include<bits/stdc++.h> 2 阅读全文
posted @ 2016-08-29 16:44 bin_gege 阅读(182) 评论(0) 推荐(0) 编辑
摘要:题目链接:hdu_5862_Counting Intersections 题意: 给你与坐标轴平行的线段,问你交点数 题解: 实质就是扫描线,这里我用树状数组来记录,所有线段按X坐标排序,遇到横线段的左端点就对应y坐标+1,遇到右端点,就对应y坐标-1,遇到竖线段,就询问对应的区间段 1 #incl 阅读全文
posted @ 2016-08-25 14:29 bin_gege 阅读(165) 评论(0) 推荐(0) 编辑
摘要:题目链接:hdu_5858_Hard problem 题意: 让你求阴影部分面积 题解: 推推公式就行 1 #include<stdio.h> 2 #include<math.h> 3 #define PI 3.1415926535897932384626433832795 4 int main() 阅读全文
posted @ 2016-08-18 19:36 bin_gege 阅读(258) 评论(0) 推荐(0) 编辑
摘要:题目链接:hdu_5855_Less Time, More profit 题意: 有n个工厂,每建一个工厂要花费vi,需要时间ti,然后有m个商店,每个商店需要在指定的k个工厂中进货,才能盈利,如果其中一个不在,都不能盈利,问在满足利润大于等于k的情况下的最少时间t,和在t时刻的最大利润 题解: 二 阅读全文
posted @ 2016-08-16 18:04 bin_gege 阅读(210) 评论(0) 推荐(0) 编辑
摘要:题目链接:hdu_5832_A water problem 这是一个惨痛的教训,想这种这么大的大数肯定就是找个规律模拟一下。 然而我们队还写JAVA,用大数艹了13发罚时,真是TM智障了。 1 #include<bits/stdc++.h> 2 using namespace std; 3 4 co 阅读全文
posted @ 2016-08-15 20:15 bin_gege 阅读(275) 评论(0) 推荐(0) 编辑
摘要:题目链接:poj_3261_Milk Patterns 题意: 给你一串数,让你找重复出现不少于k次的子串的最长长度,重复出现可重叠 题解: 老套路,还是二分答案,然后用height数组来check答案 1 #include<cstdio> 2 #include<algorithm> 3 #defi 阅读全文
posted @ 2016-08-13 01:40 bin_gege 阅读(129) 评论(0) 推荐(0) 编辑
摘要:题目链接:poj_1743_Musical Theme 题意: 给你一串数字,让你找最长的变化相同不重叠的子串,至少长度为5 题解: 处理数据后用后缀数组加二分答案,然后用height数组check答案,运用height数组求相同不重叠的子串经典运用 1 #include<cstdio> 2 #in 阅读全文
posted @ 2016-08-12 20:48 bin_gege 阅读(141) 评论(0) 推荐(0) 编辑
摘要:题目链接:Codeforces Round #367 (Div. 2) D. Vasiliy's Multiset 题意: 给你一些操作,往一个集合插入和删除一些数,然后?x让你找出与x异或后的最大值 题解: trie树xjb搞就行,每次要贪心,尽量满足高位为1. 1 #include<bits/s 阅读全文
posted @ 2016-08-12 18:36 bin_gege 阅读(123) 评论(0) 推荐(0) 编辑
摘要:题目链接:Codeforces Round #367 (Div. 2) C. Hard problem 题意: 给你一些字符串,字符串可以倒置,如果要倒置,就会消耗vi的能量,问你花最少的能量将这些字符串排成字典序 题解: 当时1点过头太晕了,看错题了,然后感觉全世界都会,就我不会,- -!结果就是 阅读全文
posted @ 2016-08-12 15:17 bin_gege 阅读(148) 评论(0) 推荐(0) 编辑
摘要:题目链接:hdu_5831_Rikka with Parenthesis II 题意: 给你一些括号的排列,必须交换一次,能不能将全部的括号匹配 题解: 模拟一下括号的匹配就行了,注意要特判只有一对括号是NO,因为必须要交换一次 1 #include <cstdio> 2 #include <cst 阅读全文
posted @ 2016-08-11 20:57 bin_gege 阅读(156) 评论(0) 推荐(0) 编辑
摘要:题目链接:hdu_5826_physics 题意: 给你一些点的速度和初始位置,还有方向,这些速度和加速度满足v*a=c,然后又q个询问,问第t秒第K小的速度是多少 题解: 将物理公式转换为v与t的关系,然后将初始的v排序后直接输出就行 公式为v=sqrt(2*c*t+v02) 1 #include 阅读全文
posted @ 2016-08-11 20:53 bin_gege 阅读(153) 评论(0) 推荐(0) 编辑
摘要:题目链接:hdu_5821_Ball 题意: 给你序列A和序列B,依次给你m个区间,每次你可以交换区间内的任意数,问最后能不能将A变成B 题解: 比赛当时没想到,智商被压制 1001: 假设有4个红球,初始时从左到右标为1,2,3,4。那么肯定存在一种方案,使得最后结束时红球的顺序没有改变,也是1, 阅读全文
posted @ 2016-08-11 20:42 bin_gege 阅读(120) 评论(0) 推荐(0) 编辑
摘要:题目链接:hdu_5818_Joint Stacks 题意: 给你两个栈,多了个合并操作,然后让你模拟 题解: 很容易想到O(1)的单个栈操作,O(n)的合并操作,这样肯定超时,所以我们要将时间复杂度均摊一下,让每个操作都是logn的,于是用上了线段树模拟。 线段树考虑染色,线段树的区间代表的是操作 阅读全文
posted @ 2016-08-10 11:30 bin_gege 阅读(171) 评论(0) 推荐(0) 编辑
摘要:题目链接:hdu_5813_Elegant Construction 题意: 给你n个点,每个点要可以到达ai个点,可以直接可以间接,不能有环,问是否可行,如果可行就任选一种方式连接,并输出连接的边数和边 题解: 我们按每个点要能到达的点数从小到大排序,然后枚举每个点i,对前面的j(j<i)连一条边 阅读全文
posted @ 2016-08-09 18:22 bin_gege 阅读(190) 评论(0) 推荐(0) 编辑
摘要:题目链接:hdu_5810_Balls and Boxes 题意: 如题,让你求那个公式的期望 题解: 打表找规律,然后推公式。这项技能必须得学会 1 #include<cstdio> 2 #include<algorithm> 3 using namespace std; 4 int main() 阅读全文
posted @ 2016-08-09 18:13 bin_gege 阅读(153) 评论(0) 推荐(0) 编辑
摘要:题目链接:hdu_2328_Corporate Identity 题意: 给你n个串,让你找这n个串的最大公共子串 题解: 串比较小,暴力枚举第一个的子串,然后KMP判断是否可行 1 #include<cstdio> 2 #include<cstring> 3 #define F(i,a,b) fo 阅读全文
posted @ 2016-08-08 22:55 bin_gege 阅读(179) 评论(0) 推荐(0) 编辑
摘要:B. Spider Man time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output B. Spider Man time limit p 阅读全文
posted @ 2016-08-08 14:34 bin_gege 阅读(115) 评论(0) 推荐(0) 编辑
摘要:C. Thor time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output C. Thor time limit per test 2 se 阅读全文
posted @ 2016-08-08 14:32 bin_gege 阅读(284) 评论(0) 推荐(0) 编辑
摘要:题目链接:hdu_5807_Keep In Touch 题意: 1004 Keep In Touch 考虑dp,设f[i][j][k]表示三个人分别在i,j,k时的方案数,直接转移是O(n^6)的。 于是考虑加维,设f[i][j][k][now]表示三个人分别在i,j,k,时,目前准备走now这个人 阅读全文
posted @ 2016-08-07 21:58 bin_gege 阅读(477) 评论(0) 推荐(0) 编辑
摘要:题目链接:hdu_5806_NanoApe Loves Sequence Ⅱ 题意: 给你一段数,问你有多少个区间满足第K大的数不小于m 题解: 直接双指针加一下区间就行 1 #include<cstdio> 2 #include<algorithm> 3 #define F(i,a,b) for( 阅读全文
posted @ 2016-08-06 21:56 bin_gege 阅读(163) 评论(0) 推荐(0) 编辑
摘要:题目链接:hdu_5805_NanoApe Loves Sequence 题意: 给你n个数,现在要删一个数,删每个数的概率是一样的,现在问你删一个值后的相邻数绝对值最大差的期望是多少,因为担心精度误差,让你答案乘n 题解: 先算出不删数的绝对值最大的差ma并记录位置,如果要删的数不是刚才求出来的位 阅读全文
posted @ 2016-08-06 21:50 bin_gege 阅读(231) 评论(0) 推荐(0) 编辑
摘要:题目链接:hdu_3518_Boring counting 题意: 给你一个字符串,让你找不重叠且出现大于1次以上的字串个数 题解: 后缀数组height数组的应用,我们枚举字串的长度,然后将height数组分段,符合条件就ans++ 为什么要这样做,因为height数组存的是相邻排名后缀的最大前缀 阅读全文
posted @ 2016-08-06 18:28 bin_gege 阅读(255) 评论(0) 推荐(0) 编辑
摘要:题目链接:hdu_5800_To My Girlfriend 题意: 给你n和物品和一个重量m,让你求 题解: To My Girlfriend 令dp[i][j][s1][s2]表示前i个物品填了j的体积,有s1个物品选为为必选,s2个物品选为必不选的方案数(0<=s1,s2<=2),则有转移方程 阅读全文
posted @ 2016-08-06 15:40 bin_gege 阅读(159) 评论(0) 推荐(0) 编辑
摘要:题目链接:hdu_5794_A Simple Chess 题意: 给你n,m,从(1,1)到(n,m),每次只能从左上到右下走日字路线,有k(<=100)的不能走的位置,问你有多少方案 题解: 画图可看到路线是一个杨辉三角的图,然后我们可以将对应的x,y转换到对应的点上,也可以吧杨辉三角看成一个平行 阅读全文
posted @ 2016-08-06 01:27 bin_gege 阅读(145) 评论(0) 推荐(0) 编辑
摘要:题目链接:hdu_5802_Windows 10 题意: 给你两个音量a,b,要让你将音量a变到音量b,up:每秒只能一次加1的音量,down:如果连续按x秒,那么就会减2x-1的音量 题解: 对于a<=b,直接输出a-b就行 对于a>b: 要考虑3种情况: 1. 直接连按x秒 2. 先up到2x- 阅读全文
posted @ 2016-08-05 16:30 bin_gege 阅读(131) 评论(0) 推荐(0) 编辑
摘要:题目链接:hdu_5795_A Simple Nim 题意: 有N堆石子,你可以取每堆的1-m个,也可以将这堆石子分成3堆,问你先手输还是赢 题解: 打表找规律可得: sg[0]=0 当x=8k+7时sg[x]=8k+8, 当x=8k+8时sg[x]=8k+7, 其余时候sg[x]=x;(k>=0) 阅读全文
posted @ 2016-08-04 18:42 bin_gege 阅读(183) 评论(0) 推荐(0) 编辑
摘要:题目链接:hdu_5793_A Boring Question 题意: 自己看吧,说不清楚了。 题解: 打表找规律 1 #include<cstdio> 2 typedef long long ll; 3 4 const int mod=1e9+7; 5 ll pow(ll a,ll b) 6 { 阅读全文
posted @ 2016-08-04 18:33 bin_gege 阅读(448) 评论(0) 推荐(0) 编辑
摘要:题目链接:hdu_1403_Longest Common Substring 题意: 给你两个字符串,然你找最长的公共子串 题解: 后缀数组的经典应用,要找两个字符串的公共子串,那么就相当于找两个串的后缀的最长公共前缀,我们将两个字符串拼接在一起,中间插一个特殊字符 然后我们考虑height数组,h 阅读全文
posted @ 2016-08-03 17:18 bin_gege 阅读(140) 评论(0) 推荐(0) 编辑
摘要:题目链接:hdu_5792_World is Exploding 题意: 给你一个数列,让你找有多少个(a,b,c,d)满足a≠b≠c≠d,1≤a<b≤n,1≤c<d≤n,Aa<Ab,Ac>Ad. 题解: 如果abcd可以相等,那么就是所有的顺序对和逆序对相乘,但这里要不相等,所以我们减去相等的情况 阅读全文
posted @ 2016-08-03 11:08 bin_gege 阅读(355) 评论(0) 推荐(0) 编辑
摘要:题目链接:hdu_5787_K-wolf Number 题意: 给你一个区间,让你找满足任意k个数位内都没有相同的数字的个数 题解: 因为k不大,就直接将当前pos的前k-1个数传进去就行了 1 #include<cstdio> 2 #include<cstring> 3 int dig[20],l 阅读全文
posted @ 2016-08-02 22:28 bin_gege 阅读(702) 评论(0) 推荐(0) 编辑
摘要:题目链接:hdu_5791_Two 题意: 给你两串数列,问你相同的子序列有多少个,要注意,可以重复,比如1 和1 1 1 ,相同的子序列为3个 题解: 就和求最长公共子序列差不多,只不过要全部加起来 下面是官方题解: Two: 水题。dp[i][j]表示A序列前i个数和B序列前j个数的相同子序列对 阅读全文
posted @ 2016-08-02 21:39 bin_gege 阅读(259) 评论(0) 推荐(0) 编辑
摘要:题目链接:hdu_5783_Divide the Sequence 题意: 给你一个数列,让你分尽可能多的段,并且保证每一段的前缀和都不小于0 题解: 从后往前xjb贪心就行了 1 #include<cstdio> 2 3 const int N=1e6+7; 4 int a[N]; 5 int m 阅读全文
posted @ 2016-08-02 20:04 bin_gege 阅读(152) 评论(0) 推荐(0) 编辑
摘要:题目链接:hdu_5769_Substring 题意: 给你一个字符a和一个串b,问你有多少个包括a的字串 题解: 1 #include<bits/stdc++.h> 2 #define F(i,a,b) for(int i=a;i<=b;++i) 3 using namespace std; 4 阅读全文
posted @ 2016-08-02 00:50 bin_gege 阅读(135) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示