codeforcess刷题记录
文章平均质量分 52
codeforcess刷题记录
Think-killer
算法,冲!!!!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Codeforces Round #654 (Div. 2)A-E2题解
A. Magical Sticks题意:给你n个数字,其中的数字可以随机组合,问可以组合形成最多同时几个数相等题解:找规律即可,如果n为偶数,则有n/2个,反正(n+1)/2个#include<iostream>#include<cstring>#include<algorithm> using namespace std;int main(){ int t; cin>>t; while(t--){ int n; cin>&原创 2020-07-02 00:44:33 · 1747 阅读 · 1 评论 -
C. Element Extermination(数组模拟栈,贪心)
C. Element Extermination传送门题意:给定一个数组,如果a(i)<a(i+1),你可以删除其中一个,问是否可以经过任意次操作后使得数组中只有一个元素。题解:用数组模拟栈1.如果栈数组中没有元素,就插入进去2.如果栈数组中有元素,但a(i)小于数组栈顶元素,就插入其中3.如果栈数组中有元素且a(i)大于数组栈顶元素,就先插入,再删除栈中可删除的最多元素。代码解释:using namespace std;int skt[300010],tt;int main()原创 2020-07-06 12:26:45 · 469 阅读 · 0 评论 -
Codeforces Round #652 (Div. 2)ABCD题解
A. FashionabLee传送门题意:判断n多边形是否同时有平行于x轴和y轴的边;题解:不难发现4*k=n的多边形都满足,其余均不满足;#include<iostream>#include<algorithm>#include<cstring>using namespace std;int main(){ int t,n; cin>>t; while(t--){ cin>>n; if(n%4==0) cout&l原创 2020-06-24 01:17:48 · 287 阅读 · 0 评论 -
Codeforces Round #649 (Div. 2)ABC题解
A. XXXXX题目链接:A. XXXXX题意:找出数组a[ ]的最大子数组,且这个子数组只能从开头删除几个(可能是零或全部)元素或者从结尾删除几个(可能是零或全部)元素。,使得子数组不可被x整除。题解**:我们可以知道如果一个数可以被x整除,那么减去一个不可被x整除的数字后这个数字就不能被x整除了。**这里有三种情况:1.a[ ]数组总和不能被x整除,答案为n;2.a[ ]数组总和不可被x整除且数组中存在不可被x整除的数,答案为n减去包括这个数的最小个元素,即n-min(i,n-1+1)(i为这原创 2020-06-14 08:50:21 · 441 阅读 · 0 评论 -
C. Jury Meeting
题目链接题意给定一个长度为n的数组,可以进行任意排序(n!种排序),从左到右每个数减1,如果减为0则跳过,循环直至所有都为0求不存在某个数出现连续减2次的排列组合个数可以发现只需关注最大值a和次大值b的关系,因为小于他们的数都会在某次循环中减为0,且每次循环至少在最大值a处间隔开,因此其它数不可能连续减两次1:取出数组中的最大值a和次大值b情况一:如果a=b时 a b循环的次数同样多,同时减为0,答案为n!。情况二:如果a=b+1时 当a=2,b=1时,只有顺序{2,1}才可以,因此只原创 2021-09-09 17:12:53 · 245 阅读 · 0 评论 -
D. Say No to Palindromes
D. Say No to Palindromes题意:给定只包含a,b,c的字符串长度为n提供m次询问,每个询问一个区间l,r问需要修改最少的字母(修改为a,b,c)使得修改后的字符串不存在长度至少为2的回文串求最小的修改数————————————————————————————————因此si≠si+1 (因为它是长度的回文2)和si≠si+2(因为它是长度的回文3),又因为只包含a,b,c,所以si=si+3。于是发现字符串是abc,acb,bac,bca,cab,cba循环中的一种那原创 2021-08-01 22:33:56 · 231 阅读 · 0 评论 -
Codeforces Round #726 (Div. 2)E1、E2(思维题)
E1. Erase and Extend (Easy Version)E2. Erase and Extend (Hard Version)大致题意:给定一个长度为n的字符串s,可以对其进行两种操作:(删除最后一个字符、复制字符串s=s+s),问可以得到长度为k的字典序最小的目标串 。样例:解析:寻找最小字典序前缀即可,对其进行循环输出长度k即可找最小字典序前缀:1、i==1开始,如果s[i]<s[0],则更新最小字典序长度L=i+12、如果s[i]>s[0],就删去后面的所有,原创 2021-06-19 10:27:31 · 274 阅读 · 0 评论 -
L. Spicy Restaurant
L. Spicy Restaurant题意:无向图的每个顶点有一个属性wi,Q个询问,第i个询问给定顶点p和价值a,问距离p最近的wi<a的i距离p有多远题解:w的范围很小,直接做100次BFS,j计算d[i][j]表示离i最近的属性值恰号为j的点的距离即可。时间复杂度O(100(n+m)+Q)。代码:#include<iostream> #include<queue>#include<algorithm>#include<cstring&原创 2021-06-01 12:51:00 · 877 阅读 · 0 评论 -
Codeforces Round #688 (Div. 2)B. Suffix Operations
B. Suffix Operations传送门后缀+1,后缀-1操作前可以改变一个值求最少操作数使得数组值相等在不考虑改变一个值的情况下就等于差分数组的绝对值求和差分数组b[i]考虑可以改变一个值,(使得当前值与后者或前者相等):情况1 、改变a[1],使得a[1]==a[2],可减少操作数d=abs(a[2]-a[1]);情况2、改变a[n],使得a[n]==a[n-1], 可减少操作数d=abs(a[n]-a[n-1]);情况3、改变a[i],可减少操作数d=b[i]+b[i-1]-原创 2020-12-05 17:56:36 · 197 阅读 · 2 评论 -
Codeforces Round #659 (B. Koa and the Beach (Easy Version(DP)&Hard Version)
B1. Koa and the Beach (Easy Version)题目链接题意:有n个海域,给出每个海域的初始深度,2*k秒为一个循环,前k秒每秒深度+1,后k秒每秒深度-1,你要游到另一边去,每秒可以游到下一个海域或者停留在当前海域,如果当前海域深度大于l,你就会淹死。问你是否能游到另一边。方法:DPf[i][j]代表j秒时是否能到达i海域的状态;f[i][j]可以从f[i][j-1]或者f[i-1][j-1]两个状态过来;#include<iostream>#i原创 2020-07-28 20:53:20 · 296 阅读 · 0 评论 -
#659 (Div. 2)C. String Transformation 1(思维)
题目链接题解:1**.如果出现a[i]>b[i]则无解;**2.我们首先从小的开始选择字母,对于选定的字母,选择的字母都有其要变成的值,我们让他们都变成要变成字母里的最小的一个,这样既不会影响其他字母的转换,也能够使得答案数最少,比如:aaa–>cdg,那么选择的字母是 ′a′ ,把它变成 ′c′ ,然后把其都变成 ′c′ 。#include<iostream>#include<cstring>#include<algorithm>#inc原创 2020-07-27 21:20:41 · 246 阅读 · 0 评论
分享