Codeforces
文章平均质量分 71
ljq真的不能再吃了
珍惜每一天
展开
-
Educational Codeforces Round 104 (Rated for Div. 2) A-E 题解
A. Arena介绍了一下博弈的规则 我们发现只有从顺序第二个不同的数的人开始 有机会获胜 因为他可以不断找比自己积分少的人单挑#include<cstdio>#include<iostream>#include<vector>#include<map>#include<set>#include<stack>#include<algorithm>#include<cstring>#includ原创 2021-03-13 15:33:33 · 261 阅读 · 0 评论 -
Codeforces Round #702 (Div. 3) A-G
A. Dense Array给你 nnn 个数的数组,定义数组有效为任意两个相邻的数 max(arr[i],arr[i−1])/min(arr[i],arr[i−1])<=2max(arr[i],arr[i-1])/min(arr[i],arr[i-1]) <= 2max(arr[i],arr[i−1])/min(arr[i],arr[i−1])<=2 那么按照题意check 补数即可,注意要从小的去不断的乘2去构造,大的 / 2 会有精度损失#include<cstdio>原创 2021-03-12 15:50:44 · 182 阅读 · 0 评论 -
Codeforces Round #706 (Div. 2) A-D
A. Split it!题意给你 nnn 长度的字符串,问是否满足找出 kkk 个字符串 满足这 kkk个字符串作为前缀 与其翻转作为后缀 中间拼第 k+1k+1k+1 个字符串组成 我们按题意枚举即可#include<cstdio>#include<vector>#include<cstring>#include<iostream>#include<map>#include<set>#include<vector原创 2021-03-10 23:01:06 · 228 阅读 · 0 评论 -
Codeforces Round #705 (Div. 2) A-D
明显感觉到码力下降了 需要老年人康复训练计划这场码力比较大 需要思维比较巧来减少码力 算是少见的cf div2了A. Anti-knapsack给你 nnn 和 kkk ,问是否有办法找出最大的集合使得集合中任意子集和不为k 我们发现每次分奇偶去掉 m/2m/2m/2 (分奇偶),那么也意味着 i<=m/2i <= m/2i<=m/2 (分奇偶)也凑不出来 毕竟按照我们的定义可以无限递归下去 这样我们凑 m=11m = 11m=11 的时候, 11=1+3+711 = 1 + 3 +原创 2021-03-10 16:32:55 · 177 阅读 · 0 评论 -
AtCoder Beginner Contest 194 D-E
Journey给你nnn个点的图,你一开始在第一个点,问你将图变成全联通的期望为多少我们先思考下这个问题:给你nnn个点,你每次可以随机涂一个,问你将所有点涂上颜色的期望为多少期望dpdpdp通常反着求解 设dp[i]dp[i]dp[i] 代表涂好iii个点后将nnn个点涂上颜色的期望,那么dp[n]dp[n]dp[n] = 000 ,dp[i]dp[i]dp[i] = (i/n)dp[i](i/n)dp[i](i/n)dp[i] + (n−i)/n∗dp[i+1](n-i)/n * dp[i+1](原创 2021-03-08 02:24:25 · 561 阅读 · 2 评论 -
Codeforces Round #703 (Div. 2) A-E 题解
Shifting Stacks给你 n 长度的数组,每个下标包含 000-nnn 个木块 其中可以将某一位置的木块向右边平移 请问是否能凑出高度严格上升的数组 一开始想简单了 直接判断木块的和是否大于 (111+(n−1)(n-1)(n−1))*(n−1)(n-1)(n−1)/2 但是这样是错误的 因为你不能一定凑出这样的排列 假如都在最后一列 所以需要按照符合情况所需最小木板数去做模拟 check#include<cstdio>#include<cstring>#inclu原创 2021-03-08 02:09:29 · 249 阅读 · 0 评论 -
Codeforces 1494D Dogeforces 并查集+构造
Dogeforces题意 老板和员工,老板至少有两个员工,员工不会有下级员工,但是老板可能有自己的老板,那么公司的创始人自然就是树上的顶点 为最大的老板nn的矩阵每个值 Ai,j 代表 i 员工与 j 员工 LCA(他们共同老板)的薪水,那么显然 Ai,i 代表第i个员工的薪水 给你薪水矩阵 构造出公司组织结构Trick:我们发现创始人也就是最大的老板 他是可以连无数条边到自己的下属 于是我们将其单独抽出来 为第 n+1 个公司的人 也为公司创始人 这个矩阵是角平分线对称的 所以我们只需要考虑右上的情原创 2021-03-03 19:08:34 · 336 阅读 · 1 评论 -
Educational Codeforces Round 105 (Rated for Div. 2) A-D题解
A. ABC String题意 给你一个只包含 A、B、C的字符串,每类字符都有可能代表左右括号中的一种,问你是否能找到一个方式使得括号匹配合法三个字符,每个字符有两种情况 总计 2^3 = 8次枚举 + 判断括号匹配合法性即可#include<cstdio>#include<cstring>#include<vector>#include<cmath>#include<iostream>#include<algorithm&原创 2021-03-03 19:07:02 · 363 阅读 · 1 评论 -
Codeforces Global Round 13 A-E题解
A01序列,一个操作对某一位取反,一个操作问你当前第k大是多少维护一个当前最后一个1所在排名#include <cstdio>using namespace std;const int MAX_N = 100025;int arr[MAX_N];int main(){ int n,m,sum = 0; scanf("%d%d",&n,&m); for(int i = 1;i<=n;++i) { scanf("%原创 2021-03-02 13:42:52 · 351 阅读 · 0 评论 -
Codeforces Round #704 (Div. 2) A-E题解
A Three swimmers题意 三个人每人游一个来回时间分别是a、b、c,那么在 a、b、c的倍数时间点上 三个人均会在左边的点,题目问你p时刻来 还要等多久最快遇到三个人 1e18 除法判断是否整除相减即可#include<cstdio>#include<vector>#include<cstring>#include<cmath>#include<iostream>#include<queue>using na原创 2021-03-02 01:58:25 · 167 阅读 · 0 评论 -
【G. Two Merged Sequences】 贪心
GG. Two Merged Sequences题意 和C题差不多 但是是在一个严格上升的序列中插入严格递减的序列做法 我们按照贪心 定义一个inc 代表当前上升序列最大值 Dec 当前下降序列最小值如果你这个值可以既放上升序列 下降序列 那么我们特判一下下一个是否比当前这个大 如果大那么这个可以当上升否则我就让他当下降 例如这组数据61 2 50 3 51 5当到50的时候 如...原创 2019-04-01 11:48:48 · 165 阅读 · 0 评论 -
【Codeforces Round #512 (Div. 2, based on Technocup 2019 Elimination Round 1)】 A B C D E
A题意给你一个 0 1 串 有1 就输出HARD 没1就输出EASY/* if you can't see the repay Why not just work step by step rubbish is relaxed to ljq*/#include <cstdio>#include <cstring>#inclu...原创 2019-03-28 11:33:21 · 161 阅读 · 0 评论 -
【Codeforces 948 D. Perfect Security】 01字典树入门题
948D题意 给你一个a序列 给你一个b序列 你可以让b序列调换位置 使得答案为 a 序列 和 b 序列异或得到的值字典序最小(也就是值最小做法 我们容易想到把 b 放在一个 01字典树内 一开始忘记字典树是丛高往低插入(因为01字典树优先考虑高位的影响这样我们从高位往低位遍历的时候就可以直接的贪心把1给最大值的位置 这样异或出来的值最小这道题就这样做完了/* if you ca...原创 2019-04-08 11:17:34 · 193 阅读 · 0 评论 -
【Codeforces 438 D The Child and Sequence】区间取模 势能线段树
cf 438 D题意 1 操作 区间求和2 操作区间取模3 操作 单点修改这道题自己很玄学用单点update 只要maxx[rt]<v (取模的数)return 就能过根据定理每个数只要取模 大小至少减少一半 那么最多log2次所以时间复杂度是 O(nloglogn)但是自己写了一个区间 maxx[rt] == minn[rt] 进行区间覆盖的 就一直写错 不知道为啥还是老...原创 2019-04-11 23:55:23 · 161 阅读 · 0 评论 -
【Codeforces Round #557 (Div. 2) [based on Forethought Future Cup - Final Round] A B C D E 】
CF557A . Zoning Restrictions Again题意 给你n个建筑 每个建筑只能建 0 - h 的高度 有m个限制 使得 l 到 r 最多建 m[i]高度那么我们只要暴力取最小值O(n)统计答案即可/* if you can't see the repay Why not just work step by step rubbish is re...原创 2019-05-05 13:00:49 · 209 阅读 · 0 评论 -
【F. Graph Without Long Directed Paths】贪心
FF. Graph Without Long Directed Paths题意 给你n个点 m条边 保证联通 问你能否构造一张有向图(不一定联通)使得路径长度不超过2我们很容易想到从一个点开始染色 和他相连的点染相反颜色 然后再继续递归下去染色但是要判断一下 这个点染色和下个点染色是否相反 如果那个点已经有颜色和自己是一样的 那么肯定是NO例如这组数据3 31 22 33 1...原创 2019-04-01 11:46:21 · 706 阅读 · 2 评论 -
【Codeforces Round #550 (Div. 3)】 A B C D E F G
AA. Diverse Strings题意 给你n个字符串 问你所有字符串排序以后是否满足相邻 a和z不相邻那么暴力排序 暴力check即可/* if you can't see the repay Why not just work step by step rubbish is relaxed to ljq*/#include <...原创 2019-04-01 11:38:17 · 435 阅读 · 0 评论 -
【Codeforces 19 D. Points】 线段树
CF 19 D题意是嫖过来的给你一个笛卡尔坐标系,现在要支持三种操作,第一种操作是添加一个点(x,y),第二种操作是删除一个点(x,y),第三种操作是查询严格在点(x,y)右上角的点中,横坐标最小的点,如果有多个点,选择纵坐标最小的那个。这个题加点 删点 想到了set然后怎么找严格右上角呢?想到了线段树去找右边区间的maxx大于y+1的那个最左坐标我们用横坐标当线段树节点 节点存该...原创 2019-04-10 14:58:04 · 159 阅读 · 0 评论 -
【codeforces 160 E. Buses and People】 线段树
CF题意 给你 n辆巴士的起始坐标 终止坐标 和启动时间Q个人的起始坐标 终止坐标 和启动时间只要满足人的起始坐标在巴士的起始坐标之后 并且终止坐标在巴士的终止坐标之前并且时间在巴士的启动时间之前 人就可以坐上这巴士问你每个人能坐上启动时间最早的巴士是哪一辆 坐不上就输出-1做法 我们首先将所有人和巴士的坐标合在一起按照第一关键字起始坐标排序第二关键字 id (这样能保证相同时间车一...原创 2019-04-10 14:00:04 · 198 阅读 · 0 评论 -
【D. Array Without Local Maximums 1068 D. Array Without Local Maximums】 DP
CF1068 D题意 给你n长度的数组 每个数必须填 1 - 200 满足1 a[1] <= a[2]2 a[i]<=max(a[i-1],a[i+1])3 a[n-1]>=a[n]做法 我们定义dp数组为 dp[100005][200][3]最后一维3中的 0 代表前面的数小于当前数的个数 1 代表前面...原创 2019-03-27 12:23:14 · 164 阅读 · 0 评论 -
【Codeforces Round #519 by Botan Investments】 A B C D E
A题意 给你n个学生 第 i 个学生会给主角的对手投 a[i]票 问你最小一个m使得 主角获得 m - a[i]票并胜过对手 二分即可/* if you can't see the repay Why not just work step by step rubbish is relaxed to ljq*/#include <cstdio>...原创 2019-03-26 14:02:49 · 241 阅读 · 0 评论 -
【Codeforces 1139 E. Maximize Mex】 二分图最大匹配
1139E题意 给你n个人有n个值 和俱乐部从每个俱乐部只能选一个人 然后定义答案为这些人里面没出现的最小非负值做法 每个俱乐部只能选一个人 就是二分图匹配俱乐部在右边你从值开始跑 跑到第一个不符合的就是答案昨晚一开始做就想到倒叙 但是不会二分图 写了个cnt代表二分图的增广路 丢人了 今天学了二分图顺着倒着做的思路去加边从上个不行的答案开始跑 跑到不行就出来 如果都行则...原创 2019-03-22 22:21:19 · 394 阅读 · 0 评论 -
【hdu 6183 Color it】第一棵动态开点线段树
HDU 6183其实和CF 19D一样 只不过有50个颜色 你需要分别建立五十棵线段树 手法给别人学的 看看代码吧做法就是给每个y坐标存该颜色最小值x动态开点 值得好好回顾/* if you can't see the repay Why not just work step by step rubbish is relaxed to ljq*/#inc...原创 2019-04-12 01:37:09 · 92 阅读 · 0 评论 -
【Codeforces Round #509 (Div. 2)】A B C D E
A题意 给你n个数 里面有最大值和最小值问你最小值和最大值之间差了几个数 我们只要maxx−minn+1−nmaxx-minn+1-nmaxx−minn+1−n就是答案/* if you can't see the repay Why not just work step by step rubbish is relaxed to ljq*/#includ...原创 2019-04-03 14:23:22 · 138 阅读 · 0 评论 -
Avito Cool Challenge 2018 A-E
A题cf-1081-A题意 给你一个数 让你减去小于他的数中不能被他除的数 获得最小的值 ,输出最小的值我们知道当n>2 n与n-1互质 所以能得到1 所以只有为2的时候我们需要输出2#include <cstdio>#include <queue>#include <cmath>#include <map>#incl...原创 2018-12-17 15:17:08 · 218 阅读 · 0 评论 -
【Codeforces 342 E】Big-small算法
cf342E这题算是接触的第一个Big-small算法给你一个树 一开始大家都是红点或者白点一开始根是红点 两个操作 把一个点改成红点 询问某个白点到最近的红点距离是多少巧到我们存 sqrt(m) 个询问 每查一个白点我只要比dis和sqrt(m)个红点比较一下距离 然后每到sqrt(m)我就跑一次dijstra即可/* if you can't see the repay ...原创 2019-09-16 15:47:01 · 330 阅读 · 0 评论 -
【Codeforces Round #569 (Div. 2) A - E】解题报告
CF569A题意 定义第一阶菱形是一个正方形 n阶就是n-1阶菱形表面有多少个边加多少个一开始没看懂题 以为中间是正方形 盲猜了一发 n==1?1:(2n-2)(2*n-2)+4;后来发现其实规律是 ans[i] = ans[i-1]+(i-1)*4因为每次多贡献四个边/* if you can't see the repay Why not just work step...原创 2019-07-14 18:24:11 · 145 阅读 · 0 评论 -
【Codeforces 1191 F. Tokitsukaze and Strange Rectangle】线段树
CF573F题意 就是用一个上面为空的容器去装点问你装点有多少种方案我们先考虑按照y排序从高往低 因为低的不会影响高的假设大家高度都不同对当前高度 如果他左边有 l 个 右边有 r 个那么他的贡献是 (l+1) + (r+1) +1代表自己不选的选项 那么就很好做了但是如果高度相同呢?我们就得从左到右 依次取消前面的影响也就是你query的时候要query上一个点横坐标加1 到...原创 2019-07-14 00:22:37 · 262 阅读 · 0 评论 -
【Codeforces 1183 H. Subsequences (hard version)】dp
cf570Hcf579E题的升级版 k是1e12 所以必须用dpdp[i][j] 代表到 i 删除了 j个字符的种类数那么 dp[i][j] = dp[i-1][j-1]+dp[i-1][j]但是如果 aba 你删除 ba 和之前删除 ab 的情况是一样的所以我们要把之前的情况回溯 利用一个pre 数组回溯删除为了不爆边界 如果dp值大于k dp值等于k/* if you c...原创 2019-07-13 18:02:06 · 313 阅读 · 0 评论 -
【Codeforces Round #570 (Div. 3) A-H 】解题报告
cf570cf570A题意 一个数的数位和%4如果为 0 是我们要的答案 问加几次能使得他数位和 %4 为0 暴力即可/* if you can't see the repay Why not just work step by step rubbish is relaxed to ljq*/#include <cstdio>#include...原创 2019-07-13 18:01:23 · 153 阅读 · 0 评论 -
【Codeforces Round #573 (Div. 2)】A-F 解题报告
CF573A题意 根据一个数%4的余数不同划分等级 你可以使一个数加上0,1,2 问你使他能升的最大等级是多少 要加多少 根据题意模拟一下即可/* if you can't see the repay Why not just work step by step rubbish is relaxed to ljq*/#include <cstdio&g...原创 2019-07-13 13:58:42 · 310 阅读 · 0 评论 -
【Codeforces Round #565 (Div. 3) A B C D E F】解题报告
Codeforces 565失踪人口回归cf 565 A题意 你可以把一个偶数变成 n/2 , 可以把一个3的倍数变成 n2/3, 可以把一个5的倍数变成 n4/5问你最少通过多少步可以变成1解法 我们发现 2/3是最小的 而且生成2这个因子 ,然后 4/5也能生成 2 所以顺序就是 先 3 后 5 再 2/* if you can't see the repay Wh...原创 2019-06-10 10:29:51 · 323 阅读 · 0 评论 -
【Codeforces Round #560 (Div. 3)】 A B C D E F1 F2
cf560A题意 给你一个 2e5的01串 和 x y要求这个串%10^x = 10 ^ y那么按照题意模拟 都变成0 那位变成1 即可/* if you can't see the repay Why not just work step by step rubbish is relaxed to ljq*/#include <cstdio>...原创 2019-05-15 18:11:58 · 126 阅读 · 0 评论 -
【Codeforces 877 E Danil and a Part-time Job】区间求和+区间取反
CF 877 E题意 给你一棵树get操作为求这个树子树内开着灯个数pow操作为使这个子树内开灯状态取反我们只要用dfs序建立一颗线段树然后对get操作 区间求和对于pow操作 区间取反即可/* if you can't see the repay Why not just work step by step rubbish is relaxed to...原创 2019-04-09 23:21:23 · 164 阅读 · 0 评论 -
【Codeforces Round #541 (Div. 2)】 A B C D E F
A题意 给你两个小长方形 然后他们的最左边是对准一条线的 问你旁边宽度为1范围内有多少包围的格子我们不难发现一个长方形的贡献 是 (h+1)*2 + w 但是如果一个的w比另一个w高 我们就需要加上abs(w1-w2)的贡献即可#include <cstdio>#include <cstring>#include <iostream>#inc...原创 2019-03-19 13:30:08 · 223 阅读 · 0 评论 -
【Codeforces Round #523 (Div. 2)】 A B C D
A给你无限个 1-n的硬币 问你怎么最少的组成m那么我们贪心的去组成m即可 所以直接除以n 判断是否除的尽即可/* if you can't see the repay Why not just work step by step rubbish is relaxed to ljq*/#include <cstdio>#include...原创 2019-03-21 22:32:06 · 80 阅读 · 0 评论 -
【Codeforces Round #526 (Div. 2)】 A B C D E
这场以前vp打过三次不知道脑子是抽了还是干嘛 崩盘了好几次A题意 给你一栋n层的大楼 每层有a[i] 个人 问你选择从一层放电梯 使得最低耗费做法 数据范围很小 暴力枚举即可#include <cstdio>#include <cstring>#include <iostream>#include <queue>#inc...原创 2019-03-19 17:06:15 · 139 阅读 · 0 评论 -
【Codeforces Round #539 (Div. 2)】 A B C D
PS: 我学校男神也叫萨沙A题意 有n个地点 一个人有一个邮箱 到一个地方需要 1升油 总共需要n-1油第i个地方的油价为 i 所以我们贪心的去买 就是不够我就补 越早补越好 你是知道要买的是 min(n-i,V-m)#include <cstdio>#include <cstring>#include <iostream>#include ...原创 2019-03-14 17:03:59 · 115 阅读 · 0 评论 -
【Codeforces Round #545 (Div. 2)】 A B C D
这场失策的地方是 当时C过的人比B多 但是自己还在肝B 使得D差几分钟就能出 D(赛后一遍过)A题意 1代表一种菜 2 代表另一个菜 问你偶数区间一分为二 两边各是一种菜 区间最长为我们可以找到第一个右边不等于左边的菜进行左右枚举即可#include <cstdio>#include <cstring>#include <iostream>...原创 2019-03-09 15:44:15 · 91 阅读 · 0 评论 -
【Codeforces Round #544 (Div. 3)】 A B C D E F1 F2
这场A是最失误的地方 能int读入 却用char数组读入 感觉失策了A题意 给你开始时间和结尾时间 问你这两个时间的中间时间是什么做法 做法显然 骚操作在此#include <cstdio>#include <cstring>#include <iostream>#include <queue>#include <cm...原创 2019-03-09 15:30:39 · 124 阅读 · 0 评论