「Codeforces Round #441」 Classroom Watch】的更多相关文章

Discription Eighth-grader Vova is on duty today in the class. After classes, he went into the office to wash the board, and found on it the number n. He asked what is this number and the teacher of mathematics Inna Petrovna answered Vova that n is th…
题目大意: 传送门. lca说的很明白就不重复了. 题解: 先膜一发lca. 大体读完题以后我们可以知道对于第i个节点最短路一定是连向1到i-1中的某个点. 然后我们考虑将到1距离(这里及以下均是最短路)相等的点放到同一层,显然最后的总体结构应该是一棵树,再加上在同一层/深度相同的点之间连接一些边的并. 很容易发现一层的转移只需要知道上一层度数为2/3的个数,以及当前层之间的相互连接. 先说一下$n^5$做法. 设$f_{i,p1,p2,u_1,u_2}$表示插入第i个点时,上一层度数为2/3还…
C. time limit per test 1 second memory limit per test 512 megabytes input standard input output standard output Eighth-grader Vova is on duty today in the class. After classes, he went into the office to wash the board, and found on it the number n.…
Codeforces Round #441 (Div. 2) codeforces 876 A. Trip For Meal(水题) 题意:R.O.E三点互连,给出任意两点间距离,你在R点,每次只能去相邻点,要走过n个点,求走过的最短距离. #include<cstdio> #include<cstring> #include<algorithm> using namespace std; int main() { int n, a, b, c; scanf("…
Codeforces Round #441 (Div. 2) A. Trip For Meal 题目描述:给出\(3\)个点,以及任意两个点之间的距离,求从\(1\)个点出发,再走\(n-1\)个点的最短路径. solution 当\(n=1\)时,答案为\(0\),当\(n=2\)时,答案等于与开始点相连的两条边的最小值,当\(n>2\)时,答案等于与开始点相连的两条边的最小值+三条边最小值*\((n-2)\) 时间复杂度:\(O(1)\) B. Divisiblity of Differen…
#547. 「LibreOJ β Round #7」匹配字符串   题目描述 对于一个 01 串(即由字符 0 和 1 组成的字符串)sss,我们称 sss 合法,当且仅当串 sss 的任意一个长度为 mmm 的子串 s′s's​′​​,不为全 1 串. 请求出所有长度为 nnn 的 01 串中,有多少合法的串,答案对 655376553765537 取模. 输入格式 输入共一行,包含两个正整数 n,mn,mn,m. 输出格式 输出共一行,表示所求的和对 655376553765537 取模的结…
[LOJ#531]「LibreOJ β Round #5」游戏 试题描述 LCR 三分钟就解决了问题,她自信地输入了结果-- > -- 正在检查程序 -- > -- 检查通过,正在评估智商 -- > 对不起,您解决问题的速度过快,与加密者的智商不符.转入精确匹配. > 由于您在模糊匹配阶段的智商差距过大,需要进行精确匹配. LCR 发现,精确匹配是通过与随机对手(称为「神犇」)游戏的方式,藉由游戏的决策来评定智商的机制.游戏规则如下: 有一个长为 \(n\),下标为 \([1,n]…
[LOJ#530]「LibreOJ β Round #5」最小倍数 试题描述 第二天,LCR 终于启动了备份存储器,准备上传数据时,却没有找到熟悉的文件资源,取而代之的是而屏幕上显示的一段话: 您的文件存在被盗风险,为安全起见,您需要通过「智商·身份验证 ver. 5.0 β 版」的验证,以证明您是资料的主人.请写一个程序解决下述问题: 给定 \(p\),求最小的正整数 \(n\),使得 \(n! mod p = 0\). 由于 \(p\) 很大,输入将给出 \(m\) 和 \(e_1, e_2…
[LOJ#516]「LibreOJ β Round #2」DP 一般看规律 试题描述 给定一个长度为 \(n\) 的序列 \(a\),一共有 \(m\) 个操作. 每次操作的内容为:给定 \(x,y\),序列中所有 \(x\) 会变成 \(y\). 同时我们有一份代码: int ans = 2147483647; for (int i = 1; i <= n; i++) { for (int j = i + 1; j <= n; j++) { if (a[i] == a[j]) ans = s…
[LOJ#515]「LibreOJ β Round #2」贪心只能过样例 试题描述 一共有 \(n\) 个数,第 \(i\) 个数 \(x_i\) 可以取 \([a_i , b_i]\) 中任意值. 设 \(S=\sum{x_i^2}​​\) ,求 \(S\) 种类数. 输入 第一行一个数 \(n\). 然后 \(n\) 行,每行两个数表示 \(a_i, b_i\). 输出 输出一行一个数表示答案. 输入示例 5 1 2 2 3 3 4 4 5 5 6 输出示例 26 数据规模及约定 \(1 \…
[LOJ#525]「LibreOJ β Round #4」多项式 试题描述 给定一个正整数 k,你需要寻找一个系数均为 0 到 k−1 之间的非零多项式 f(x),满足对于任意整数 x 均有 f(x) mod k=0.你给出的多项式次数不能超过 60000,且最高次系数必须非 0. 输入 输入一行,包含一个正整数 k. 输出 若无解,则只输出一个整数 −1.否则首先输出一个整数 n 表示你寻找的多项式的次数,随后 n+1 个整数按照从低位到高位的顺序输出多项式的系数. 在此之后的输出将被忽略.…
[LOJ#526]「LibreOJ β Round #4」子集 试题描述 qmqmqm有一个长为 n 的数列 a1,a2,……,an,你需要选择集合{1,2,……,n}的一个子集,使得这个子集中任意两个元素 i,j 均满足条件 gcd(ai,aj)×gcd(ai+1,aj+1)≠1,其中gcd(i,j)表示最大公约数,且这个子集的元素个数是所有满足上述条件的子集中最多的.输出这个子集的元素个数. 输入 输入的第一行包含一个正整数n. 随后n行,每行一个正整数ai. 输出 输出一个整数代表符合条件…
[LOJ#522]「LibreOJ β Round #3」绯色 IOI(危机) 试题描述 IOI 的比赛开始了.Jsp 和 Rlc 坐在一个角落,这时他们听到了一个异样的声音 …… 接着他们发现自己收到了一封电子邮件: 我们在考场上放置了 N 个炸弹.如果建立一个直线坐标系(数轴)的话,第 i 个炸弹的坐标是 Xi​​,爆炸半径是 Ri,当一个炸弹爆炸时,如果另一个炸弹所在位置 Xj​​ 满足: Xi−Ri≤Xj≤Xi+Ri 那么,炸弹 j 也会被引爆. 若 i 和 j 满足上述关系式,称 i …
二次联通门 : LibreOJ #517. 「LibreOJ β Round #2」计算几何瞎暴力 /* LibreOJ #517. 「LibreOJ β Round #2」计算几何瞎暴力 叫做计算几何 实则毒瘤数据结构 看到xor后 考虑Trie树 Trie树的每一个节点保存的是以当前子树中每个二进制位的个数 给Trie打一个全局xor标记,如果标记这一位是1,就交换它的两个儿子 另外维护一个前缀和 前缀和存的是没sort过的值的和 Trie维护的是sort之后的值 1操作直接在前缀和后加就好…
二次联通门 : LibreOJ #528. 「LibreOJ β Round #4」求和 /* LibreOJ #528. 「LibreOJ β Round #4」求和 题目要求的是有多少对数满足他们的最大公约数的质因子不超过一个 f (x) 表示有多少对数满足最大公约数中含有x^2这个因子 那么f (x) = N / x ^ 2 * M * (x ^ 2) 答案即为所有数字减去不符合要求的数字个数 但是我们发现,可能某对数字的最大公约数含有多个质数平方因子 那么在处理的时候就会重复筛去 这时我…
二次联通门 : LibreOJ #527. 「LibreOJ β Round #4」框架 /* LibreOJ #527. 「LibreOJ β Round #4」框架 %% xxy dalao 对于每一个小方格 统计一下顶边向右延伸出几条边 左边的边向下延伸出几条边 后枚举每个小方格即可 */ #include <cstdio> #include <iostream> ; char Buf[BUF], *buf = Buf; inline void read (int &…
二次联通门 : LibreOJ #526. 「LibreOJ β Round #4」子集 /* LibreOJ #526. 「LibreOJ β Round #4」子集 考虑一下,若两个数奇偶性相同 若同为奇数, 那加1后就是偶数, gcd的乘积就一定不是1 偶数相同 那么我们把原数中的偶数分为一个集合,奇数分为一个集合 把互相之间不符合要求的连边 那么问题就转化为了二分图求最大独立集 */ #include <cstdio> #include <iostream> #includ…
二次联通门 : LibreOJ #525. 「LibreOJ β Round #4」多项式 官方题解 : /* LibreOJ #525. 「LibreOJ β Round #4」多项式 由于会有多种解 所以只需要找出一组特殊解即可 */ #include <cstdio> #include <iostream> void read (int &now) { register char c = getchar (); ; !isdigit (c); c = getchar…
二次联通门 : LibreOJ #524. 「LibreOJ β Round #4」游戏 /* LibreOJ #524. 「LibreOJ β Round #4」游戏 找找规律就会发现.. 当有X的时候,答案跟X个数的奇偶有关 否则就求一下逆序对就好了.. 由于SB的错误..WA了3发才过 然后就签完到走人了 */ #include <cstdio> #include <iostream> #include <cstring> #include <algorit…
二次联通门 : LibreOJ #516. 「LibreOJ β Round #2」DP 一般看规律 /* LibreOJ #516. 「LibreOJ β Round #2」DP 一般看规律 set启发式合并 题目中给定的代码意思求相同的数中间隔最小的值. 那么维护n个set就好 合并时把小的向大的上暴力合并 用了map所以不用离散化 */ #include <iostream> #include <cstdio> #include <set> #include &l…
LOJ528 「LibreOJ β Round #4」求和 先按照最常规的思路推一波: \[\begin{aligned} &\sum_{i=1}^n\sum_{j=1}^m\mu^2(\gcd(i,j))\\ =&\sum_{d=1}^{\min(n,m)}\mu^2(d)\sum_{i=1}^n\sum_{j=1}^m[\gcd(i,j)=d]\\ =&\sum_{d=1}^{\min(n,m)}\mu^2(d)\sum_{t=1}^{\min(n,m)}\mu(t)\lflo…
loj536「LibreOJ Round #6」花札(二分图博弈) loj 题解时间 很明显是二分图博弈. 以某个点为起点,先手必胜的充要条件是起点一定在最大匹配中. 判断方法是看起点到该点的边有流量且该点不在起点割集中. #include<bits/stdc++.h> using namespace std; typedef long long lint; struct pat{int x,y;pat(int x=0,int y=0):x(x),y(y){}bool operator<…
上次打了一发 Round #440 Div.2 结果被垃圾交互器卡掉 $200$ Rating后心情复杂... 然后立了个 Round #441 要翻上蓝的flag QAQ 晚饭回来就开始搞事情, 大力安利了一发 Codeforces 然后成功拉到隔壁机房 $N$ 个 dalao 一起开黑 (垃圾 Codeforces 的 CAPTCHA 居然还要架梯子才能用...) 顺便备好 TIM 准备连线 UOJ 群 233 (算了不扯赛前了直接说赛中...) 开场开 $A$ 题, 一脸懵逼? (论 CF…
$ \color{#0066ff}{ 题目描述 }$ 「Hanabi, hanabi--」 一听说祭典上没有烟火,Karen 一脸沮丧. 「有的哦-- 虽然比不上大型烟花就是了.」 还好 Shinobu 早有准备,Alice.Ayaya.Karen.Shinobu.Yoko 五人又能继续愉快地玩耍啦! 「噢--!不是有放上天的烟花嘛!」Karen 兴奋地喊道. 「啊等等--」Yoko 惊呼.Karen 手持点燃引信的烟花,「嗯??」 Yoko 最希望见到的是排列优美的烟火,当然不会放过这个机会-…
http://codeforces.com/contest/876/problem/C 题意: 现在有一个数n,它是由一个数x加上x每一位的数字得到的,现在给出n,要求找出符合条件的每一个x. 思路: n最大1e9,那么9个9最多才加81,所以最多枚举100次,就可以找到所有符合条件的数. 代码: #include <stdio.h> #include <string.h> #include <vector> using namespace std; vector<…
A. Trip For Meal 题目链接:http://codeforces.com/contest/876/problem/A 题目意思:现在三个点1,2,3,1-2的路程是a,1-3的路程是b,2-3的路程是c,从1点开始,小熊维尼在1点吃过一次蜂蜜了,但是他要吃n次蜂蜜,每次他离开一个地方以后这个地方的蜂蜜就会自动补充,问最少需要走多少距离. 题目思路:如果n=1,那么就是0,如果n等于2,那么答案说就是min(a,b),如果n>2,答案就是min(a,b)+(n-2)*min(a,b,…
题目链接 A. Trip for Meal 题意 三个点之间两两有路径,分别长为\(a,b,c\),现在从第一个点出发,走\(n-1\)条边,问总路径最小值. 思路 记起始点相邻的边为\(a,b\),相对的边为\(c\). 首先肯定走\(a,b\)中的最小值(不妨设为\(a\)),到达另一个顶点.那么这个顶点所连的两条边\(a,c\)中必然有一个是\(a,b,c\)三者中的最小值,否则最小值就为\(b\),与初始的选择矛盾. 于是接下来只需要在最小值的路上反复走即可. Code #include…
题目链接 题目描述 「UniversalNO」的规则如下:每张牌有一种颜色和一个点数.两个人轮流出牌,由 Alice 先手,最开始牌堆为空,出的人可以出任意牌(放到牌堆顶),之后出的牌必须和当时牌堆顶的牌的颜色或点数至少有一个相同.有牌可出者必须出,无牌可出者输. Alice 和 Shinobu 玩了几局后觉得原来的规则太依靠运气,于是她们加了一个新玩法:Alice 出了第一张之后,两个人立即交换手里的牌,然后从 Alice 开始继续按原来的规则进行游戏.当然,这次 Alice 出的牌必须和她刚…
http://codeforces.com/contest/876/problem/D 题意: 最开始有一串全部由"O"组成的字符串,现在给出n个数字,指的是每次把位置n上的"O"变为"X",之后会进行扫描. 扫描的规则是如果遇到一个字符为"X"并且这个字符后面的字符为"O",那么就交换. 如果哪一次扫描没有发生交换,那么扫描就停止. 现在给出的n个数字,问第一次需要扫描多少次,第二次需要扫描多少次....…
http://codeforces.com/contest/876/problem/B 题意: 给出n个数,要求从里面选出k个数使得这k个数中任意两个的差能够被m整除,若不能则输出no. 思路: 差能够被m整除,其实就是对m取余的余数相同.那么就统计n个数的余数丢到一个map里面,最后判断是否有某个数的数量大于等于k. 代码: #include <stdio.h> #include <map> #include <vector> using namespace std;…