上一页 1 ··· 14 15 16 17 18 19 20 21 22 ··· 41 下一页
摘要: A(hdu5933):(贪心) 题意:长度为n的数组: a1, a2,⋯, 每次操作要么可以merge两个相邻的数为一个, 值为两个数的和; 要么可以把一个数分裂成两个, 两个数的和为原数. 用最少的操作把数组变换成长度为K且所有数值相等的数组, 无解输出-1 分析:注意到是只能合并相邻的数,那么从 阅读全文
posted @ 2016-11-04 20:22 Chellyutaha 阅读(866) 评论(0) 推荐(0) 编辑
摘要: A、B:模拟 C、构造下就行了 D、题意:n个参加ACM的队(n<=300000),每个队都有自己的初始气球数和重量,规定如果气球数>重量,那么此队就会飞起来,淘汰出局,你现在是第一组,你可以给其他组气球,问你最高能排名多少,你的排名是气球数严格大于你气球数的队伍数+1。 分析:贪心的想法,将那些气 阅读全文
posted @ 2016-10-24 00:15 Chellyutaha 阅读(85) 评论(0) 推荐(0) 编辑
摘要: A、B、C:=,= D:题意:有n(n<=1e5)天,每天可以选择考某一门科目或者在家复习,一共m(m<=1e5)门科目,每个科目都有特定的需要复习时间,只有复习了足够的天数才可以考并且考过。给出每天的信息,0代表无考试科目,其他代表那天考那一门(当然你可以选择不考,这天复习),问要考过所有科目至少 阅读全文
posted @ 2016-10-22 20:42 Chellyutaha 阅读(119) 评论(0) 推荐(0) 编辑
摘要: poj2965 poj1753:标准的BFS+位运算优化 poj1328:线段覆盖变种,把圆对应到线段上,贪心求解 poj2109:高精度开根,二分+高精度,注意要判断答案的位数,如果按照题目给的范围二分会TLE poj2586:给十二个月定盈亏(每个月+s或-d),连续5个月总的需要时亏,求12个 阅读全文
posted @ 2016-10-12 09:19 Chellyutaha 阅读(368) 评论(0) 推荐(0) 编辑
摘要: 一、单个字符串问题 1、重复子串 ①可重叠最长重复子串 分析:后缀的lcp就是子串的lcp,等价于求任意两个后缀的的最长公共前缀,任意两个后缀的最长公共前缀是这段height[]中的最小值,这个最小值一定小于整个height[]的最大值,所以结果就是height[]的最大值 O(n) ②不可重叠最长 阅读全文
posted @ 2016-10-09 21:15 Chellyutaha 阅读(292) 评论(0) 推荐(0) 编辑
摘要: A、B、C、D:=w= E:题意:给你一个无向图,让你给每条边定向,使得入度=出度的点的个数最多 分析:易得度数为奇数的点肯定有偶数个,如果把这偶数个点一一对应连起来,那么图中所有点的度数都为偶数,那么必定存在一条欧拉回路,而这些欧拉回路使得原图中度数为偶数的点都可以做到入度=出度,所以ans=原图 阅读全文
posted @ 2016-10-05 16:32 Chellyutaha 阅读(131) 评论(0) 推荐(0) 编辑
摘要: A B:0.0 C:题意:n个点m条边的DAG图(n,m<=5000),保证没有环且都连通,每个边有边权,求一条1->n的路径,使得经过的点最多,但边权和<=T(T<=10^9) 分析:DAG图一般都能DP解决 f[i][j]表示到了第i个点,已经经过了j个点花费的最少边权,last[i][j]就记 阅读全文
posted @ 2016-10-01 21:16 Chellyutaha 阅读(125) 评论(0) 推荐(0) 编辑
摘要: KMP 1 #include<cstring> 2 #include<algorithm> 3 #include<cstdio> 4 using namespace std; 5 const int maxn=2000; 6 char a[maxn+50],s[maxn+50]; 7 int nex 阅读全文
posted @ 2016-09-28 09:01 Chellyutaha 阅读(1453) 评论(0) 推荐(3) 编辑
摘要: 题意:n个数每次选三个数删除,取其中两个数将gcd放回去两次,问最后剩的数可能是多少 分析:考虑最优情况: 先拿出三个数,留下两个x,x 再来一个y,(x,x,y)我们可以删去一个x,留下两个gcd(x,y),这两个gcd(x,y)等价于刚才的两个x,x 也就是每次操作我们都可以有一个额外的数让我们 阅读全文
posted @ 2016-09-25 16:55 Chellyutaha 阅读(310) 评论(0) 推荐(0) 编辑
摘要: 题意: 给定两个序列,求它们的最长公共递增子序列的长度, 并且这个子序列的值是连续的 n,m<=1e5,a[i],b[i]<=1e6分析:dp[i]表示以数字i结尾的序列最长长度 dp[a[i]]=max(dp[a[i]-1]+1,dp[a[i]]) 第二个序列同理 ans=max(min(dp[k 阅读全文
posted @ 2016-09-25 15:56 Chellyutaha 阅读(123) 评论(0) 推荐(0) 编辑
上一页 1 ··· 14 15 16 17 18 19 20 21 22 ··· 41 下一页