10 2018 档案
摘要:给一个字符串,每次在末尾加入一个字符,询问当前字符串有多少本质不同的子串 裸SAM,因为同一个节点内字符串都是本质不同的,所以每次增加的答案是mxlen[np]−mxlen[fa[np]] #include<bits/stdc++.h> using namespace std; const
阅读全文
摘要:T1 elim 给你一个消消乐游戏的界面,3 个及以上的同色连块会消除,求一次消除之后是什么样的 sol:模拟 T2 battleground 给你一个 n×n 的棋盘,上面有 m 个玩家,玩家可以向 8 个方向走,有的地方有障碍不能走,不能斜着从两个障碍里面挤过去(大
阅读全文
摘要:求 Skn=∑ki=0Cin 膜 2333 Lucas 定理的高端操作 学习了 #include<bits/stdc++.h> #define LL long long using namespace std; inline int read() { int x
阅读全文
摘要:给一个图,每个点有点权,q 次询问从 x 开始只走点权小于等于 y 的路径能到的点中第 k 大的点权,无解输出 -1 强制在线 请注意因为这个 sb 博主为了描述方便,这里的题目描述用的字母跟原题有出入,题解跟跟这里的题目描述一样,不一定跟 bzoj 上一样( $n \leq 10^
阅读全文
该文被密码保护。
摘要:数据范围252501 劲啊 Q国的监察院是一个神秘的组织。 这个组织掌握了整个Q国的地下力量,监察着Q国的每一个人。 监察院一共有N个成员,每一个成员都有且仅有1个直接上司,而他只听从其上直接司的命令。其中1号成员是监察院的院长,这个庞然大物的主人。 由于时代的进步,监察院议会决定升级组织的旧式通信
阅读全文
摘要:给你一个n个点m条边的无向图,执行如下算法: 1.随机一个1 n的排列P 2.从P中按顺序一个一个将点加进独立集S里,始终保证S是独立集(即如果当前点和当前集合里的某个点相邻,就不加了) 求最后得到的S是原图的一个最大独立集的概率 50n≤17 $10
阅读全文
摘要:T1 给一个01矩阵,求一个最大子矩阵,矩阵内的和不超过k k≤n2 n≤500 sol:O(n4)枚举左上角和右下角,发现后两维有单调性,可以用一个滑窗来搞 但其实非常优秀的枚举3个坐标然后二分第四个坐标的O(n3logn)做法是能过的...本地1.3s
阅读全文
摘要:T1 飞行时间 对于一个可能跨时区的航班,给定来回程的起降时间。假设飞机来回飞行时间相同,求飞机的飞行时间。 sol: 很明显答案是(过去落地 - 过去起飞 + 回来落地 - 回来起飞) / 2 时间转换要仔细算一下不要跟某省队dalao一样写挂就可以了 T2 二阶和 区间修改,求区间区间和的和 s
阅读全文
摘要:这是一道模板题。 给定一棵 nnn 个节点的树,初始时该树的根为 111 号节点,每个节点有一个给定的权值。下面依次进行 mmm 个操作,操作分为如下五种类型: 换根:将一个指定的节点设置为树的新根。 修改路径权值:给定两个节点,将这两个节点间路径上的所有节点权值(含这两个节点)增加一个给定的值。
阅读全文
摘要:T1 判断一个括号序列的位置i和n−i+1是否一样 暴力 T2 给一个长方体,每个点有权值,每次可以选一个子长方体减h 查询第几次操作后出现一个小于0的点 长方体体体积1e5 操作1e5 考虑二分答案,然后记录三维前缀和,check的时候直接操作mid次,看有没有小于0的就可以了 操作时三维
阅读全文
摘要:看到这个标题立刻想到:、 “绝地科学家,八倍不屏息啊,八百里外把头打啊...” 首先我们发现如果只考虑第二个操作,这棵树就是假的,我们可以直接莫队解决 如果考虑换根的话...可以把一个操作换成小于等于9个操作就可以了 当然怎么换,有一些非常恶心的分类讨论 嘤嘤嘤 YNOI 题是好题 但是要卡常 首先
阅读全文
摘要:一棵树上放k个摄像头,每个摄像头可以监视和这个点邻接的所有点但不能监视它本身 求监视到所有点的方案数 sol: 树形dp,思路很简单,dp[i][j][0/1][0/1]表示i号点的子树里放了j个摄像头,[这个点是否已经被监视到],[这个点放没放摄像头]的方案数 转移的时候很麻烦
阅读全文
摘要:我 是 个 傻 逼 T1 给你一个长度不超过10的数字串,问你可不可以加若干加号和一个等号使它变成一个等式 sol: 搜 T2 给一个01串,每个地方有一个代价ci,交换两个字符的代价是ci+cj 求最后逆序对数 - 交换代价的最大值 n≤1000 sol: 首先想到
阅读全文
摘要:有一个圆方树,每次给出一个点集,询问虚树上圆点数量-询问点数量 sol:题意读懂就很简单了...可以建虚树dp 也可以考虑每一条链对答案的贡献,最后要注意单独计算虚树根对答案的贡献 #pragma GCC optimize("-funsafe-loop-optimizations") #pragma
阅读全文
摘要:给你一个n * m的网格,你要从(0,0)走到(n,m)并且走的时候不越过y = x这条直线,求有多少种不同的走法 嗯...要高精度 python (感谢会考 fac = {} def C(n,m): return fac[n] / (fac[m] * fac[n-m]) fac[0] = 1 fo
阅读全文
摘要:Alice和Bob轮流在n*m的棋盘上放棋子 a[i][j]表示Alice放在这的收益,b[i][j]表示Bob放在这的收益 一个地方没有棋子且它的左边上边都有棋子才能放棋子,边界外视为有一圈棋子 n,m<=10,求两人都用最优方案时,Alice可以赢多少 sol:上次用的轮廓线dp,现在已然不会写
阅读全文
摘要:维护一个方阵,支持 1.删掉一个点,剩下的点先向左看齐再向前看齐 2.询问一个位置上是哪个点 n,m,q≤3×105 sol: 我们每行前m−1列维护一个线段树,最后一列维护一棵线段树 然后搞n + 1个vector 这个线段树只需要维护“这个节点下面有多少点已经被
阅读全文
摘要:有一棵带边权有根树,有m个运输计划,你可以把一条边变成0,所有计划一起开始 求完成所有计划的最短时间 sol: 先二分,我们发现,用时mid以下的计划是没用的(要所有计划都完成) mid以上的计划,如果不相交,直接就是false 如果相交,找到他们最大的一条交边,把那条边变成0,然后看最大计划 -
阅读全文
摘要:有n个数,一开始是1 n,有m次操作 1.把编号为x的人编号改为y,保证y没出现过 2.把编号为x的人提到第一名 3.把编号为x的人怼到最后一名 4.查询排名为x的人的编号 初始每个人的排名 = 他的编号 sol: 考虑线段树,在叶子维护一个值v表示这个点上的
阅读全文
摘要:T1 给一个环,每个点有一个权值,把环分成三段,求最小的那段的最大值 sol:暴力 二分答案,chk就是把环搞成三倍链,每次枚举起点,后面三个切割点都可以二分找 然后就Rua过去了 //yyc wenle #include<bits/stdc++.h> #define LL long long us
阅读全文