Live2d Test Env

随笔分类 -  CodeForces

1 2 3 4 5 ··· 9 下一页
摘要:牛客G: 给定大小为N的数组a[],给定M组关系,让你重排a[],使得sum{M队关系的绝对值之差}最小。首先将a排序,然后依次把a填入数组。 假设i在二进制下有x个1,用dp[i]更新dp[i|(1<<j)],表示的是,将a[x+1]填在第j个位置。注意到a[]已经排序了,那么a[x]的贡献就是: 阅读全文
posted @ 2019-10-09 14:56 nimphy 阅读(256) 评论(0) 推荐(0) 编辑
摘要:题意:给定N,K,P,表示现在有一个集合{0, 1, ..., 2n - 1},问有多少个非空子集的异或和为K; 答案%P。(1 ≤ n ≤ 1018, 0 ≤ k ≤ min(2n - 1, 1018), 2 ≤ p ≤ 109, p is prime.) 思路:先抽离出一个线性基出来,然后非基部 阅读全文
posted @ 2019-09-05 10:22 nimphy 阅读(515) 评论(0) 推荐(0) 编辑
摘要:题意:给定N*M的矩阵,'*'表示可以通过,'#'表示不能通过,现在要找两条路径从[1,1]到[N,M]去,使得除了起点终点,没有交点。 思路:没有思路,就是裸题。 Lindström–Gessel–Viennot lemma a到b,c到d,两条路径完全没有交点的方案数=w[a,b]*w[c,d] 阅读全文
posted @ 2019-09-03 20:37 nimphy 阅读(233) 评论(0) 推荐(0) 编辑
摘要:题意:给定字符串S,A,B。现在让你对S进行切割,使得每个切割出来的部分在[A,B]范围内,问方案数。 思路:有方程,dp[i]=Σ dp[j] (S[j+1,i]在合法范围内)。 假设M和N的最长公共前缀为长度是LCP,那么字符串M>=字符串N的条件是 LCP=|N|或者(LCP<|N|&&M[l 阅读全文
posted @ 2019-08-31 20:31 nimphy 阅读(253) 评论(0) 推荐(0) 编辑
摘要:题意:给定字符串S,然后M个字符串T。Q次询问,每次给出(L,R,l,r),问S[l,r]在L到R这些T字符串中,在哪个串出现最多,以及次数。 思路:把所有串建立SAM,然后可以通过倍增走到[l,r]在SAM上的位置p,然后在这个位置p上求,求的过程就是一个线段树求区间最值。 现在的关键是得到线段树 阅读全文
posted @ 2019-08-30 18:18 nimphy 阅读(353) 评论(0) 推荐(0) 编辑
摘要:题意:给定一棵树,带边权。然后Q次询问,每次给出(u,v),求这个路径上最小的未出现的边权。 思路:树上莫队,求mex可以用分块或者bitset,前者可能会快一点。 莫队过程:求出欧拉序,即记录dfs的in和out时间戳。 然后摊平成数组,在数组上进行莫队。 一般的莫队需要单独考虑LCA,因为LCA 阅读全文
posted @ 2019-08-24 18:03 nimphy 阅读(346) 评论(0) 推荐(0) 编辑
摘要:题意:外卖员开始在0号节点,有N个人点了外卖,(N<=10),现在告诉两两间距离,问怎么配送,使得每个人的外卖都送外,然后回到0号点的总时间最短,注意,同一个点可以多次经过。 思路:TSP问题(货郎担问题),可以通过状态DP解决小数据问题。 先floyd求一下两两最近距离,然后DP; dp[i][j 阅读全文
posted @ 2019-07-18 09:28 nimphy 阅读(170) 评论(0) 推荐(0) 编辑
摘要:题意:给定N点M边的无向连通图,每条边有两个权值(g,s)。 给定G,S。 让你给出一组(g0,s0)使得图中仅留下g<=g0, s<=s0的边之后,依然连通,并求Gg0+Ss0的最小值。 n<=200,m<=50000。 思路:枚举g0,求最小的s0,满足生成MST。 把边按g排序,一条边一条边的 阅读全文
posted @ 2019-07-14 17:40 nimphy 阅读(380) 评论(0) 推荐(0) 编辑
摘要:pro:给定N个点,M条边,现在你要给一些连通块加边,使得至少存在一个连通块的大小是由4和7组成的数字。问至少加边数量。 sol: 看似一个很难的题目。 首先不要想太难了,还是应该想能不能用背包做。 我们把块的大小相同的分到一组,就可以分组背包了。 然后注意到组别的大小其实不会太大,因为1*1+2* 阅读全文
posted @ 2019-05-12 21:57 nimphy 阅读(286) 评论(0) 推荐(1) 编辑
摘要: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 阅读全文
posted @ 2019-05-12 19:41 nimphy 阅读(518) 评论(0) 推荐(1) 编辑
摘要:pro: 从左到有有N个车道,都有一定程度损坏,所以有不同的修理费a[]; 有M场比赛,每场比赛的场地是[Li,Ri],即如果这个区间的车道都被修理好,则可以举办这个比赛,并且收益是Pi。问最多得到多少收益。N,M<2e5; sol: 比较明显的右端点排序,求最大DP问题。 dp[i]表示只考虑修前 阅读全文
posted @ 2019-05-12 15:43 nimphy 阅读(276) 评论(0) 推荐(0) 编辑
摘要:pro:有一个驴友,以及给定N个表演地点xi和时间ti,驴友的速度不能超过V。 问他在起点为原点和不设置起点的情况下分别最多参观多少个表演。 sol:BZOJ接飞饼见过;clari也在camp的DP专题讲过。 大概是解决这样一类问题,给定N个点,以及一种不等式关系,可以转化为二维平面上的点,然后按照 阅读全文
posted @ 2019-05-12 14:45 nimphy 阅读(356) 评论(0) 推荐(0) 编辑
摘要:pro:给定N*M的矩阵,以及初始玩家位置。 规定玩家每次会等概率的向左走,向右走,向下走,原地不动,问走到最后一行的期望。保留4位小数。 sol:可以列出方程,高斯消元即可,发现是三角矩阵,O(N*M) 元素个数。 也可以用反复逼近答案。 反复做,dp[i][j]=(dp[i][j+1]+dp[i 阅读全文
posted @ 2019-05-12 11:48 nimphy 阅读(448) 评论(0) 推荐(0) 编辑
摘要:Description 有nn个城市,第ii个城市商品价格为aiai​,从11城市出发依次经过这nn个城市到达n n城市,在每个城市可以把手头商品出售也可以至多买一个商品,问最大收益。 Input 第一行一整数T T表示用例组数,每组用例首先输入一整数nn表示城市数量,之后输出nn个整数ai ai​ 阅读全文
posted @ 2019-04-22 16:45 nimphy 阅读(262) 评论(0) 推荐(0) 编辑
摘要:pro:给定N个点,问多少个点组成了平行四边形。保证没有三点共线。 sol:由于没有三点共线,所以我们枚举对角线,对角线的中点重合的就是平行四边形。如果没说保证三点不共线就不能这么做,因为有可能4个点在一条直线上。 阅读全文
posted @ 2019-04-14 10:04 nimphy 阅读(256) 评论(2) 推荐(0) 编辑
摘要:pro:给定N个圆,求离原点最远的点,满足它在N个圆里。输出这个距离。N<50; sol:关键点一定是圆与圆的交点。 圆与 圆心到原点的直线 的交点。 然后去验证这些关键点是否在N个圆内。 实际操作的时候需要考虑一些条件: 1,求圆的交点的时候,先判断是否内含或者相离。 2,求直线与圆的交点的时候, 阅读全文
posted @ 2019-04-13 13:16 nimphy 阅读(254) 评论(0) 推荐(0) 编辑
摘要:题意:给定一棵大小为N的点权树(si,pi),现在让你选敲好K个点,需要满足如果如果u被选了,那么fa[u]一定被选,现在要求他们的平均值(pi之和/si之和)最大。 思路:均值最大,显然需要01分数规划,但是后面怎么高效的做背包,我是不会的,我只会暴力的背包,O(N*K*K)。 还好队友会,叫“树 阅读全文
posted @ 2019-03-17 19:14 nimphy 阅读(283) 评论(0) 推荐(0) 编辑
摘要:pro:给定N,M。输入N个物品,(si,vi)表示第i个物品体积为si,价值为vi,s<=300,vi<=1e9; N<1e6;现在要求,对于背包体积为1到M时,求出最大背包价值。 sol:显然直接跑背包会爆炸。 发现物品体积都比较小,我们先对相同体积的排序,对于体积相同的一起处理。 然后发现转移 阅读全文
posted @ 2019-03-17 14:44 nimphy 阅读(533) 评论(0) 推荐(0) 编辑
摘要:题意:给定带点权边权的树,定义路径的花费=路径边权和e+起点点权w[s]*终点点权w[t]。N<2e5,e,w<1e6; 思路:首先,需要树分治。 然后得到方程dp[i]=min{ dis[i]+dis[j]+w[i]*w[j] },很显然需要斜率优化。 注意维护凸包的时候是需要保证w[j]是单调的 阅读全文
posted @ 2019-03-15 13:23 nimphy 阅读(437) 评论(0) 推荐(0) 编辑
摘要:题意:如图,有N个柱子,每次我可以从高柱子X到低柱子Y,而且需要满足中间的柱子都小于X的高度。 思路:现在有Q次询问,每次给定(X,Y),(如果ht[X]<ht[Y],则交换XY),问X为起点,Y为终点的最长路径。 如果Y为0,你可以选择任一点为终点。 每次我们把当前dfs的区间最高的几个柱子(假设 阅读全文
posted @ 2019-03-11 19:27 nimphy 阅读(474) 评论(0) 推荐(0) 编辑

1 2 3 4 5 ··· 9 下一页
点击右上角即可分享
微信分享提示