CodeForces
Sqwlly
有自己热爱的东西,真好。
展开
-
CF 721C - C. Journey(拓扑排序+DP)
C. Journey(拓扑排序+DP)一点不相关的话:好久没有更新博客了,当我再次看到这些,甚至都想象不到这些都是我写的。嗳,可能这就是命运多舛吧。去年打完最后一场ICPC后,就开始抉择是考研还是继续打下去,但是好像没有人陪我打下去了,ACM一个人真的很难坚持(其实有很多话想说,但是,我现在不想再回忆,这样只会消沉自己的情绪。)。最终,在询问过已经毕业的学长之后,我选择了去考研。今天考研视频网课...原创 2020-02-15 21:06:53 · 567 阅读 · 0 评论 -
Codeforces Round #527 (Div. 3)A B C D1 D2
A. Uniform String题意:给出n,kn,kn,k,输出长度为nnn满足循环节的字符串。比如k=3k = 3k=3,就是abcabcabcabcabcabc,不足循环节长度的也要输出。代码#include<bits/stdc++.h>using namespace std;int main(){#ifndef ONLINE_JUDGE freope...原创 2018-12-22 13:11:54 · 894 阅读 · 0 评论 -
Codeforces Round #536 (Div. 2) A B C D E(dp)
这可能是我做div2div2div2以来做的最好的一次?它居然unratedunratedunrated了!哼╭(╯^╰)╮不给力的服务器!关键时刻拓机!虽然这次的D比较水。但是是我一次过了四题QAQ…A. Lunar New Year and Cross Counting题解:数交叉XXX个数,O(N2)O(N^2)O(N2)枚举中点即可。代码#include&lt;bits/stdc+...原创 2019-02-01 15:48:03 · 386 阅读 · 0 评论 -
Codeforces Round #535 (Div. 3) A B C D E1
A. Two distinct points题解:特判判断一下两个区间的左右关系即可。直接输出边界。#include<bits/stdc++.h>using namespace std;int main(){#ifndef ONLINE_JUDGE freopen("input.in","r",stdin);#endif int q; cin >&g...原创 2019-01-28 01:37:22 · 234 阅读 · 0 评论 -
Codeforces Round #541 (Div. 2) D. Gourmet choice(并查集+拓扑) F. Asya And Kittens(启发式合并+链表)
D. Gourmet choice题意:给出两个序列aia_iai和bjb_jbj的大小关系,问能否恢复这两个序列,如果可以则输出,否则输出NoNoNo。题解:因为有等于号的存在,所以导致建图会形成环,因此我们考虑用并查集将等于关系的缩成一个点,然后去建图,跑一遍拓扑即可。代码#include<bits/stdc++.h>#define DEBUG(x) std::ce...原创 2019-03-02 15:27:12 · 323 阅读 · 0 评论 -
Educational Codeforces Round 61 (Rated for Div. 2) F. Clear the String(区间DP)
F. Clear the String题意:给出一个串,每次消去连续相同的子串,问最少多少次能把这个串消完。题解:入门区间dpdpdp。两种做法。做法一:记忆化dfsdfsdfs。首先肯定可以知道对于 一段区间[i,j][i,j][i,j],它只有两种情况,里面的字符全部相同,或者分成若干段相同区间。那么我们就可以暴力枚举区间里的中点,累加每段的区间贡献即可。对于每段区间里的字符,只要它和...原创 2019-03-09 11:55:41 · 211 阅读 · 0 评论 -
Codeforces Round #545 (Div. 2) D. Camp Schedule(KMP next匹配)
D. Camp Schedule今天!终于学会KMPKMPKMP了!!题意:给你010101串sss,ttt,任意改变串sss的字符顺序,求构造一个字符串ccc满足ttt在ccc中的出现次数最多。题解:首先求出串sss的000和111数量,其次利用KMPKMPKMP里的nextnextnext数组,如果会KMPKMPKMP的话,就知道,实际上nextnextnext数组就是模式串的公共前缀后...原创 2019-03-11 23:42:29 · 230 阅读 · 0 评论 -
Codeforces Round #547 (Div. 3) C D E F G
C. Polycarp Restores Permutation题意:给你序列相邻两项的差值,现在要求你恢复这个序列。题解:我们给差值序列qiq_iqi做前缀和,明显qiq_iqi最小的位置就是111的位置,因此我们就可以通过111的位置来推出其它位置。代码#include<bits/stdc++.h>#define DEBUG(x) std::cerr <<...原创 2019-03-21 18:16:33 · 322 阅读 · 0 评论 -
Codeforces Round #267 (Div. 2) C. George and Job(DP)
C. George and Job题意:在序列aia_iai中选出kkk个不相交大小为mmm的区间,使其区间和最大。题解:dp[i][j]dp[i][j]dp[i][j]表示在前jjj个数里选iii个区间的最大区间和。则有dp[i][j]=max(dp[i−1][j−m]+sum[j]−sum[j−m],dp[i][j−1])dp[i][j] = max(dp[i - 1][j - m] +...原创 2019-04-15 23:38:30 · 207 阅读 · 0 评论 -
Codeforces Round #552 (Div. 3) F - Shovels Shop(DP + 贪心)
F - Shovels Shop题意:有nnn件物品每个价值aia_iai,mmm个offer(x,y)offer(x,y)offer(x,y),对于每个offerofferoffer即,买xxx件物品,可以优惠掉其中yyy件最便宜的。问买kkk个物品的最少花费。题解:首先,对于每个offerofferoffer,xxx相同时,肯定yyy越大越好。其次,这些优惠肯定是从这nnn个物品中前...原创 2019-04-17 21:41:44 · 364 阅读 · 0 评论 -
Codeforces Round #552 (Div. 3) G. Minimum Possible LCM(埃氏筛法枚举GCD)
G. Minimum Possible LCM题意:求nnn个数中最小公倍数数值最小的两个数的下标。题解:参考于https://blog.csdn.net/qq_41157137/article/details/89353527,因为LCM(x,y)=x×ygcd(x,y)LCM(x,y) = \frac{x\times y}{gcd(x,y)}LCM(x,y)=gcd(x,y)x×y对于...原创 2019-04-17 23:50:33 · 282 阅读 · 0 评论 -
Codeforces Round #551 (Div. 2) D. Serval and Rooted Tree 树形dp
D. Serval and Rooted Tree题意:含有nnn个节点,并且以111为根节点的树的每个节点都有一个操作,用010101表示,如果为111,那么就取这个节点的孩子中的最大值,否则取孩子的最小值。问,如何安排可以使得根节点111的值最大。注意如果叶节点有kkk个,那么取值必须是1→k1\rightarrow k1→k。题解:如果去枚举叶子节点的取值肯定是不可以的了,复杂度过于高,...原创 2019-04-15 16:15:45 · 256 阅读 · 0 评论 -
GYM101879 2018 USP Try-outs G - Running a penitentiary(线段树)
G. Running a penitentiary题意:每个人都有相应的管理区间[l,r][l,r][l,r],两个操作:询问第a,a+1,a+2...,ba,a+1,a+2...,ba,a+1,a+2...,b个人的管理区间交集。将第iii个人的管理区间变为[x,y][x,y][x,y]题解:多个区间的交集为[max(l),min(r)][max(l),min(r)][max(l),...原创 2019-09-04 23:24:47 · 301 阅读 · 0 评论 -
Codeforces Round #590 (Div. 3) F - Yet Another Substring Reverse(状压dp)
F - Yet Another Substring Reverse题意:给出一个字符串,有一次逆置任意子串的机会,询问一个最长子串的长度,要求子串每一个字母都不相同。题解:问题可以看成找两个不相交的子串,不同字母个数之和最大。因为不同字符个数最大为202020,考虑预处理出每一个区间的值,并维护每一个子集的最大值(也就是连续且不同字符个数最多),然后枚举两两子集之和即可。代码#includ...原创 2019-10-04 18:32:39 · 458 阅读 · 0 评论 -
CF 933A - A Twisty Movement(DP)
933A - A Twisty Movement题意:给出一个只有111和222组成的序列,有一次可以将区间[l,r][l,r][l,r]逆置的机会,询问最长不下降子序列长度。题解:dp[i][j][k]dp[i][j][k]dp[i][j][k]求出以kkk结尾的区间[i,j][i,j][i,j]的最长不上升子序列长度。然后答案就是pre[i−1]+max(dp[i][j][1],dp[i]...原创 2019-10-04 21:22:09 · 458 阅读 · 0 评论 -
Educational Codeforces Round 55 (Rated for Div. 2) A B C
A. Vasya and Book题解:分三种情况,看哪一种最优即可。是直接翻还是翻到最左再到yyy,还是翻到最右再到yyy。代码#include&lt;bits/stdc++.h&gt;using namespace std;int main(){#ifndef ONLINE_JUDGE freopen("input.in","r",stdin);#endif in...原创 2018-12-03 23:49:35 · 177 阅读 · 0 评论 -
Codeforces Round #523 (Div. 2) A B C
A. Coins题解:签到代码#include<bits/stdc++.h>typedef long long LL;using namespace std;int main(){#ifndef ONLINE_JUDGE freopen("input.in","r",stdin);#endif LL n,s, ans = 0; cin>>n&...原创 2018-11-25 22:52:31 · 154 阅读 · 0 评论 -
CodeForces - 908C (暴力枚举)
C. New Year and Curlingtime limit per test: 2 seconds memory limit per test: 256 megabytes input: standard input output: standard outputCarol is currently curling.She has n disks each with ra...原创 2018-03-08 17:03:04 · 333 阅读 · 0 评论 -
Codeforces Round #469 (Div. 2) C. Zebras
C. Zebrastime limit per test: 1 second memory limit per test: 512 megabytes input: standard input output: standard outputOleg writes down the history of the days he lived. For each day he decid...原创 2018-03-12 23:39:39 · 216 阅读 · 0 评论 -
2018-2019 ICPC, NEERC, Southern Subregional Contest (Online Mirror, ACM-ICPC Rules) H(暴力map)
BerOS File Suggestion题解:这道题说实话有点想多了,还考虑用trietrietrie树去做(虽然有神犇这样做的),可惜蒻根本不会trietrietrie树。实际上用mapmapmap统计子串出现次数并记录子串的原串就好了。代码#include&lt;bits/stdc++.h&gt;using namespace std;map&lt;string,int&gt; ...原创 2018-10-23 00:28:19 · 553 阅读 · 0 评论 -
Educational Codeforces Round 53 (Rated for Div. 2)D(模拟)
D. Berland Fair题解:考虑到每次都会有重复过程。因此我们首先可以算出一轮下来的花费和收获,然后算出这一次会循环多少轮,再给TTT对一轮的花费取模就可以算出剩下的钱。以此反复,继续算下一次的花费和收获。代码#include<bits/stdc++.h>typedef long long LL;using namespace std;const int N = 2...原创 2018-10-27 00:37:28 · 143 阅读 · 0 评论 -
Educational Codeforces Round 53 (Rated for Div. 2) C(二分)
C. Vasya and Robot题解:考虑去根据左端点二分答案即可。代码#include<bits/stdc++.h>using namespace std;const int N = 200100;int U[N],R[N],L[N],D[N];int n,x,y,sx,sy;bool ok(int s,int t){ int ret = t - s + 1,...原创 2018-10-27 00:43:30 · 125 阅读 · 0 评论 -
Codeforces Round #519 by Botan Investments C(模拟)
C. Smallest Word题解:自己随便列几组数据模拟一下就会发现,无论如何最后总能翻成类似aaaabbbbbaaaabbbbbaaaabbbbb这样,即aaa全在前面,bbb在后面。数据量又小因此可以暴力模拟。还有解法就是只要遇到当前字符与下一个不同,就翻转一次。代码模拟#include&lt;bits/stdc++.h&gt;int bit[1010],flip[1010];...原创 2018-10-30 00:00:35 · 154 阅读 · 0 评论 -
CodeForces - 476D Dreamoon and Sets(找规律或者数学)
Dreamoon and Sets题解:首先,一个集合只有四个数,要求两两gcdgcdgcd为kkk,那么除以kkk即代表要求两两互质,再想到连续的三个数一定互质,第四个再+2+2+2即可。代码#include<bits/stdc++.h>using namespace std;int a[10010][4];int main(){#ifndef ONLINE_J...原创 2018-10-30 00:14:25 · 307 阅读 · 0 评论 -
Codeforces Round #519 by Botan Investments D
D. Mysterious Crime题解:因为是nnn个不同的数,所以先预处理出第一行每个数字的下一个数字是什么,然后去剩下的m−1m-1m−1行去寻找满足loc[num[i][j]].nxt=num[i][j+1]loc[num[i][j]].nxt = num[i][j+1]loc[num[i][j]].nxt=num[i][j+1],然后cnt++cnt++cnt++,这样最后找到这第一...原创 2018-11-01 01:13:40 · 194 阅读 · 0 评论 -
CodeForces - 476C-Dreamoon and Sums(数学思维)
C. Dreamoon and Sums题解:设(1)x=q⋅b+rx = q\cdot b + r \tag{1}x=q⋅b+r(1)则有(2)div(x,b)=q,&amp;MediumSpace;mod(x,b)=r∈[1,b−1]div(x,b) = q ,\: mod(x,b) = r\in[1,b-1]\tag{2}div(x,b)=q,mod(x,b)=r∈[1,b−1](2)...原创 2018-11-07 00:48:15 · 241 阅读 · 0 评论 -
Mail.Ru Cup 2018 Round 2 A B
A. Metro题解:水题。然而我理解错题意了,我枯了QAQ…还以为必须从b[s]b[s]b[s]下,结果是只要在sss下即可…代码#include&lt;bits/stdc++.h&gt;using namespace std;int a[10010],b[10010];int main(){#ifndef ONLINE_JUDGE freopen("input.in"...原创 2018-11-12 01:25:34 · 438 阅读 · 0 评论 -
Codeforces Round #519 by Botan Investments E
E. Train Hard, Win Easy题解:考虑iii和jjj一起打时,如果iii打第一道,jjj打第二道,就有ai+bj&lt;aj+bia_i+b_j &lt;a_j + b_iai+bj<aj+bi,所以可得ai−bi&lt;aj−bja_i-b_i &lt;a_j - b_jai−bi<aj−bj,因此我们只需要根据ai...原创 2018-11-08 23:34:03 · 177 阅读 · 0 评论 -
Educational Codeforces Round 54 (Rated for Div. 2)A B C D
A. Minimizing the String题意:问最多删去一个字符,如何变为字典序最小的串。题解:明显是贪心了,从前往后删,找到第一个s[i]&gt;s[i+1]s[i] &gt; s[i + 1]s[i]>s[i+1]的删去即可。找不到就删去最后一个字符。#include<bits/stdc++.h>using namespace std;i...原创 2018-11-14 12:06:37 · 172 阅读 · 0 评论 -
Codeforces Round #521 (Div. 3) ABCD
A. Frog Jumping题解:水题。代码#include<bits/stdc++.h>typedef long long LL;using namespace std;int main(){#ifndef ONLINE_JUDGE freopen("input.in","r",stdin);#endif int t; cin>>t; ...原创 2018-11-20 00:09:15 · 195 阅读 · 0 评论 -
Codeforces Round #524 (Div. 2)A B C
A. Petya and Origami题解:签到。#include<bits/stdc++.h>typedef long long LL;using namespace std;int main(){#ifndef ONLINE_JUDGE freopen("input.in","r",stdin);#endif int n,k; cin>>...原创 2018-11-25 21:40:00 · 172 阅读 · 0 评论 -
CodeForces - 913D(贪心+优先队列)
D. Too Easy Problemstime limit per test:2 seconds memory limit per test:256 megabytes input:standard input output:standard outputYou are preparing for an exam on scheduling theory. The exam wil...原创 2018-03-07 18:16:02 · 425 阅读 · 0 评论