随笔分类 - Codeforces
摘要:Codeforces Round #290 (Div. 2) C题:给你n个字符串要求你重新排列小写字母的字典序,要求使给的字符串按字典序从小到大排列。 思路:很容易想到相邻两串找到第一个不相同的建边,然后跑拓扑序就好啦。 1 #include<bits/stdc++.h> 2 #define fi
阅读全文
摘要:D - Kay and Snowflake 题目大意:给你一棵数q个询问,每个询问给你一个顶点编号,要你求以这个点为根的子树的重心是哪个节点。 定义:一棵树的顶点数为n,将重心去掉了以后所有子树的顶点的个数的两倍不会超过n。 性质 1 :树中所有点到某个点的距离和中,到重心的距离和是最小的,如果有两
阅读全文
摘要:Codeforces Round #469 (Div. 2) 难得的下午场,又掉分了。。。。 Problem A: 怎么暴力怎么写。 1 #include<bits/stdc++.h> 2 #define fi first 3 #define se second 4 #define mk make_
阅读全文
摘要:Lock Puzzle 题目大意:给你两个字符串一个s,一个t,长度<=2000,要求你进行小于等于6100次的shift操作,将s变成t, shift(x)表示将字符串的最后x个字符翻转后放到最前面。 思路:不会写,看了题解。。。 因为长度为3000,操作为6500,我们考虑每三次操作将一个字符放
阅读全文
摘要:A、B都是暴力搞一搞。 A: 1 #include<bits/stdc++.h> 2 #define fi first 3 #define se second 4 #define mk make_pair 5 #define pii pair<int,int> 6 #define read(x) s
阅读全文
摘要:D - Persistent Bookcase 题目大意:有三种操作,第一种操作,在i 个书架,j个位置放一本书,第二种操作,取下第i个书架,j 个位置的书,第三种操作, 把第i个书架所有没有书的位置放上书,有书的位置拿掉数,第四种操作,回到第k个操作,问你每次操作后书的总数。 两种方法:1、离线之
阅读全文
摘要:题目大意:给你一个由0-9组成的字符串,有m个询问,两种操作,第一种将l到r的字符全部变成c,第二种问l到r这段 字符串的循环节是不是d。 思路:首先我们要知道怎么判断字符串的循环节的长度是不是d,如果这个字符串小于等于d,那么肯定是的,否则,如果l 到 r-d 和l+d 到 r 这两段字符串则循环
阅读全文
摘要:D - Inna and Sequence 线段数维护区间有几个没有被删除的数,利用线段树的二分找第几个数在哪里,然后模拟更新就好啦。
阅读全文
摘要:题目大意:有m (m<=1e9) 个相同的块,每个块里边有n个数,每个数的范围是1-9,从每个块里边取出来一个数组成一个数,让你求组成的方案中 被x取模后,值为k的方案数。(1<=k<x<=100) 思路:刚开始把m看成了1e5,写了一发数位dp,果断RE,然后我在考虑从当块前状态转移到下一个块状态
阅读全文
摘要:C - Wet Shark and Flowers 题目大意:有n个人围成一个圈,每个在l[ i ] 到 r[ i ]之间随机出一个数,如果这个数和旁边的一个人出的数的积是p的倍数,则他得到1000元,如果 和两个人的积都是p (p一定为素数)的倍数,则他得到2000元,让你求所有人得到的钱的期望。
阅读全文
摘要:A - Elections 1 #include<bits/stdc++.h> 2 using namespace std; 3 int n,m,num[105],a[105][105]; 4 int main() 5 { 6 scanf("%d%d",&n,&m); 7 for(int i=1;i
阅读全文
摘要:Problem A Arrays 思路:水一水。 1 #include<bits/stdc++.h> 2 using namespace std; 3 const int N=1e5+5; 4 int n1,n2,k,m,a[N],b[N]; 5 int main() 6 { 7 scanf("%d
阅读全文
摘要:Problem D 80-th Level Archeology 题目大意:有n行,每行有ki 个数,你没次能进行一次操作就是将所有数加1,这些数的上限是c,如果大于c则变成1, 问你有没有存在一个操作次数m使得每行的字典序上升。 思路:我们找出每两行之间决定他们字典序大小的两个数,每两个都能求出一
阅读全文
摘要:题目大意:给你n个点n条边的有向图,你可以任意地反转一条边的方向,也可以一条都不反转,问你有多少种反转的方法 使图中没有环。 思路:我们先把有向边全部变成无向边,每个连通图中肯定有且只有一个环,如果这个连通图里边有n个点,环由m个元素 构成,那么这个连通图的反转方法数为,(2^(n-m)) * (2
阅读全文
摘要:题目大意:有n个点,由m种颜料,有些点没有涂色,有些点已经涂色了,告诉你每个点涂m种颜色的价格分别是多少, 让你求将这n个点分成k段最少需要多少钱。 思路:动态规划,我们另dp[ i ][ j ][ k ] 表示到i个点为止,分成j段,最后一段的颜色为k的最少值,然后就能很容易地 写出状态转移方程。
阅读全文
摘要:题目大意:给你n个数,最多有k次操作,每次操作可以将一个任意一个数加上x或者减去x,问你经过k次操作 之后,满足n个数乘积最小的改变后的序列。 思路:我们先考虑原序列由奇数个负数,那么我们只要将n个数的绝对值全部加入优先队列,然后每次操作取出 最小值,如果是负数能减去x,如果是正数加上x,这样进行将
阅读全文
摘要:我感觉这场CF还是比较毒的,虽然我上分了。。。 Problem A QAQ 题目大意:给你一个由小写字母构成的字符串,问你里面有多少个QAQ。 思路:找字符串中的A然后找两边的Q即可,可以枚举找Q,也可以前缀和优化一下。 1 #include<bits/stdc++.h> 2 using names
阅读全文
摘要:Problem A 水题 水一水 1 #include<bits/stdc++.h> 2 using namespace std; 3 char b[5][10],a[105]; 4 int main() 5 { 6 strcpy(b[0],"Danil"); 7 strcpy(b[1],"Olya
阅读全文
摘要:Problem A Between the Offices 水题,水一水。 1 #include<bits/stdc++.h> 2 using namespace std; 3 int n; 4 char s[200]; 5 int main() 6 { 7 cin>>n; 8 int cnt1=0
阅读全文
摘要:Kyoya and Permutation 这题想了好久才写出来,没看题解写出来的感觉真的好爽啊!!! 题目大意:题意我看了好久才懂,就是给你一个序列,比如[4, 1, 6, 2, 5, 3],第一个数字 的值是4,那么我们找下标为4的数( 跟链表差不多意思 ),然后一直找到底,这些数分为一类, 如
阅读全文

浙公网安备 33010602011771号