08 2020 档案

摘要:运输成本 题意 给出一个有向图,如果两个城市之间可以互相到达,那么他们就是一个联邦,对于同一个联邦的两个城市,他们之间运输成本为 0 ,现在让求出整个图中的最长路。 思路 首先跑 Tarjan 缩点,然后建立一个超级源点,他到所有点的距离为 0,然后跑最长路。 Python 版的 Dijkstra 阅读全文
posted @ 2020-08-25 20:43 Valk3 阅读(172) 评论(0) 推荐(0)
摘要:传送门 这是一个模拟题,因为之前做过一个分块题目,直接想错了。纠结了好久,今天上午突然明悟过来 题意 image-20200825184537784 思路 看数据大小,直接模拟链表。 最前和最后添加上一个节点,这样写起来比较好 相当于复习了一遍 c 语言学的链表,写起来还是挺恶心的。 代码 1''' 阅读全文
posted @ 2020-08-25 18:54 Valk3 阅读(210) 评论(0) 推荐(0)
摘要:D.Unmerge 题意 定义 \(merge(a,b)\) : a,b是两个长度均为 n 的数组. 如果 \(a_1 < b_1\) \(merge(a,b)\) = \(a_1\) + \(merge(a_2+ a_3 + a_4 ... , b)\) 如果 \(a_1 > b_1\) \(me 阅读全文
posted @ 2020-08-17 17:47 Valk3 阅读(120) 评论(0) 推荐(0)
摘要:C2.Prefix Flip (Hard Version) 题意 定义一种操作: 给出一个 01 串 s,现在可以选择一个前缀,将 01 翻转,并且将整个串倒过来。 现在给出两个串 s,t,问最少需要多少次操作使得 s = t。 思路 从后依次向前,依次使得$s_i = t_i$ 当前 \(s_i 阅读全文
posted @ 2020-08-17 17:45 Valk3 阅读(119) 评论(0) 推荐(0)
摘要:B.Sequential Nim 题意 有 n 堆石子,第 i 堆石子有 \(a_i\) 个石子,现在两个人轮流取石子,取石子的时候可以从第一堆有石子的堆中,取走任意正整数颗石子,第一个无法取石子的人输,问两人足够聪明,谁会胜利。 思路 假若只有一堆石子,那么肯定是先手赢。 如果在这一堆石子前面放一 阅读全文
posted @ 2020-08-17 17:42 Valk3 阅读(250) 评论(0) 推荐(0)
摘要:题目链接 题意 某个男人要为他老婆买 n 朵花,现在花店有 m 种花,每种花都有两个属性,a,b。a 表示当其老婆第一次收到该种花获得的幸福度,b 表示当其老婆第 2、3···次收到该花的时候收获的幸福度。 问其老婆的收获的最高幸福度是多少? 错误思路 贪心题。 肯定只会有一种花会被送多次 这时把 阅读全文
posted @ 2020-08-17 09:35 Valk3 阅读(86) 评论(0) 推荐(0)
摘要:性质 以树的重心为根时,所有子树的大小都不超过整棵树大小的一半。 树中所有点到某个点的距离和中,到重心的距离和是最小的;如果有两个重心,那么到它们的距离和一样。 把两棵树通过一条边相连得到一棵新的树,那么新的树的重心在连接原来两棵树的重心的路径上。 在一棵树上添加或删除一个叶子,那么它的重心最多只移 阅读全文
posted @ 2020-08-14 10:45 Valk3 阅读(94) 评论(0) 推荐(0)
摘要:转载自OI Wiki 树hash 方法1. const int seed = 12289; ull hsh[N], rec[N];//hsh[i] 表示以 i 为根节点的子树的hash值 int sz[N]; vector<int>vec[N]; void chash(int u,int fa){ 阅读全文
posted @ 2020-08-14 10:10 Valk3 阅读(103) 评论(0) 推荐(0)
摘要:Identical Trees 题意 给出两颗同构树: 每次可以修改一个节点值,问最少需要修改多少次,使得两棵树一样。 错误思路 比赛的时候直接把两棵树的所有根节点到叶子节点的链提取出来,当做一个二分图,长度相同的链,左边树的链向右边连边,权值为节点编号不同的个数,然后跑最大权匹配。 没怎么写过最大 阅读全文
posted @ 2020-08-14 09:34 Valk3 阅读(165) 评论(0) 推荐(0)
摘要:题目链接 题意 给出 \(n\) , \(x\) , \(y\) ,问是否可以构造出一个长度为 \(n\) 的全排列,满足以下条件: 最长递增子序列的长度等于 \(x\) , 最长递减子序列的长度等于 \(y\) 思路 构造 \(x\) 个块,每个块里的数字都是递减的,并且最长的块长度要为 \(y\ 阅读全文
posted @ 2020-08-12 11:23 Valk3 阅读(106) 评论(0) 推荐(0)
摘要:Groundhog Chasing Death 题意 给出 a, b, c, d, x, y,让求出 \(\prod_{i=a}^{b}\prod_{i=c}^{d}gcd(x^i,y^j)\%mod\) 思路 先求出 \(x\), \(y\) 的 gcd,进行质因子分解,然后第一层 for 循环枚 阅读全文
posted @ 2020-08-10 09:59 Valk3 阅读(102) 评论(0) 推荐(0)
摘要:参考博客 Matrix-Tree 定理作用:给定 n 个点 m 条边的无向图,求图的生成树个数。 定义矩阵K[i][j]=D[i][j]-A[i][j],(其中D为度数矩阵(即当i==j时,D[i][j]=节点 i 的度数,其余为0),A为邻接矩阵,有边相邻即为1,其余为0) 结论:对于已经得出的基 阅读全文
posted @ 2020-08-08 10:39 Valk3 阅读(132) 评论(0) 推荐(0)
摘要:Expectation 题意 给出一个 n 个点,m 条边的无向图,现在随机选择一颗生成树,一颗生成树的价值为边权的 & 和。 问生成树价值的期望是多少? 思路 ​ 按位考虑,枚举所有边,如果当前边权的二进制的第 i 位为 1 ,把这条边放到图中,然后使用矩阵树定理求生成树的数量。 ​ 答案$rel 阅读全文
posted @ 2020-08-08 10:32 Valk3 阅读(115) 评论(0) 推荐(0)
摘要:传送门 题意 给出两个十进制整数 \(b\) , \(x\) ,有推理如下: 对于任意一个 \(b\) 进制整数 \(y=c_1c_2c_3...c_n\),定义$f(y)\(=\)\sum_^c_i$,如果$f(f(...f(y)...))$ 可以被 $x$整除,那么 \(y\) 也可以被 \(x 阅读全文
posted @ 2020-08-07 16:50 Valk3 阅读(108) 评论(0) 推荐(0)
摘要:Road To The 3rd Building 题意 ​ 给出 n 个数字,定义一个区间 [ l , r ] 的价值为区间和 / 区间大小。现在随机选择一个区间,问区间价值的期望。 思路 ​ 按照区间长度枚举所有长度的区间的贡献,最后乘上 区间个数的逆元 ​ 区间长度固定时,每个数字在该长度区间出 阅读全文
posted @ 2020-08-07 12:04 Valk3 阅读(222) 评论(0) 推荐(1)
摘要:Boring Game 题意 有 n 张纸叠在一起平铺在桌面上,现在把这些纸向右折 k 次。 变成左图的样子,现在给出 $2 * n*2^k$个数字,依次从上往下放成左图的样子,让从上到下一行一行输出还原之后的数字序列。 题解 比赛的时候就是没有想到模拟,一步一步的还原。 代码 #include < 阅读全文
posted @ 2020-08-06 09:57 Valk3 阅读(170) 评论(0) 推荐(1)
摘要:Codeforces Round #655 (Div. 2) A. Omkar and Completion 题意 给出一个整数 n ,让构造出一个长度为 n 的数组,使得不存在$1\leq x,y,z\leq n$,满足$a_x+a_y=a_z$。 思路 直接输出 n 个 1 代码 #includ 阅读全文
posted @ 2020-08-01 09:52 Valk3 阅读(89) 评论(0) 推荐(0)