cf与各算法比赛
forOnward
此账号暂不更新(虽然应该没人会看我的blog)。。。
展开
-
Codeforces Round #642 (Div. 3) 题解
传送门 A. Most Unstable Array 代码: #include<iostream> #include<cstdio> #include<cmath> #include<cstring> #include<queue> #include<vector> #include<string> using namespace std; const int INF = 0x3f3f3f3f; int.原创 2020-05-16 11:19:12 · 344 阅读 · 0 评论 -
Codeforces Round #629 (Div. 3) E. Tree Queries
http://codeforces.com/contest/1328/problem/E 题意: 一棵树,有m个询问,每次询问询问k个点是否都在一条从根节点(点1)到某个节点v的路径上,或者距离这条路径的距离为1也可以。 首先先解决判断所给的点是否都在一条从根节点到某个点的路径上这个问题: 可以参考倍增求lca的方法,判断某个点是否为另外一个点的祖先,每次判断两个点,并且保存更深的那...原创 2020-03-30 14:56:26 · 188 阅读 · 0 评论 -
Educational Codeforces Round 77 D. A Game with Traps 二分答案+前缀和
http://codeforces.com/contest/1260/problem/D 题意: 你m个士兵,每个士兵都有敏捷值 有k个陷阱,每个陷阱有3个属性:l,r,dangerous,其中: l:若你的士兵敏捷值小于dangerous,那么你带领士兵经过这个点就会当场去世 r:为了避免你的士兵当场去世,你可以先自己走到r点,此时陷阱就会失效 士兵必须跟着你一起走,你可以先选择自己...原创 2019-11-29 17:11:13 · 414 阅读 · 0 评论 -
Educational Codeforces Round 77 C. Infinite Fence
http://codeforces.com/contest/1260/problem/C 题意: t次询问,每次给你3个数,a,b,k 有无穷个木板,需要为木板涂色,所有a的倍数(加上0)都涂成红色,所有b的倍数(加上0)都涂成绿色,假如一个木板既可以被涂成红色也可以被涂成绿色,那么可以随便涂一种颜色。 问: 从木板0开始,在所有涂了色的木板中,假如连续使用同一种颜色涂大于等于k次,则输...原创 2019-11-29 16:40:36 · 196 阅读 · 0 评论 -
Codeforces Round #600 (Div. 2) D. Harmonious Graph
https://codeforces.com/contest/1253/problem/D 题意: 有一个n点m边的无向图 调和图的定义: 假如图中l,r能相互抵达,那么l和l+1,l+2,……, r - 1 也能相互抵达 求一个图变成调和图最少需要加多少条边 输入: 第一行n,m (n<1e5,m<1e5) 接下来m行两个数i,j,表示有i到j的无向边 看...原创 2019-11-18 00:03:54 · 92 阅读 · 0 评论 -
Codeforces Round #600 (Div. 2) E. Antenna Coverage
https://codeforces.com/contest/1253/problem/E 题意: 有n根天线,需要它们覆盖1~m的区域 对于每一根天线有2个属性,一个是位置x,一个是覆盖范围s,因此对于一根天线的覆盖范围为[x-s,x+s] 对于每一根天线,可以选择多加1块钱,使得其覆盖范围s增加1,并且可以累加 输出覆盖1~m所需要花的最少的钱 数据范围: n<=60...原创 2019-11-17 23:56:27 · 151 阅读 · 0 评论 -
Codeforces Round #597 (Div. 2) F. Daniel and Spring Cleaning
题目:https://codeforces.com/contest/1245/problem/F 题意: 有t次询问(t<=100) 每次给2个数a,b(0<=a,b<=1e9) 求 a,b区间中(包括a,b)有多少对数(i,j)满足: i+j=i^j 首先i+j=i^j等价于 i&j==0 然后假设solve(i,j)表示 : 在 [i,j) (...原创 2019-11-03 17:04:47 · 374 阅读 · 0 评论 -
Codeforces Round #597 (Div. 2) D. Shichikuji and Power Grid 最小生成树
题目:https://codeforces.com/contest/1245/problem/D 题意: 有n座城市(用二维坐标表示,坐标大小小于1e6) 城市要供电,因此需要在城市里面修发电站,不同城市里面修发电站的代价不一样,分别是: c[1],c[2],……,c[n] 城市和城市之间也可以修电线,给你个数组: k[1],k[2],……,k[n], 然后i,j城市之间修电线的代价为 ...原创 2019-11-03 00:06:30 · 163 阅读 · 0 评论 -
Codeforces Round #595 (Div. 3) F. Maximum Weight Subset
http://codeforces.com/contest/1249/problem/F (最近有点不在状态) 题意: 给你一棵树,里面有n(n<=200)个节点,每条边的距离为1,每个点都有一个权值,让你在树里面挑一些点,组成一个集合,集合中任何点之间的距离都必须大于k,问集合内所有点的权值之和最大是多少 现在只考虑一个点 假如选择了这个点,那么: 可以选择跟它距离大于k...原创 2019-10-26 14:02:19 · 204 阅读 · 0 评论 -
Codeforces Round #592 (Div. 2) F. Chips
https://codeforces.com/contest/1244/problem/F 题意: 给你一个由n个点围成的环,初始状态下环上每一个点都有黑或者白两种状态,此时要进行k次变换 每次变换,对于某个点,其颜色为这个点以及其左右两边的两个点上较多的颜色,用W表示白色,B表示黑色,则 BWB 这三个点中间的W下一次应该变为黑色 问进行k次变换之后每个点的颜色是什么。 1...原创 2019-10-15 17:59:48 · 272 阅读 · 0 评论 -
Codeforces Round #592 (Div. 2) E. Minimizing Difference
https://codeforces.com/contest/1244/problem/E 题意: 给你一堆数字,k次操作次数 对于每次操作,都可以选择一个数使其增加1或减少1 问最后这堆数里面最大的减去最小的差值,这个差值最小是多少 很明显每次操作的话都是让这堆数里面最大的减小,最小的增大 所以先对这堆数排序,每次处理最大和最小的值 主要需要注意的就是当可操作次数不足以支持同...原创 2019-10-15 17:44:58 · 97 阅读 · 0 评论 -
Educational Codeforces Round 74 E. Keyboard Purchase
https://codeforces.com/contest/1238/problem/E (一开始实在是没想到状压dp) 用place[i]表示字母i所在的下标 比如说对于ab两个字符,假如a在前面,那么对答案的贡献应该是 place[b]-place[a] 假如b在前面,对答案的贡献应该是place[a]-place[b] 现在更一般化,假如对于a和x两个字符,其中...原创 2019-10-13 18:35:04 · 152 阅读 · 0 评论 -
Educational Codeforces Round 74 C题, D 题 题解
c题:Standard Free2play https://codeforces.com/contest/1238/problem/C 题目的大意就是一个人站在高度为h的地方,每个高度都有一个平台,要么凸出来,要么凹进去,人只能站在吐出来的地方。 那个人可以改变他高度的平台以及他高度-1的平台,每次改变都会将平台的状态改变 那个人最多往下摔两个高度,否则就会当场去世 为了不让那个人去世,...原创 2019-10-10 22:25:29 · 166 阅读 · 0 评论 -
Codeforces Round #554 ---B题 和 D题
B题:Neko Performs Cat Furrier Transform https://codeforces.com/contest/1152/problem/B 设输入为num 因为异或的是(2^n-1),其二进制全都是1,因此就是将num的 n-1 位取反 我们可以用数组表示num的二进制,然后对数组操作 可以从高位向低位取反,就是每一次取反都会取反1~k位(k取决于你自己)...原创 2019-04-26 09:08:18 · 66 阅读 · 0 评论 -
Educational Codeforces Round 63 A题
#include<bits/stdc++.h> using namespace std; int main(){ char s[400000]; int n; cin>>n; scanf("%s",s); int max_id=0; for(int i=0;i<n;i++){ if(s[i]>=s[max_id]) max_id=i; els...原创 2019-04-23 19:27:10 · 73 阅读 · 0 评论 -
Educational Codeforces Round 63 --B题
假设a先取,b后取。 b一定从前往后取8 a一定从前往后取不是8的数 a,b取得次数一样 将次数计算出来,假如当b取完他能取得8之后,a能取得使得下一个8出现,那么就可以了。 代码: #include<bits/stdc++.h> using namespace std; char s[100005]; int main() { int n; cin >> ...原创 2019-04-23 19:25:20 · 84 阅读 · 0 评论 -
Educational Codeforces Round 63 --C题
首先一定是从第一个活动开始(再往前就没意义了) 然后求间隔时间的gcd 最后从可以选的地方选 #include<bits/stdc++.h> #define ll long long using namespace std; inline ll gcd(ll a,ll b){ return b?gcd(b,a%b):a; } int main() { int n, m; c...原创 2019-04-23 21:47:55 · 108 阅读 · 0 评论 -
Codeforces Round #556 (Div. 2) A~C题
A题: https://codeforces.com/contest/1150/problem/A 题目看了我半天 大意就是给你k块钱,有n种购买方法,m种卖出方法 选少的买,大的卖。。。。。水的不行这题。。 #include<bits/stdc++.h> using namespace std; int main() { int n,m,r; cin>>n...原创 2019-04-30 09:30:46 · 110 阅读 · 0 评论 -
Educational Codeforces Round 65 (Rated for Div. 2) A~D题题解
A题: 假如输入字符串长度不够11的话直接NO,超过11的话从头开始找找到剩下11个字符假如有8的话就YES,否则NO #include<bits/stdc++.h> using namespace std; int main() { int t; cin >> t; while (t--) { int end; cin >> end; ...原创 2019-05-16 00:34:42 · 103 阅读 · 0 评论 -
写在2019广东省大学生程序设计竞赛 GDCPC 之后 ,一次难忘的打铁经历
-----梗概 我们队是两个大一一个大四组成的,然后大四的大佬因为毕业照延期的原因跟省赛日期撞上了,比赛就只能我们两个大一的菜鸡去比了,这次比赛的难度梯度跨越比较大,我们AC了4道题,场内一堆人都是4题,5题,4题的一部分能拿铜,因为我们罚时比较多就打铁了。 更新: 今天看到排名,4题都能到银牌区了,铜牌全是4题!!!!!!!心态爆炸 -----5月11日,周六,热身赛。 今年比赛在中大,...原创 2019-05-13 08:29:51 · 1601 阅读 · 5 评论 -
codeforces Round #588 (Div 2.) C.Anadi and Domino && D.Marcin and Training Camp
C.Anadi and Domino 题目:https://codeforces.com/contest/1230/problem/C 题意: 有一堆上下都有数字的牌: 给你n(n<=7)个点 ,m条边(无重边,最多为 n*(n-1)/2) ,的图,在图上的边可以放这些牌,有两点限制: 1.每张牌只能用一次 2.对于每个点,它的边上的牌向着它的那半边牌上的点数要一样 ...原创 2019-09-28 23:55:44 · 150 阅读 · 0 评论 -
Codeforces Round #590 (Div. 3) 题解
A . Equalize Prices Again https://codeforces.com/contest/1234/problem/A 相加取平均,向上取整。。 #include<bits/stdc++.h> #define ll long long #define ull unsigned long long using namespace std; const ...原创 2019-10-06 19:51:02 · 513 阅读 · 0 评论 -
Educational Codeforces Round 63 --D题 (dp)对于答案的个人理解
题意: 给你一串数列q,一个数k,你可以选择任意一串连续的子序列(长度允许为0),将里面每一个元素乘以k,然后输出q的最大子序列(指子序列的每个值加起来) 数列长度<=3*10^5 一开始打算用简单的区间dp,然鹅10^5的数据量我认为会超时,就没有做。。。。(想不出其他方法了) 个人对答案的理解: 实际上这道题对于每一个元素都有两种分开的选择,一种是 是否乘k,另外一种是 ...原创 2019-04-25 19:45:34 · 94 阅读 · 0 评论