随笔分类 - a练习题
摘要:SovietPower Play With Amstar 题意: 一棵二叉树,每次询问一条路径上的路径和,初始每个点有一个权值1,询问后权值变为0。$n \leq 10^7,m\leq10^6$ 分析: 首先树链剖分+线段树可做,$O(mlog^2)$,复杂度太大。 然后并查集缩点,树剖求lca,$
阅读全文
摘要:题意: n个点m条边的有向图,每一天每条边存在的概率都是p,在最优策略下,询问从1到n的期望天数。 分析: dijkstra。 每次一定会优先选dp最小的后继走,如果这条边不存在,选次小的,以此类推。 dp[i]表示从i开始到n的期望天数,从后往前推,每次取出dp最小的,更新其他点。 代码:
阅读全文
摘要:题意: n个点的无向图,Q次操作,每次操作可以连接增加一条边,询问两个点之间有多少条边是必经之路。如果不连通,输出-1。 分析: 首先并查集维护连通性,每次加入一条边后,如果这条边将会连接两个联通块,那么lct连接两个点,边权化为点权,新增一个点,点权为1。否则,构成了环,环上的边都变为0,lct维
阅读全文
摘要:双面间谍 链接 分析: 戳这 代码: #include<cstdio> #include<algorithm> #include<cstdio> #include<cstring> #include<iostream> #include<cmath> #include<set> #include<q
阅读全文
摘要:运 题意: 包含4,7的数成为幸运数。给一个序列,求多少个长度为k子序列满足:不包含两个及以上的相同的幸运数。(4出现两次就是不合法的,而4,7各出现一次是合法的)。 分析: 1e9内幸运数只有2^10个,所以可以全搜出来。然后对于序列中出现的幸运数,分别统计其出现的次数。然后对这些幸运数求出合法的
阅读全文
摘要:有向图中找一个三元环 题意: 考虑 N 个人玩一个游戏, 任意两个人之间进行一场游戏 (共 N*(N-1)/2 场),且每场一定能分出胜负。现在,你需要在其中找到三个人构成的这样的局面:A战胜B,B战胜C,C战胜A。 分析: 注意到一个重要的条件,就是图中有n*(n-1)/2条有向边。 正解的做法:
阅读全文
摘要:题面:pdf 首先排序,二分,然后怎么判定是否可行。 最简单的思路是,dp[i][j][k],到第i个,用了j次红光,k次绿光,前i个点都选上了,是否可行。然后转移就行。 然后考试的时候就想到这了,往后没想到。于是贪心,乱搞,和n^3dp拍了几千组随机数据。然后,一共90。其中贪心可得80。 上面的
阅读全文
摘要:题意 一个序列,每次给一段区间一些数,询问每个点出现次数最多的数。 分析 扫描线,从左到右扫描,遇到区间的左端点,在权值线段树(下标是数字种类)中相应的位置+1,右端点-1。操作完成后,输出权值线段树中最大的(即出现次数)的数(下标)。 code 1 #include<cstdio> 2 #incl
阅读全文
摘要:题意 求 0−n中有多少个数在 k进制下和 −k 进制 下的表示方式一样, 举个例子, 4的−3进制表示为 4=(121)-3=1×(−3)2+2×(−3)1+1×(−3)0 题解 可以发现这个性质,所有符合条件的数,奇数次幂的位上的数为0。 根据性质,数位dp即可 code by zhx p107
阅读全文

浙公网安备 33010602011771号