12 2020 档案
P4248 [AHOI2013]差异
摘要:P4248 [AHOI2013]差异 题面 传送门 题解 把式子拆了, 成了两部分, \sum len(T) - 2\sum_{1≤i<j≤n} lca(T_i, T_j) 第一部分就是长度 n * (n - 1) * (n + 1) >> 1 第二部分是所有字串lca长的和的两倍, sam
P4081 [USACO17DEC]Standing Out from the Herd P
摘要:题面 自己去看吧 题解 明显的广义后缀自动机, 关键怎么算, 只能按字符串出遍历每个节点 再根据link去标记节点, 最后根据标记去算贡献 struct EXSAM { //trie一样的空间 N * M, 再建自动机为 N * M << 1 static const int N = 1e5 + 5
牛客练习赛74
摘要:牛客练习赛74 这次我是真的nt, 1h前四题, 之后一直发呆 看出来了E是弗洛伊德, 怎么也调不出来, 比赛结束一看 我的三重循环的第三重是错的, 还是理解不够, 对这些小算法还是理解有点偏差, 明明应该是 rep(j, 1, n) 被我硬是写成了 rep(j, i + 1, n) 这怎么可能跑出
第三届“传智杯”全国大学生IT技能大赛
摘要:第三届“传智杯”全国大学生IT技能大赛 T160507 A - 课程报名 提议模拟, 就不放代码了 B - 期末考试成绩 模拟题意 T160509 C - 志愿者 自己手写个排序函数就行 T160510 D - 终端 写个map存每个字串的时间, 输出的时候先放到另一个容器里排序输出即可 T1605
树上SA
摘要:树上SA 就着例题讲吧, 不然不好说 例题 题目描述 给定一颗以 1 为根包含 n 个节点的树,保证对于 2∼n 的每个节点,其父亲的编号均小于自己的编号。 每个节点上有一个的字符,一个节点所代表的字符串定义为从当前节点一直到根节点的简单路径上经过的所有字符连起来形成的字符串。 请你给这些字符串按照
牛客挑战赛46
摘要:牛客挑战赛46 a 奇怪的计算器 c/c++作业题 int get(char c) { if (c == '-') return 0; else if (c == '+') return 1; return 2; } int main() { IOS; string s; cin >> s; sta
POJ1112 Team Them UP!
摘要:题面 你的任务是以下列方式将一些人分成两个小队: 1、每个人都属于其中一个团队; 2、每个团队至少有一名成员; 3、团队中的每个人都认识团队中的每个人; 4、团队的规模尽可能接近。 此任务可能有许多解决方案,你可以输出任何一种解决方案,或声明解决方案不存在。 输入格式 第一行包含整数N,表示共有N个
2020 China Collegiate Programming Contest Weihai Site
摘要:A 最基础的时间 2 * (2 * n * t) 然后是等待时间, 即 要么在左边等 第 2 个 guy, 或者乘船返回的等 1 个 guy 即 max(0, min(x - 2 * n * t + t + t, max(t, x - 2 * n * t + t))) int main() { IO
[HEOI2015]最短不公共子串
摘要:[HEOI2015]最短不公共子串 题面 在虐各种最长公共子串、子序列的题虐的不耐烦了之后,你决定反其道而行之。 下面给出一些定义: 一个串的“子串”指的是它的连续的一段,例如 bcd 是 abcdef 的子串,但 bde 不是。 一个串的“子序列”指的是它的可以不连续的一段,例如 bde 是 ab
Strongly connected HDU - 4635
摘要:题面 传送门 题解 正难则反, 求多少条边不能建 首先完全连通图总边数 n * (n - 1) 减去给出的 m 条边 缩点之后, scc可以互连, 添加边, 使得最后留下一个 出度为1为, 入度为1 的连个 scc就可 即留下一个入度为1的scc, 其他scc建边完全联通, or 留下一个scc出度
Caocao's Bridges hdu-4738
摘要:题面 传送门 题解 缩点, 坑点在最小边为0是, 你至少用1个人去炸桥 代码 int n, m, _, k; int h[N], ne[M << 1], to[M << 1], co[M << 1], tot; int dfn[N], low[N], df, ans; void add(int u,
Prince and Princess HDU - 4685
摘要:题面 传送门 前置 这道题我感觉是这道题换过来的, 先写写这道题 题解 这道题比 POI1904 难在什么地方呢? 首先没给预先的匹配关系, 那我们先跑一边最大匹配好了, 然后再按照 POI1904 写 然而注意到, POI1904 是 n 个 王子 n 个公主, 这道题是 n 个王子和 m 个公主
Network POJ - 3694
摘要:题面 传送门 题解 缩点边双没跑了, 主要是算答案 采用靠并查集爬树的思想 int h[N], to[M << 2], ne[M << 2], tot; void add(int u, int v) { ne[++tot] = h[u]; to[h[u] = tot] = v; } int dfn[
CodeForces - 464E - The Classic Problem
摘要:题面 传送门 题解 写的头疼 先看题, 明显是最短路, 关键是如何保存距离, 毕竟太大了 而且题目给的就是二进制, 就想到了要拆位, 一般的拆位用个可持续化 01trie 就好了, 这道题真的毒瘤还是 2进制下1e5 的范围 那只能可持续化权值线段树了, 好能存路径了, 但问题来了, 毕竟是二进制要