随笔分类 - 分治——二分
摘要:Problem - 487B - Codeforces 题意: 一个n个数的数组,要求把他们划分为最少的连续段,满足: 1、每段长度至少为l 2、每段的最大值-最小值不超过s dp[i]表示前i个数最少要划分为多少段 枚举j(j<=i-l),若[j+1,i]的最大值-最小值不超过s,那么dp[i]=
阅读全文
摘要:Problem - 1547F - Codeforces 题意: 有一个a数组,每次可以把所有的a[i]变为gcd(a[i],a[(i+1)%n]) 问最少多少次可以让a数组都变为相同的值 第i次操作相当于把a[i]变为原始的区间[i,(i+k)%n]的gcd 所以题目相当于问最小的k,满足所有的区
阅读全文
摘要:https://acm.hdu.edu.cn/showproblem.php?pid=6988 题意: 给出一个字符串,每个字母都有一定的价值,子串的价值为各个字母价值总和 问所有不同的子串中,价值第k小的子串的价值是多少 首先二分一个价值,检验这个价值是否满足要求 一开始的二分写的 若小于等于二分
阅读全文
摘要:https://acm.hdu.edu.cn/showproblem.php?pid=6982 题意: n个城市要修n-1条道路使他们联通,有m条道路可以修,价格有原价和折扣价 问最多可以选k个折扣价时的最小花费 对于k∈[0,n-1]依次回答 做这道题,得先会做“边有黑白两色,求恰好有k条白边的最
阅读全文
摘要:https://www.luogu.com.cn/problem/P2619 边有黑白两色,求恰好有k条白边的最小生成树 在克鲁斯卡尔算法中,将边权从小到大排序 我们可以通过将白边的权值加减,来改变白边在排序中的位置 假设要求白边用5条,现在是所有白边权值加3 若求出来白边用了8条,说明权值加小了,
阅读全文
摘要:题意: 给出一个字典树 给出一个字符串 匹配的时候,如果在字典树上失配了,则回到根节点,从字符串的下一个位置开始匹配 给出q个询问 每次询问字符串区间[l,r],会在字典树上失配几次,最后停在字典树的哪个节点 求出字典树上的所有前缀哈希值,并标记这个哈希值对应的字典树上的节点 二分+上面的哈希值 求
阅读全文
摘要:https://www.luogu.com.cn/problem/P4318 二分,判定1-mid内有多少完全平方数的倍数 容斥原理,容斥系数就是莫比乌斯函数 #include<cstdio> using namespace std; #define N 100000 int pr[N],miu[N
阅读全文
摘要:https://ac.nowcoder.com/acm/contest/3007/E 先用N^(1/4)以内的质数,若N里有x个质数pi相乘,则答案乘上pi^(x/3) 然后剩下的N至多是3个质数的乘积 所以若还能凑出一个质数,那剩下的N一定是一个立方数,在N^(1/4)到N^(1/6)里面二分即可
阅读全文
摘要:https://ac.nowcoder.com/acm/problem/201638 假设它的平时成绩是a,期末成绩是b,期末成绩占比为x 它想要优秀,则a(1-x)+bx>90 得到b>[90-a(1-x)]/x,令lim=这个优下限 那么它优秀的概率(90-lim)/90 所有人优秀的概率的和除
阅读全文
摘要:http://codeforces.com/contest/1288/problem/D 题意: 给出一张n*m的表a[n][m],m<=8,从中任选两行i,j 令b[k]=max(a[i][k],a[j]k]) 最大化 min(b[k]) 二分答案x 若a[i][j]>=x,令c[i][j]=1,
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=3124 题意:给出n个相离的圆,求最近的不同圆上两点的距离 二分答案a 所有圆的半径增加a,若此时有圆相交,说明最近距离小于a 否则,最近距离大于a 如何判断是否有圆相交? 扫描线从左往右扫,用set维护此时不相交
阅读全文
摘要:https://www.lydsy.com/JudgeOnline/problem.php?id=5251 第一问: 左边一列点代表学生,右边一列点代表导师 导师向汇点连流量为 人数限制的 边 然后从第一个学生的第一志愿往里面加边 如果当前学生的当前志愿可以满足,即目前网络流可以满流,保留这一志愿的
阅读全文
摘要:题意: 给出一个字符串,至多将其划分为n部分,每一部分取出字典序最大的子串ci,最小化 最大的ci 先看一个简化版的问题: 给一个串s,再给一个s的子串t,问能否通过将串划分为k个部分,使t成为划分后的s的字典序最大子串 对于这个问题,从串s的最后面开始,一个字符一个字符的向前推 如果当前[l,r]
阅读全文
摘要:https://www.lydsy.com/JudgeOnline/problem.php?id=3173 插入的数是以递增的顺序插入的 这说明如果倒过来考虑,那么从最后一个插入的开始删除,不会对以某个数结尾的最长上升子序列产生影响 所以 先原序列求出来,输出即可 还原原序列的方法: 可以用平衡树,
阅读全文
摘要:http://codeforces.com/problemset/problem/954/G 二分答案 检验的时候,从前往后枚举,如果发现某个位置的防御力<二分的值,那么新加的位置肯定是越靠后越好 差分即可
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=4592 注意操作1 先挖再补,就是补的范围可以包含挖的范围 SHOI2015 的题 略水啊(逃)
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=4590 二分 这么道水题 没long long WA了两发,没判-1WA了一发,二分写错WA了一发 最近是怎么了啊啊啊O(≧口≦)O
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=3572 明显需要构造虚树 点属于谁管理分三种情况: 1、属于虚树的点 2、在虚树上的边上的点 3、既不属于虚树的点,又不属于虚树上的边的点 第一种情况: 先做一遍树形dp,得到子树中距离它最近的点 再d
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=2095 二分答案,判断是否存在混合图的欧拉回路 如果只有一个方向的风力<=mid,这条边就是单向边 如果两个方向的风力都<=mid,这条边就是双向边 如果两个方向的风力都>mid,这条边不可能被经过,m
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=2642 题意: n个瞭望台,形成一个凸n边形。这些瞭望台的保护范围是这个凸包内的任意点。 敌人进攻时,会炸毁一些瞭望台,使得总部暴露在新的保护范围之外。 选择一个点作为总部,使得敌人在任何情况下需要炸坏
阅读全文