05 2019 档案
摘要:pro:给定N个点,M条边,现在你要给一些连通块加边,使得至少存在一个连通块的大小是由4和7组成的数字。问至少加边数量。 sol: 看似一个很难的题目。 首先不要想太难了,还是应该想能不能用背包做。 我们把块的大小相同的分到一组,就可以分组背包了。 然后注意到组别的大小其实不会太大,因为1*1+2*
阅读全文
摘要:pro:给定三个整数L,R,P求[L,R]区间的整数有多少个是以P为最小因子的。L,R,P<2e9; sol: 一: 比较快的做法是,用函数的思想递归。 用solve(N,P)表示求1到N有多少数字多少个的最小因子是P; 1,首先P是合数,或者N<P;solve=0; 2,否则,如果P*P>=N;s
阅读全文
摘要:pro: 从左到有有N个车道,都有一定程度损坏,所以有不同的修理费a[]; 有M场比赛,每场比赛的场地是[Li,Ri],即如果这个区间的车道都被修理好,则可以举办这个比赛,并且收益是Pi。问最多得到多少收益。N,M<2e5; sol: 比较明显的右端点排序,求最大DP问题。 dp[i]表示只考虑修前
阅读全文
摘要:pro:有一个驴友,以及给定N个表演地点xi和时间ti,驴友的速度不能超过V。 问他在起点为原点和不设置起点的情况下分别最多参观多少个表演。 sol:BZOJ接飞饼见过;clari也在camp的DP专题讲过。 大概是解决这样一类问题,给定N个点,以及一种不等式关系,可以转化为二维平面上的点,然后按照
阅读全文
摘要:pro:给定N*M的矩阵,以及初始玩家位置。 规定玩家每次会等概率的向左走,向右走,向下走,原地不动,问走到最后一行的期望。保留4位小数。 sol:可以列出方程,高斯消元即可,发现是三角矩阵,O(N*M) 元素个数。 也可以用反复逼近答案。 反复做,dp[i][j]=(dp[i][j+1]+dp[i
阅读全文
摘要:题目描述 给你一个长为n的序列a和一个常数k 有m次询问,每次查询一个区间[l,r]内所有数最少分成多少个连续段,使得每段的和都 <= k 如果这一次查询无解,输出"Chtholly" 输入描述: 第一行三个数n,m,k第二行n个数表示这个序列a之后m行,每行给出两个数l r表示一次询问 输出描述:
阅读全文
摘要:pro:给定N*M的矩阵,现在让你在每一行删去一个位置,然后形成新N*(M-1)的矩阵,问有多少种不同的新的矩阵。需要满足相邻行删去的位置不大于K。 (题目是01矩阵,其实任意矩阵都可以做,本题算法里只关心相邻的是否相同。 sol:dp[i][j]表示从上到下删,删到第i行,第i行删去第j列的不同矩
阅读全文
摘要:problem:给定N,K。表示你有数1到N,让你最多选择K个数,问有多少种方案,使得选择的数的乘积无平方因子数。N,K<500; solution:显然可以状压DP做,但是500以内的素数还是蛮多的,无法高效得DP。 但是我们注意到,大于sqer(N)的素数,同一类最多用一个,这不就是分组背包吗。
阅读全文