上一页 1 ··· 11 12 13 14 15 16 17 18 19 ··· 25 下一页
摘要: 【算法】树型DP||树的重心(贪心) 【题解】 两遍DFS,第一次得到所有节点子树的路径和,第二次给出除了该子树外其它部分的路径和,时时计算答案。 long long!!! #include<cstdio> #include<cstring> #include<algorithm> #include 阅读全文
posted @ 2017-08-30 18:29 ONION_CYC 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 【算法】DP 【题解】 如果每个排列算一种,则令f[i]表示凑成面值为i的方案数,容易推出f[i]+=f[i-a[j]]。 现在是每个组合才算一种,令f[i][j]第二维表示只使用前j种面值,f[i][j]+=f[i-a[j][k],k=0~j,这样最终算出来的方案就是按一定顺序的,不会重复计算。 阅读全文
posted @ 2017-08-30 16:21 ONION_CYC 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 【算法】01分数规划-最优比率环 【题意】给定有向图,点有收益,边有代价,重复经过的话收益不叠加而代价叠加,求从任意点开始最后回归该点的(收益/代价)最大。 【题解】 和普通的分数规划不同,这里的方案选择必须是一个环。首先有一个重要的结论:答案一定是一个简单环。 (简单证明:假设当前复杂环为两个简单 阅读全文
posted @ 2017-08-30 14:22 ONION_CYC 阅读(323) 评论(0) 推荐(1) 编辑
摘要: 【算法】状压DP 【题解】对于上一行的每个状态,每行进行DFS。 #include<cstdio> #include<algorithm> #include<cstring> #define ll long long using namespace std; const int maxn=20,ma 阅读全文
posted @ 2017-08-30 10:14 ONION_CYC 阅读(236) 评论(0) 推荐(0) 编辑
摘要: 【算法】最大流 【题解】 S连向食物连向牛连向牛‘连向饮料连向T。 经典的一个元素依赖于两个元素的建图方式。 #include<cstdio> #include<algorithm> #include<cstring> #include<queue> using namespace std; con 阅读全文
posted @ 2017-08-29 22:12 ONION_CYC 阅读(263) 评论(0) 推荐(0) 编辑
摘要: 【算法】分层图最短路 【题解】 考虑k层一模一样的图,然后每个夹层都在每条边的位置新加从上一层跨越到下一层的边权为0的边,这样至多选择k条边置为0。 然后考虑方便的写法。 SPFA 第一次SPFA计算常规最短路(顶层)。 之后k次SPFA,松弛操作加上可以从上一层节点直接获取最短路(即相当于省一条边 阅读全文
posted @ 2017-08-29 21:19 ONION_CYC 阅读(330) 评论(0) 推荐(0) 编辑
摘要: 【题意】给定n项工作的截止时间和价值,每项工作需要1单位时间完成,求最大价值。n<=10^5。 【算法】贪心+堆 【题解】 如果是访问到x时将d[x]前的点从价值最大的能加就加是错误的贪心,因为后面的点会占用到前面的,不能保证已选的就是最优的。 正确的贪心:按顺序选择前面所有点,并把价值取负后加入堆 阅读全文
posted @ 2017-08-29 19:46 ONION_CYC 阅读(290) 评论(0) 推荐(0) 编辑
摘要: 【算法】数学 【题意】a数组初始为0,t=1~n,每次01翻转t的倍数,最终为0的数字定义为好数,求好数个数 【题解】一个数字为好数的条件是翻转偶数次,也即一个数是好数当且仅当有偶数个因子时。 因子都是两两配对的,只有完全平方数才拥有奇数个因子。 对于n以内的数字,1~√n的平方就是所有完全平方数。 阅读全文
posted @ 2017-08-29 18:10 ONION_CYC 阅读(225) 评论(0) 推荐(0) 编辑
摘要: 【算法】二分+矩阵快速幂 【题意】给定矩阵A和整数k,MOD,求A^0+A^1+A^2+...+A^k。 【题解】 定义题目要求的答案为f(n),即: $$f_n=\sum_{i=0}^{n}A^i$$ 当n为偶数时,可以拆成两半,后一半由前一半集体乘A(n/2)得到,即: $$f_n=f_{\fr 阅读全文
posted @ 2017-08-28 22:00 ONION_CYC 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 【题意】求最长的出现至少k次的子串。 【算法】后缀数组+单调队列 【题解】求出所有LCP,然后SA上每k个找一个最小值,取所有最小值中的最大值。 移动区间最小值,显然可以用单调队列优化。 注意:队列左闭右开时,访问队尾一定要tail-1。 求LCP时,只能按字符串顺序求才满足O(n)的规律。 #in 阅读全文
posted @ 2017-08-28 20:46 ONION_CYC 阅读(222) 评论(0) 推荐(0) 编辑
摘要: 【算法】字符串hash 【题解】 显然如果字母互不相同,贪心取是正确的。 如果存在字母相同,那么就换成比较后缀和前缀嘛。 但是要注意,不是后缀和前缀相同就能直接跳跃,每次必须只推一位。 取模的哈希比自然溢出慢了好多。 #include<cstdio> #include<algorithm> #inc 阅读全文
posted @ 2017-08-28 19:04 ONION_CYC 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 【题意】http://www.lydsy.com/JudgeOnline/problem.php?id=4565 【算法】区间DP+状压DP 【题解】 题外话: 区间DP的状态转移特点是一次转移只做一次合并,小合并由小区间做好传递,这样就能处理好复杂的区间问题。 数据范围k这么小而且和01有关,果断 阅读全文
posted @ 2017-08-23 18:41 ONION_CYC 阅读(412) 评论(0) 推荐(0) 编辑
摘要: 【题意】给定长度为n(<=2*10^5)的字符串,求最短的字典序最小的非子序列字符串。 http://arc081.contest.atcoder.jp/tasks/arc081_c 【算法】字符串DP 【题解】 先考虑计算最短长度,再考虑求字典序最小。 关键在于发掘出【最短的非子序列字符串】具有最 阅读全文
posted @ 2017-08-23 15:18 ONION_CYC 阅读(499) 评论(0) 推荐(0) 编辑
摘要: 【题意】定义函数F(n,k)为1~n的集合中选择k个数字,其中最小数字的期望。 给定两个数字集A,B,A中任意数字>=B中任意数字,要求重组A使得对于i=1~n,sigma(F(Ai,Bi))最大。 【算法】数学结论+数学期望+排序 【题解】很无奈,这题放在div2 C,难以推导的期望公式,广为人知 阅读全文
posted @ 2017-08-23 12:20 ONION_CYC 阅读(206) 评论(0) 推荐(1) 编辑
摘要: 【题意】给定n个点和m条无向边(有重边无自环),每个点有权值di=-1,0,1,要求仅保留一些边使得所有点i满足:di=-1或degree%2=di,输出任意方案。 【算法】数学+搜索 【题解】 最关键的一步:★【%2转取反】。 首先考虑在树上做这样的问题,就显得十分朴素了。每当选择一条边,边的两端 阅读全文
posted @ 2017-08-22 22:02 ONION_CYC 阅读(266) 评论(0) 推荐(1) 编辑
摘要: 【题意】对于n个数,找出一些数使得它们的和能被n整除,输出任意一组方案,n<=10^6。 【算法】构造/结论 【题解】引用自:http://www.cnblogs.com/Sakits/p/7407103.html by Sakits 对n个数求前缀和,即sum[i]=sigma(a[1~i])%n 阅读全文
posted @ 2017-08-22 18:48 ONION_CYC 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 【题意】给定一叠n张扑克牌和各自的ai,bi。每次可以从最上面拿走连续atop张并获得btop的价值,或是把top放到最底,求最大价值。 【算法】背包DP 【题解】本题最大的特点:atop的需求与牌的顺序无关,也即是说可以将拿走连续atop张视为拿走atop张,对于你连续的牌中你不想拿走的只需要找机 阅读全文
posted @ 2017-08-22 18:28 ONION_CYC 阅读(279) 评论(0) 推荐(0) 编辑
摘要: 【题意】一个2*n的网格,再保证步数最少的情况下,求从任意格出发遍历完所有格的方案数,格子八连通。n<=10000,T<=100。 【算法】递推,DP 【题解】原题链接:蓝桥杯 格子刷油漆(动态规划) 这类题目最重要的是找到一个可以计算所有情况的状态表示。 对于2*x的网格,a[x]表示从左上角出发 阅读全文
posted @ 2017-08-22 18:05 ONION_CYC 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 【题意】给出a,b,求出[a,b]中各位数字之和能整除原数的数的个数。1 ≤ a ≤ b ≤ 10^18 【算法】数位DP 【题解】 感觉这种方法很暴力啊。 枚举数位和1~162(不能枚举0,不然会模0,相当于除0),记忆化f[pos][sum][val],sum表示当前数位和,val表示数字取模枚 阅读全文
posted @ 2017-08-21 22:28 ONION_CYC 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 【算法】数位DP 【题意】定义V-number为从左到看单位数字未出现先递增后递减现象的数字,求0~N中满足条件的数字个数。T<=200,lenth(n)<=100 【题解】百度之星2017复赛,作为送分题出现,拿来练数位DP模板了。 位数多,读入记得用字符串。 记忆化要将有关变量全部纳入。 需要取 阅读全文
posted @ 2017-08-21 21:45 ONION_CYC 阅读(463) 评论(0) 推荐(0) 编辑
上一页 1 ··· 11 12 13 14 15 16 17 18 19 ··· 25 下一页