11 2017 档案
摘要://¡õ;¡ö #include<cstdio> #include<algorithm> #include<cstdlib> #include<ctime> #include<cstring> #include<queue> #include<windows.h> #include<conio.h>
阅读全文
摘要:#include<cstdio> #include<iostream> #include<string> #include<cstring> #include<list> #include<conio.h> #include<windows.h> using namespace std; typed
阅读全文
摘要:题意: 维护一个栈,支持以下操作: 从当前栈顶加入一个0或者1; 从当前栈顶弹掉一个数; 将栈顶指针和栈底指针交换; 询问a[top] nand a[top-1] nand ... nand a[bottom]的值。 nand是这样定义的: ∙∙ 0 nand 0 = 1 ∙∙ 0 nand 1 =
阅读全文
摘要:题意:给你一棵树。q次询问,每次给你一些非关键点,其他的点都是关键点,让你输出树中既不是关键点,也不是关键点的lca的点的数量。 对每次询问的非关键点按照深度从深到浅排序,依次处理,最开始每个点受到的警告次数为零。如果一个点的儿子数-它受到的警告数量>=2(就是它能够从至少2个子树中各取一个关键点,
阅读全文
摘要:题意:一张n*m的网格图(n和m可以达到10^9),其中K个点是障碍物(不超过200个),问你没有被障碍物占据的点形成了几个连通块?并且输出各个连通块的大小。 容易证明,大小超过40000的连通块最多只有一个。于是可以从每个与障碍物邻接的非障碍点出发bfs,限制步数不超过40000,这样就可以找到所
阅读全文
摘要:题意:给你一张2-SAT,问你加至少几句a V b(不能用非运算)这样的语句,使得其无法全为真。 如果最开始没有左右两项都含非运算的析取表达式,则无解,因为显然你可以对每一项的不含非的那项规定为真,使得整个2-SAT成立。 由于规定了你添加的语句不能含有非运算,故添加的边一定从 非某 指向 某。 如
阅读全文
摘要:题意:给你一张有向图,每条边有个限制范围,只有权值在限制范围内的人能走这条边,问你权值不超过K的人中,有多少人能从S到T。 K很大,因此我们只处理边的范围的上下界这O(m)个权值能否到达,以防万一,还处理了这些权值+1、-1的可达性。然后去重。离散化出来的这些区间中,两个端点都可达的话,其内部的点也
阅读全文
摘要:题意:一颗树,每条边有个颜色,一条路径被定义为“彩虹”,当且仅当其上没有长度大于等于2的同色子路径。一个结点被定义为“超级结点”,当且仅当从其发出的所有路径都是“彩虹”。 枚举所有长度为2,且同色的路径,其两端点方向发出的子树中的结点都不可能成为答案,只需要将它们覆盖掉即可,用dfs序处理,在左端点
阅读全文
摘要:题意:给你两颗有根树,判定是否同构。 用了《Hash在信息学竞赛中的一类应用》中的哈希函数。 len就是某结点的子树大小,g是某结点的孩子数+1。 这个值也是可以动态转移的!具体见论文,所以能高速处理出一颗无根树以每个顶点为根时的哈希值。改日敲个板子试试。
阅读全文
摘要:题意:一个机器人在正方形迷宫的左上角,迷宫里有些格子有障碍物,每一步机器人会等概率地向能走的格子转移(包含自身)。问你无限长的时间之后,机器人处于矩形对角线的右下方的概率。 无限长时间意味着,起点没有了意义。只需统计右下方每个格子的贡献之和比上所有格子的贡献之和。 假设迷宫不是离散的,而是连续的,那
阅读全文
摘要:题意:给你n个正整数,一对和为素数的数为一个合法数对。你选不超过K个合法数对,使得你选的数对涉及到的数的数量最大化。输出这个值。 所有1之间是可以任意两两配对的。 把奇数放在左侧,偶数放在右侧。 考虑当前要使用多少个“1”,动态更新最大匹配。 如果K不超过 最大匹配数 + 剩下的还没使用过的1数/2
阅读全文
摘要:题意:给你一个数n,让你找m个非负整数,使得它们的和为n,并且按位或起来以后的值最小化。输出这个值。 从高位到低位枚举最终结果,假设当前是第i位,如果m*(2^i-1)<n的话,那么说明这一位如果填零,剩下的位不论怎么填,都绝对凑不出n来,所以这一位必须填1.如果m*(2^i-1)>=n,这一位就填
阅读全文
摘要:题意:一个桌子有m个位置(首尾相接),有n支队伍坐在其中的n个位置上。有个机器人会从某个起始位置出发,每个时刻会依次发生以下三个事件: 机器人顺时针转一个单位; 某些队伍通过了题目(如果存在); 如果机器人的当前的位置的队伍需求气球,机器人就会把他需求的气球都给他。 让你对于所有可能的初始位置,最小
阅读全文
摘要:题意:一开始有1个物品,总价是1。你的一次操作可以要么使得物品数量+1,总价加上当前物品的单价。要么可以使得总价+1,物品数量不变。问你最少要几次操作从初始状态到达有x个物品,总价是y的状态。这里的y可以有小数点后的部分,会抹去。 如果x>y,显然无解。 因为不管怎样操作,物品的单价是单调不下降的。
阅读全文
摘要:inv[i]=(M-M/i)*inv[M%i]%M
阅读全文
摘要:题意:给你一个不超过九位的不含重复数码的十进制数,每次会随机将它的数码打乱,变成一个新的数,如果它小于等于上一次的数,那么你输了;如果它大于上一次的数,那么可以继续。直到它变成能够表达的最大数为止就赢了,问你赢的概率。 设所有排列从小到大被标记为1~n。p(i)表示排列i获胜的概率。 p(n)=1;
阅读全文