摘要:
链接:https://ac.nowcoder.com/acm/contest/11253/L 题意:n个人在竞争微信步数,每个人有自己的朋友圈(可抽象成无向图),当一个人在某一时间段的微信步数在自己的朋友圈最多并且大于0时,他就是当前时间段的冠军。一共有q个时间段,每个时间段只有1个人的步数在增加, 阅读全文
摘要:
题意:给一个无向图,求最少删除多少个点,使得从S到T不连通,并输出字典序最小的方案数。 思路:拆点,从S到T跑一遍最小割,求出最少删除的点数。 关键是如何求字典序最小的方案,可以从1到n枚举每个点(拆成的边)是否可以在最小割中,即把这个点所连的所有边断掉,再跑一遍最小割。如果最小割减小,就把这个点从 阅读全文
摘要:
今天比赛的题比较难,我们队只通过了T1,419名。 比赛开始后,我们队去看T1,刚开始我提出了一个思路:贪心,把深度最大的点与根连接,然后计算总的次数。思路出来后,队友们让我试一发,我很快写完后,交了,结果WA,又改了几次,结果还是WA。这时候,我好像意识到了贪心好像不行,于是我又去想树形dp,方程 阅读全文
摘要:
题意:有两个数组a和b,可以随意调换数组中的元素的顺序,令 c[ i ] = a[ i ] ^ b[ i ],使c的字典序最小。 思路:每个数按二进制从高位到低位看作一个字符串,对a和b数组分别建一棵01字典树,并记录每个结点出现的次数。然后同时遍历这两棵字典树,优先走当前位相同的(0和0,1和1) 阅读全文
摘要:
题意:给定p和x,求最小的b,使 a≡bx(mod p)。 思路:先把式子进行转化: a≡bx(mod p) a=bx - pc ∵ 0 < a < b ∴ 0 < bx - pc < b 即 $\frac{p}{x}$ $\leq$ $\frac{b}{a}$ < $\frac{p}{x-1}$ 阅读全文
摘要:
题意:给定一棵树,初始边权为零,对其进行以下操作: 1. 把树上a到b的路径上的边权:0变为1,1变为0。 2. 与树上a到b的路径相邻的边(只有一个公共点),把它们的边权:0变为1,1变为0。 3. 查询a到b的路径上的边权和。 思路: 操作1用普通的重链剖分就可以解决。 对于操作2,可以看出,在 阅读全文
摘要:
树链剖分基本操作: 1. 修改第i条边的权值。 2. 对树上一条路径的权值取反(正变负,负变正)。 3. 查询树上一条路径的权值的最大值。 因为要取反,所以要同时维护最大值和最小值。 1 #include<cstdio> 2 #include<cstring> 3 #include<algorith 阅读全文
摘要:
动态树的基本操作: 1. 添边、删边。 2. 修改一棵树一条链的权值。 3. 给一棵树一条链的权值加上一个数。 4. 查询一棵树一条链上的点,第二大权值、权值第二大点的个数。 1 #include<bits/stdc++.h> 2 #define lc c[x][0] 3 #define rc c[ 阅读全文
摘要:
首先预处理出以每条边i作为左端点,在最短的区间内能形成环的最小右端点,标记为 Ri,如果不存在这样的右端点(即从当前到结尾所有边都不能组成环), 则让 Ri = m + 1。 用动态树来删边、加边和判环。尽量拓展右端点,直到发现环,然后就删掉左端点所在的边并移动左端点(有点像单调队列),不断重复这个 阅读全文
摘要:
和往常一样,我们队12点之前吃完午饭,便开始准备接下来的比赛了。 这场的题的难度应该说不算太难(毕竟有AK的),然而我们还是太菜了,只通过了4道题,290名。 刚开始,队友lwj便看到了T3是个签到题,和我们说了题意后,我们便想到:判断点B在向量AC的左侧还是右侧即可。于是很快遍过了,10分钟1A。 阅读全文