Codeforces
No__stop
这个作者很懒,什么都没留下…
展开
-
CF 356A Knight Tournament(并查集)
CF 356A Knight Tournament(并查集)题意:区间染色问题。解题思路:比赛时用线段树无脑A了。后来用并查集搞了下。要注意的地方是自己不能染,所以分了两段处理。#include#include#includeusing namespace std ;const int maxn = 300003 ;int fa[maxn] , col[maxn] ;原创 2013-11-01 16:12:31 · 1414 阅读 · 0 评论 -
Codeforces Round #230 (Div. 1) C题 (复合矩阵连乘)
这题关键是要想到把系数矩阵复合到原来的斐波那契矩阵当中,然后矩阵连乘。代码:#include #include #include #include #include #include #include #include #define ll __int64#define lson l , m , rt << 1#define rson m + 1 , r , rt <<原创 2014-02-19 14:29:41 · 1553 阅读 · 1 评论 -
Codeforces round 146 C - Cyclical Quest(后缀自动机)
Codeforces round 146 C - Cyclical Quest题意:给出一个字符串s,这里我称之为母串,然后再给出n个子串,n解题思路:拿到这题,第一想法就是后缀自动机。。做法是这样的,先给母串建sam,为了解决同构问题,我们将读进来的子串复制一遍,除去最后一个字符。然后拿复制好的字串去自动机上跑,要记录的是当前能匹配的最长长度是多少,如果能匹配的长度大于等原子串长度,原创 2013-11-26 18:48:07 · 1487 阅读 · 1 评论 -
Codeforces Round #220 (Div. 2)
Codeforces Round #220 (Div. 2)还是那句话,真正的高手,在数据有问题的情况下也能保证出成绩。。但很显然,我不是那种人。只能在赛后补题的弱渣,无话可说了。A题:比赛的时候,可能大家想的太简单了,也都过了pretest。前面的做法就是看在x轴y轴的差距都能保证整除a,b的情况下,走的步数差为偶数。这个可以理解为用某一个方向上的2步来调剂另一方向上的1步。那么这里就要原创 2013-12-19 14:17:37 · 1173 阅读 · 0 评论 -
Codeforces Round #219 (Div. 1)
要期末考了,只能间歇性的刷刷题了。。Codeforces Round #219 (Div. 1)A题:比赛的时候逗逼了,半个小时才整出来,还错了一发。。我是这样贪心的,首先排好序,最好的情况就是后一半把前一半都包起来了,那么,我们就分成两半,然后就从两半的大的那头开始,选择的策略是用大的包大的,总之就是要让大的那半的最大的都用上,如果大的都用不上,那么何谈小的呢。。代码:https原创 2013-12-14 12:09:47 · 1367 阅读 · 0 评论 -
2013-2014 ACM ICPC Central European Regional Contest (CERC 13) K题(dp)
2013-2014 ACM ICPC Central European Regional Contest (CERC 13) K题(dp)题意:给出n个,长度为2的限制出现的字符串,构造一个字符正方形,使得每一行从左往右读,每一列从上往下读都不会出现限制字符串。解题思路:先把题目转换一下,26个字母两两组合,一共是26*26种方法,去掉限制的,剩下的就是能用的了。开个26*26的数组,把不原创 2013-11-28 16:16:20 · 1775 阅读 · 0 评论 -
Codeforces Round #131 (Div. 1)
A题:某个人要玩一个游戏,这个游戏有n关,他有三台电脑,每个游戏要在特定的某一台上玩,玩某一关游戏之前,他必须先打出另一些关的游戏,玩一关需要一小时,从一台电脑转移到另一台电脑也需要一个时间,分别是1->2,1小时,2->3,一小时,3->1,一小时,2->1,2小时,1->3,2小时,3->2,2小时。问打通关要几个小时?解题思路:基本的贪心思路是,我们走到某一台电脑上时,就把这台能玩的都玩原创 2013-11-11 22:56:44 · 1432 阅读 · 0 评论 -
Codeforces Round #211 (Div. 2)
A题:将一个数字在算盘上表示。解题思路:算盘也是10进制的,所以就很简单了,当然不是10进制就稍微改一下好了。代码:B题:求一个数列中,连续k个数的和最小的一段的其实端点。解题思路:预处理前缀和,然后暴力枚举过去就好了。代码:C题:一个字符串,不允许出现连续的三个相同的,或者连续两次出现两个相同原创 2013-11-11 21:47:08 · 1183 阅读 · 0 评论 -
codeforces round 214 div2(全)
codeforces round 214 div2这场比赛,做的实在是有够挫的了。。。A题:题意坑。先给一个n,然后四行数,每行四个,找出其中的一行,满足该行中,前两个数中小的那个与后两个数中小的那个相加之后,和是否小于等于n,满足的话,就分配n,使得第一部分大于等于前两个中小的那个,另一部分大于等于后两个中的小的那个。说白了其实就是做个减法。。B题:也是题意坑,不过这题后面有hint原创 2013-11-25 16:55:45 · 1118 阅读 · 0 评论 -
CF round167 Div1 C Dima and Horses
CF round167 Div1 C Dima and Horses题意:给出n匹马,他们之间,有m个矛盾关系,一匹马最多跟三匹马之间会有矛盾,然后把这n匹马放到两个房间,要求没个房间里,每一匹马最多跟另外一匹马有矛盾,该如何分配这n匹马。解题思路:每次把矛盾关系大于等于2的加入到队列当中,然后取出队列的元素,将其标号取反,再去更新与它连接的节点。为什么可以这样做呢?因为如果一匹马跟两匹以原创 2013-11-24 20:49:58 · 1294 阅读 · 0 评论 -
Codeforces Round #185 (Div. 1)
Codeforces Round #185 (Div. 1)A题:计算一个坐标系中n个点中,距离最短的两个点的距离。Tiny同学想到了一种很挫的方法,枚举一个点i,再从i+1到n枚举另一个点j,如果发现j的横坐标与x的很坐标的差大于之前所有的的最小距离,就break掉j的枚举。然后问你,是否能构造一种数据,让他的这个算法超时,超时的概念是,枚举的总次数大于给出的一个m。解题:首先可以算一算原创 2013-11-19 22:45:34 · 176 阅读 · 0 评论 -
CF185 div1 B. Cats Transport(单调队列斜率优化dp)
CF185 div1 B. Cats Transport题意:有m只小猫,n座山,p个员工。第i座山到跟前一座山的距离距离是d[i]。第i只小猫在第h[i]座山上玩,它玩好的时间是t[i]。然后p个员工从第1座山出发,一路过去,把玩好,在等待的小猫收起来。问小猫的最少等待时间和是多少。解题思路:我们考虑第i只,和第j只小猫的选择,第i只小猫距离起点的距离为a[i](这个很容易预处理),它玩原创 2013-11-19 22:39:19 · 1686 阅读 · 0 评论 -
Codeforces Round #124 (Div. 1)
Codeforces Round #124 (Div. 1)A题:找一个字符串的字典序最大的子序列。注意,这里是求子序列,不是子串。解法是维护一个单调栈,就是说每次来一个字符,就从栈顶开始,如果当前字符比栈顶元素大,就踢掉栈顶元素,一直踢到小于等于为止,最后把栈里的元素依次输出就好了。代码:B题:给出一个地图,和一个起始点。这个地图可以按这个形原创 2013-11-19 21:09:52 · 1142 阅读 · 0 评论 -
Codeforces Round #210 (Div. 1)
Codeforces Round #210 (Div. 1) A&&BA题:给你一个未知的数列,然后对这个数列有两个操作,1询问区间最值。2给一个区间所有的数加上某一个值。注意到数列是未知的,我们知道的是数列的每一个最终值分别是什么,以及每一步操作,对于1,知道最值,对于2,就是[l,r],还有加上的那个值了。解题思路:倒着往回推,如果是1,那么就给这段区间全部赋为c,是2,就给区间的每个原创 2013-11-15 23:27:26 · 1657 阅读 · 0 评论 -
Codeforces 292D Connected Components (并查集)
Codeforces 292D Connected Components (并查集)题意:给出一个无向图,然后k个询问,询问[li,ri],转换后的意思就是如果把第li条边到第ri条边都去掉的话,有多少个联通块。解题思路:建一个并查集类DSU。然后开两个DSU数组,L[i]表示把第1到第i条边都加上几个联通块,R[i]表示第n到第i条边都加上有几个联通块。然后就可以搞了。#incl原创 2013-11-01 18:38:53 · 1543 阅读 · 0 评论 -
Codeforces Round #189 (Div. 1)
Codeforces Round #189 (Div. 1)A题:找规律。。字符串长度为n,那么ans=sum( ( 2^i ) * ( 2 ^ (n-1) ),if s[i] == '1' ;没仔细想过为什么,还望有知道的大神指教一下。代码:B题:倒着往前推,用一个dp[i]表示i如果把i后面都合并掉,那么要合并几次,然后用单调栈保存下标,单调性原创 2013-11-15 23:08:42 · 1448 阅读 · 0 评论 -
D - Minesweeper 1D
Codeforces Round #237 (Div. 2) D - Minesweeper 1D题意:类似于扫雷游戏,但只有行,有些格子是已知的,有些未知,‘?’表示未知,其余为已知。'0'表示左右都没有雷,'1'表示左右一共有一个雷,'2'表示左右一共有两个雷,‘*’表示本身就是雷。问合法的情况一共有多少种?解题思路:这似乎也是可以算作是某一类dp了吧,我已经做到过若干道类似的题了原创 2014-03-20 14:26:08 · 2098 阅读 · 1 评论