
Codeforces
Lei2015_
这个作者很懒,什么都没留下…
展开
-
CF Round216
#include#include#include#includeusing namespace std;const int MAX=200000;struct edge{ int to; int type; edge(int a,int b) { to=a; type=b; } edge() {}};vector res;vector G[MAX];in原创 2013-11-30 01:17:37 · 661 阅读 · 0 评论 -
Codeforces Round225 DIV2 C
这题出的棒极了。深刻的体会到...会拍版,会写各种数据结构算什么!!题目大意: 一排牛,要挤奶,牛 有的往 左看,有的往右看。当牛看到其他牛被挤奶时,奶产量会降低。问最少降低多少?想到贪心非常容易,每次找惊吓其他牛最少的那头开始,问题是怎么找一个挤奶的序列呢?我们来研究任意两头牛的关系对于 A B (A 在 B 的左边)A 左 B 右 随便挤都不会有问题A 右 B 右原创 2014-01-24 01:27:30 · 624 阅读 · 0 评论 -
Codeforces Round 200 Div1 D Water Tree (树上线段树)
本来早就应该做的,拖拖拖一直拖到了现在。这个题信息量真大。 树上的括号序列,就是按照 dfs 的时序,存在包含关系的节点有祖先儿子关系。 这个题中有三个操作 1 是向某节点加水, 2 是抽水 , 3 是观察 加水之后,所有的儿子也都加满水,放水之后,所有的父亲也都被放水。 这里 data[x][0] 代表 x 是最后被加满时间 data[x][1]原创 2014-01-19 01:07:49 · 752 阅读 · 0 评论 -
CodeForces Round 224 B (二分或图论) C (等差数列 水题)
昨天的 B 题的确有点意思.....他的题目很含蓄 .... 给你 A 和 C ,C 每秒减 1 ,A 的话给你三个数 b, x, w, 若 b >= x ,b = b - x,否则 a = a - 1, b = w - (x - b)(每秒只完成一个分支)。后面那个式子展开后就发现不管在 if 的哪个分支里面,b 都是减去 x 的,只是当 b a = a - k, c = c - n原创 2014-01-18 21:18:53 · 688 阅读 · 0 评论 -
Codefordes Round 227 C YY 题。。
题意http://codeforces.com/problemset/problem/387/C从前向后找数(单个的或带零的),若从头开始的数大于当前数答案加一,可拆分,否则不可拆分,答案变成1#include#include#include#include#include#includeusing namespace std;#define MAX 200000原创 2014-02-01 11:07:30 · 519 阅读 · 0 评论 -
CF Round231C (ZWJ 神构造)
直接秒杀我的二分最大值的想法。一排排的先排11 ,关键在,10 和 01 上,只有排完 11 后面开始排10的时候要注意01从后往前排,之后就随意拍排 00#include #include #include #include #include #include using namespace std;#define INF 0x3f3f3f3f#define MAX 1原创 2014-02-21 02:22:48 · 527 阅读 · 0 评论 -
Codeforces Round 232 Div 1 C On Changing Tree 树状数组 或 线段树
题目地址http://codeforces.com/problemset/problem/396/C树状数组,对于搞括号序列还是有一手的,关键是因为括号序列的题老是逮着某个点询问,而他的更新又往往是涉及一棵子树。当然,树状数组的更新也要满足可加性的。对于向某棵子树上的节点均增加 X 这种操作,我们可以在括号序列的左端点增加x,右端点+1处增加 -x,这样查询到内部的时候就会增加x,原创 2014-02-28 22:33:48 · 599 阅读 · 0 评论 -
CodeForces Round 230 Div2 D
一道简单DP就汉诺塔,给出从 x 柱子 移动到 y 柱子的耗费,求在 n 个盘子的情况下,完成 汉诺塔最少需要多少耗费。首先一个盘子的情况原创 2014-02-19 22:22:34 · 501 阅读 · 0 评论 -
CF 400 C 矩阵的旋转
http://codeforces.com/problemset/problem/400/C在笛卡尔坐标系中,直接可以使用旋转矩阵,只是这个东西推出来不好放在平时熟悉的 n 行 m 列的棋盘中。在棋盘中像是题中这么旋转的,经过观察,其实就是矩阵转置之后再行交换,或者是列交换就是。注意交换棋盘的行数和列数。注意。。如果只写一个旋转函数的话。。那个右旋转次数*3会超过 int...原创 2014-03-09 20:37:54 · 600 阅读 · 0 评论 -
379C - New Year Ratings Change 贪心
题目链接 http://codeforces.com/problemset/problem/380/B给出所有人的期望分数,让所有人分数之和最小,且每人分不同这个,给数字排个序,然后从小开始,看看他和之前那个数的关系,要是小于等于的话,就让这个数字大一点#include#include#include#include#include#includeusing namesp原创 2014-01-13 17:15:37 · 1374 阅读 · 0 评论 -
CodeForce Round 219 Div2 E Watching Fireworks is Fun 单调队列DP
非常直观的单调队列优化的 DP这种每次更新都需要一大串从前的数据的DP就应该是需要线段树或者单调队列优化的 DP 了。题意:有一个街道放烟花,街道分成 N 块(1 dp[i][j] 为第 i 次放烟花的时候 happy 值, dp[i][j] = max (能到的地方的 dp[i-1][j] ) + 在 j 处的 Happy 值 。max (能到的地方的 dp[i][j] ) 这原创 2014-01-12 21:55:29 · 659 阅读 · 0 评论 -
CodeForces Round 218 D. Vessels(学姐我没用线段树系列)
这道题的意思是给你一个水塔,可以从中间任意一层倒水,告诉你每一层的容量,这一曾层满后水会流入下一层,总共有N层,再满了就直接流到地上。然后给出N个操作操作1:往第n层中加x的水操作2:询问每一层装有多少水用BIT保存所剩空间的前缀和,每次加水的时候二分最终水会流到哪一层,然后加水的时候依次更新BIT,虽然式单点更新但是每一次更新都会直接把该层的空间沾满,下一次不会再更新,所以总共是O(原创 2013-12-08 22:59:15 · 1060 阅读 · 0 评论 -
CF Round 219 好手生....
第一题没什么说的第二题是定义一个函数S(n),S(n)=n这个数字的位数给出一个系数k,和一个起始值m,构造一个序列(m,m+1,m+2....),每次往上加数的时候会消耗k*S(n)的值,在这个值不超过w的情况下最多挂几个数字?二分做的,二分这个n,判断的时候分成三部分数,从开始值m到第一个10的幂,第一个10的幂到第m`个10的幂,最后一个10的幂到m+n。最简单的方法应该是直原创 2013-12-14 03:07:59 · 551 阅读 · 0 评论 -
CodeForces Round 218 E Subway Innovation
题目大意:直线上N个点,去掉一些只剩下K个,使得剩下的K个点两两之间距离之和最小显然,这K个点应该是坐标轴上连续的K个点但是因为N很大,所以只能是O(n)的做第一O(n)的求出 0 到 k 的和第二O(n)的求出 剩下的长度为k的区间的答案先求第一个f(0,i) = f(0,i-1)+∑dist[i]-dist[k] (k = f(0,i-1)+(原创 2013-12-17 00:09:38 · 740 阅读 · 0 评论 -
CodeForces Round 220
第二题怎么交怎么错,到最后竟然是题目错了,哎,齐葩。A。Inna and Pink Pony第一题最后过了ST的只有不到200个...我的那份代码挂了= =挂在如果一步都不能动,那么是不可以到的这题意思是给你个棋盘,里面(i,j)处放了个糖,你可以把这个糖这样移动move the candy from position (x, y) on the board to原创 2013-12-19 02:37:21 · 660 阅读 · 0 评论 -
CodeForce 375B D - Maximum Submatrix 2
这又是一个需要保存后缀和来减少计算量的题目给你一个01矩阵,可以交换行,问,能得到的只包含1的子矩阵是多大,矩阵 n 行 m 列,0 对于这个子矩阵,我们枚举他可能的左上角,然后计算获得以此为左上角得到的最大 1 的矩阵是多少,这样问题就在于,怎么知道这个矩阵最大的长和宽呢?容易想到的是取得从每一个位置开始连续的 1 的个数,对于 1 较少的, 可以想象这个矩阵长比较大, 对于1 比较原创 2014-01-10 21:02:31 · 920 阅读 · 0 评论 -
CodeForces Round 223 Div 2 C Sereja and Prefixes
乱搞题..题目链接 http://codeforces.com/problemset/problem/380/A一个人要做个数字序列,有两种操作,1 是 向后面加个数字 2 是向后面加上从 1 到 l 的复制 C 次的序列最后有 m 个询问记录下每个操作所诞生的序列的开始位置记录下每个操作的信息,放在 node 里面遇到 类型 1 的节点 直接返回值遇到 类型 2 的节原创 2014-01-13 02:05:26 · 668 阅读 · 0 评论 -
CodeForces Round 213 Div 2 E Sereja and Brackets 线段树
我本来觉得这个题不能用线段树的,因为联想到从前做的有关括号的匹配的问题好像都是DP的,如果直接线段树的话就有点贪心的意思。但是仔细想想,这题只是匹配,用线段树非常合适,因为括号分成两部分,左边和右边,线段树也都是二分的,所以统计每一层节点的 左括号, 完整括号 和右括号,上一层的节点的 完整括号就等于 用左儿子的左括号匹配右儿子的右括号 再加上完整的括号就可以了。非常易用的可加性。还是个没有更新的原创 2014-01-13 15:22:22 · 900 阅读 · 0 评论 -
Codeforces Round 237 ABCD
A..有啥好说的的。。#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;#define READ freopen("acm.in","r",s原创 2014-03-20 02:03:20 · 466 阅读 · 0 评论