随笔分类 -  Codeforces

摘要:Codeforces Round #290 (Div. 2) C题:给你n个字符串要求你重新排列小写字母的字典序,要求使给的字符串按字典序从小到大排列。 思路:很容易想到相邻两串找到第一个不相同的建边,然后跑拓扑序就好啦。 1 #include<bits/stdc++.h> 2 #define fi 阅读全文
posted @ 2018-03-29 00:42 NotNight 阅读(243) 评论(0) 推荐(0)
摘要:D - Kay and Snowflake 题目大意:给你一棵数q个询问,每个询问给你一个顶点编号,要你求以这个点为根的子树的重心是哪个节点。 定义:一棵树的顶点数为n,将重心去掉了以后所有子树的顶点的个数的两倍不会超过n。 性质 1 :树中所有点到某个点的距离和中,到重心的距离和是最小的,如果有两 阅读全文
posted @ 2018-03-15 19:13 NotNight 阅读(156) 评论(0) 推荐(0)
摘要:Codeforces Round #469 (Div. 2) 难得的下午场,又掉分了。。。。 Problem A: 怎么暴力怎么写。 1 #include<bits/stdc++.h> 2 #define fi first 3 #define se second 4 #define mk make_ 阅读全文
posted @ 2018-03-09 23:49 NotNight 阅读(126) 评论(0) 推荐(0)
摘要:Lock Puzzle 题目大意:给你两个字符串一个s,一个t,长度<=2000,要求你进行小于等于6100次的shift操作,将s变成t, shift(x)表示将字符串的最后x个字符翻转后放到最前面。 思路:不会写,看了题解。。。 因为长度为3000,操作为6500,我们考虑每三次操作将一个字符放 阅读全文
posted @ 2018-03-05 23:47 NotNight 阅读(136) 评论(0) 推荐(0)
摘要: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 阅读全文
posted @ 2018-03-05 17:21 NotNight 阅读(245) 评论(0) 推荐(0)
摘要:D - Persistent Bookcase 题目大意:有三种操作,第一种操作,在i 个书架,j个位置放一本书,第二种操作,取下第i个书架,j 个位置的书,第三种操作, 把第i个书架所有没有书的位置放上书,有书的位置拿掉数,第四种操作,回到第k个操作,问你每次操作后书的总数。 两种方法:1、离线之 阅读全文
posted @ 2018-02-23 14:36 NotNight 阅读(205) 评论(0) 推荐(0)
摘要:题目大意:给你一个由0-9组成的字符串,有m个询问,两种操作,第一种将l到r的字符全部变成c,第二种问l到r这段 字符串的循环节是不是d。 思路:首先我们要知道怎么判断字符串的循环节的长度是不是d,如果这个字符串小于等于d,那么肯定是的,否则,如果l 到 r-d 和l+d 到 r 这两段字符串则循环 阅读全文
posted @ 2018-02-18 23:16 NotNight 阅读(149) 评论(0) 推荐(0)
摘要:D - Inna and Sequence 线段数维护区间有几个没有被删除的数,利用线段树的二分找第几个数在哪里,然后模拟更新就好啦。 阅读全文
posted @ 2018-02-06 16:46 NotNight 阅读(146) 评论(0) 推荐(0)
摘要:题目大意:有m (m<=1e9) 个相同的块,每个块里边有n个数,每个数的范围是1-9,从每个块里边取出来一个数组成一个数,让你求组成的方案中 被x取模后,值为k的方案数。(1<=k<x<=100) 思路:刚开始把m看成了1e5,写了一发数位dp,果断RE,然后我在考虑从当块前状态转移到下一个块状态 阅读全文
posted @ 2018-02-04 17:51 NotNight 阅读(126) 评论(0) 推荐(0)
摘要:C - Wet Shark and Flowers 题目大意:有n个人围成一个圈,每个在l[ i ] 到 r[ i ]之间随机出一个数,如果这个数和旁边的一个人出的数的积是p的倍数,则他得到1000元,如果 和两个人的积都是p (p一定为素数)的倍数,则他得到2000元,让你求所有人得到的钱的期望。 阅读全文
posted @ 2018-02-04 17:44 NotNight 阅读(135) 评论(0) 推荐(0)
摘要: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 阅读全文
posted @ 2018-01-07 16:59 NotNight 阅读(157) 评论(0) 推荐(0)
摘要: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 阅读全文
posted @ 2017-12-23 16:22 NotNight 阅读(195) 评论(0) 推荐(0)
摘要:Problem D 80-th Level Archeology 题目大意:有n行,每行有ki 个数,你没次能进行一次操作就是将所有数加1,这些数的上限是c,如果大于c则变成1, 问你有没有存在一个操作次数m使得每行的字典序上升。 思路:我们找出每两行之间决定他们字典序大小的两个数,每两个都能求出一 阅读全文
posted @ 2017-12-05 20:34 NotNight 阅读(199) 评论(0) 推荐(0)
摘要:题目大意:给你n个点n条边的有向图,你可以任意地反转一条边的方向,也可以一条都不反转,问你有多少种反转的方法 使图中没有环。 思路:我们先把有向边全部变成无向边,每个连通图中肯定有且只有一个环,如果这个连通图里边有n个点,环由m个元素 构成,那么这个连通图的反转方法数为,(2^(n-m)) * (2 阅读全文
posted @ 2017-11-24 18:39 NotNight 阅读(203) 评论(0) 推荐(0)
摘要:题目大意:有n个点,由m种颜料,有些点没有涂色,有些点已经涂色了,告诉你每个点涂m种颜色的价格分别是多少, 让你求将这n个点分成k段最少需要多少钱。 思路:动态规划,我们另dp[ i ][ j ][ k ] 表示到i个点为止,分成j段,最后一段的颜色为k的最少值,然后就能很容易地 写出状态转移方程。 阅读全文
posted @ 2017-11-23 17:02 NotNight 阅读(202) 评论(0) 推荐(0)
摘要:题目大意:给你n个数,最多有k次操作,每次操作可以将一个任意一个数加上x或者减去x,问你经过k次操作 之后,满足n个数乘积最小的改变后的序列。 思路:我们先考虑原序列由奇数个负数,那么我们只要将n个数的绝对值全部加入优先队列,然后每次操作取出 最小值,如果是负数能减去x,如果是正数加上x,这样进行将 阅读全文
posted @ 2017-11-22 12:58 NotNight 阅读(147) 评论(0) 推荐(0)
摘要:我感觉这场CF还是比较毒的,虽然我上分了。。。 Problem A QAQ 题目大意:给你一个由小写字母构成的字符串,问你里面有多少个QAQ。 思路:找字符串中的A然后找两边的Q即可,可以枚举找Q,也可以前缀和优化一下。 1 #include<bits/stdc++.h> 2 using names 阅读全文
posted @ 2017-11-21 13:20 NotNight 阅读(226) 评论(0) 推荐(0)
摘要: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 阅读全文
posted @ 2017-10-26 16:46 NotNight 阅读(188) 评论(0) 推荐(0)
摘要: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 阅读全文
posted @ 2017-10-11 13:11 NotNight 阅读(177) 评论(0) 推荐(0)
摘要:Kyoya and Permutation 这题想了好久才写出来,没看题解写出来的感觉真的好爽啊!!! 题目大意:题意我看了好久才懂,就是给你一个序列,比如[4, 1, 6, 2, 5, 3],第一个数字 的值是4,那么我们找下标为4的数( 跟链表差不多意思 ),然后一直找到底,这些数分为一类, 如 阅读全文
posted @ 2017-09-19 14:05 NotNight 阅读(191) 评论(0) 推荐(0)