
codeforces
文章平均质量分 74
NightRaven
cust
展开
-
codeforces 392A Blocked Points 枚举
题意很繁琐..转化过来基本就是在平面上给一个半径为n的圆,求圆内有多少个点和圆外至少一个点的欧几里得距离恰好为1。想一下会发现四个象限其实是对称的,求一个象限的解*4就行,对一个象限内的点,发现一个象限内也可以分成两半,所以就是枚举出来1/8个圆的点就可以了...以第一象限为例的话,枚举的结束条件就是x>y。#include #include #include using namespa原创 2014-02-19 15:11:08 · 773 阅读 · 0 评论 -
codeforces 126B Password KMP
给一个串,求一个最长子串同时是母串的前缀,后缀,并且在前缀后缀之外有出现了一次。 首先构造好失配函数,从len开始沿失配路径走一遍并且标记沿途节点,为什么要标记,因为如果节点i在这条失配路径上,那么f[i]---i这个子串一定同时为母串的前缀和后缀,之后我们只要从len-1(排除后缀)到0枚举一边,在已标记的节点中找一个最大值就行。#include #include原创 2014-03-10 20:43:59 · 623 阅读 · 0 评论 -
codeforces round 234 DIV2
p1:Inna and Choose Options 模拟,12张牌,每张牌上是X或O,现在可以按每行1,2,3,4,6,12张的方式摆放,若某种摆放方式使得其中任意一列全部是X这就是一种合理的方式,求所有合理的摆放方式。直接模拟...#include #include #include using namespace std;int n,m;char s[20];v原创 2014-03-06 02:08:12 · 787 阅读 · 0 评论 -
codeforces round236 DIV2
P1:Nuts直接贪心...由于数量不是很大,枚举也行..#include using namespace std;int k,a,b,v;int main(){ cin>>k>>a>>b>>v; int num=a/v; if (a%v) num++; int ans=0; int nw=0; while(b>0 && nw<n原创 2014-03-17 20:02:00 · 630 阅读 · 0 评论 -
codeforces round239 DIV2
p1 Line to Cashier超市排队结账,每扫描一件商品需要5秒,每个顾客需要15秒付钱。给出每个窗口的人数和每个人买的商品数,求排在最快的队伍时,最少要等多少时间。模拟...#include #include #include #include #include using namespace std;typedef long long ll;int n,m,ans原创 2014-03-30 17:37:25 · 636 阅读 · 0 评论 -
codeforces round237 DIV2
p1:Valera and X判断矩阵是否形同X,形同X就是对角线上元素相同,,其他位置上的所有元素相同并且不同于对角线上的元素。直接模拟判断...#include #include #include using namespace std;typedef long long ll;char s[440][440];int n;int main(){// freop原创 2014-03-20 02:15:39 · 605 阅读 · 0 评论 -
CF Round 192
P1:n*m的矩形上原创 2013-07-22 20:33:11 · 965 阅读 · 0 评论 -
codeforces round DIV2
P1:Mashmokh and Lights原创 2014-04-07 13:59:25 · 733 阅读 · 0 评论 -
codeforces 7D Palindrome Degree 字符串hash
如果一个长度为n的字符串s,如果前原创 2014-05-09 14:18:33 · 922 阅读 · 0 评论 -
codeforces 425C Sereja and Two Sequences DP
两个长度分别为n,m的序列,序列中的数da原创 2014-04-28 19:59:44 · 1143 阅读 · 0 评论 -
CF446C DZY Loves Fibonacci Numbers 线段树
给一个序列,接下来有ruogan原创 2014-08-10 14:36:19 · 802 阅读 · 0 评论 -
codeforces 452E Three strings 后缀数组+并查集
给三个串s1,s2,s3,对于meig原创 2014-08-11 19:24:29 · 870 阅读 · 0 评论 -
codeforces 461C 暴力+BIT
题意是这点线段,每次两种操作,1 x表示把线段原创 2014-09-01 23:32:28 · 664 阅读 · 0 评论 -
codeforces 392B Tower of Hanoi 记忆化搜索
汉诺塔问题的变形,给出每个柱子到另一个柱子移动的花费,求最小花费使得n个盘从最左侧移动到最右侧。 汉诺塔问题的移动方案其实就两种,第一种:n-1个盘子从1通过3移动到2,最下面的从1移动到3,n-1个盘子从2通过1移动到3.第二种:n-1个盘子从1通过2移动到3,最下面的从1移动到2,n-1个盘子从3通过2移动到1,最下面的从2移动到3,n-1个盘子从1通过2移动到3.实际就原创 2014-02-19 15:16:28 · 767 阅读 · 0 评论 -
codeforces 396C On Changing Tree dfs序+BIT
一棵树,根节点为1,现有两种操作1 v x k :对节点v的值+x,对节点v的后继中,距离为i的节点的值+x-i*k。2 v :输出节点v现在的值。对子树进行操作的话,容易想到树状数组或者线段树,先对树做一遍dfs标上时间戳,这样节点v的子树的时间戳就是l[v]--r[v]这个区间,那么对子树的加减就可以转化成区间的加减。再来看操作,操作一v的操作可以看成+x-0*k,或者说是x+de原创 2014-03-01 22:13:02 · 1078 阅读 · 0 评论 -
Codeforces Round #223 div1
A. Sereja and Prefixes(模拟+二分) 题意大致是要构造一个序列,有两种操作 1 k是把k添加到序列最后,2 p q是把当前序列的前缀p重复q次添加到序列最后..直接模拟就好吧,每次操作添加一个节点,记录当前是具体的数还是前缀,并且记录下这个节点所表示的下标范围(数的话长度就是1,前缀的话长度就是前缀长度*重复次数),这样可以构造出来一个新的序列,然后每个查询,在这原创 2014-01-13 02:26:40 · 803 阅读 · 0 评论 -
codeforces 258B - Little Elephant and Elections 数位DP
给一个数m,在1到m当中先挑一个数出来,再从剩下的数当中挑6个数,要求这六个数保函数字4或7的个数严格小于挑出第一个数包涵的4或7..先递推求出dp[i][j],表示长度为i的数中,包涵j个4,7的数的个数,再从高位开始推,求出1-m当中,包涵k个4,7的分别有多少个(s[k])。思路挺好想,之前只做过一两道数位DP的题,结果递推式推出来各种呵呵....这东西果然是写多了就熟练了...原创 2013-11-09 10:21:03 · 806 阅读 · 0 评论 -
Codeforces 383C Propagating tree DFS序+BIT
一颗以1为根节点的树,两种操作,1 x c 将节点x值+c,节点x的所有孩子的值-c,所有孩子的孩子的节点+c...交替正负直到叶子节点;2 x 查询节点x当前的值。挺简单的一题..当时怎么就没去看...这题只要能想到时间戳的话,就简单了..首先dfs遍历树打上时间戳,这样每个节点保存一个区间l,r表示访问到该节点到遍历完其子树的区间.每个节点按其到根节点的距离的奇偶性分类,ct[i]=0,1表示原创 2014-01-21 19:10:53 · 767 阅读 · 1 评论 -
Codeforces 383D. Antimatter
n个数(1..1000),从这串数中选取一个字串,任意添加数前的正负号,若以一种方案加上符号后该字串的和为0,则是一种可行的方案,问对这n个数共有多少种可行的方案(字串大小任意,至少为2(1个数怎么也凑不出0...))。n个数的和不超过10000.一般情况下,题目的条件都是有用的,这道题就是从n个数的和不超过10000入手.dp[i][j]记录以第i个数为终点,此时和为j的方案数.转移方程dp[i原创 2014-01-21 21:37:19 · 935 阅读 · 0 评论 -
codeforces #215 DIV1
A题读透题意就是查询区间x,y,z的个数,如果区间长度不超过2或者x,y,z个数的最大值与最小值的差不超过了就是YES,否则就是NO因为如果最大的差值小于等于2的话,无论如何都可以构造出一个序列使得每三个字符符合特定要求... #include #include #include #include #include #include using namespace st原创 2013-11-27 10:25:26 · 738 阅读 · 0 评论 -
codeforces 258-E. Little Elephant and Tree 线段树,离线
给一个节点数为n的树,m个操作,每个操作包涵两个数a,b,第i次操作时,向节点a及其子树,节点b及其子树的数据序列中添加i。m次操作完成后,对于每个节点,查询这棵树上有多少个节点与当前节点至少包涵一个相同数。 首先对子树操作的话,先对树做dfs并编号,这样某节点的子树节点的编号一定是一个连续的区间,并记录一下每个节点子树节点编号的范围,这样操作就是一个线段树的区间更新了。原创 2013-11-09 10:33:00 · 1269 阅读 · 0 评论 -
Codeforces 380D Sereja and Cinema
#223Div1的第四题,题意大致是一排n个座位,每个座位两侧有个电源(那么总共就是n+1个电源),每来一个人坐在某个位置上后,他就会占用这个座位两侧的电源,如果只剩一个可用就用一个,如果两个都被占了,他就会生气的离开,现在如果个别位置上的人是第几个入场确定的话,问如何安排省下位置上的人的进场顺序,可以使所有人都能有至少一个电源用而不至于生气的离开。 这题一直没什么思路,昨天拿去原创 2014-01-17 01:42:12 · 1135 阅读 · 0 评论 -
Codeforces round#226 div2
P1 签到题不多说..#include #include using namespace std;int n,m,p,q;int a[300];int ans;int main(){ cin>>n>>m; for (int i=1; i<=n; i++) cin>>a[i]; ans=0; for (int i=1; i<n; i++)原创 2014-01-25 02:23:12 · 733 阅读 · 0 评论 -
Codeforces round#224
A.Ksenia and Pan Scales 大意是往天平上方法吗..用字符串随便搞一下就行..#include #include #include #include #include #include using namespace std;typedef long long ll;int n,m;string s;int main(){// fr原创 2014-01-18 22:06:07 · 680 阅读 · 0 评论 -
codeforces 388B Fox and Minimal path
给一个数k,让构造出一个节点数小于1000的图,使得这个图上从1到2的最短路的路径数恰好为k. 当天做的时候直接想到分解质因数去做,但这么做对大质数无解=然后就被cha掉了...今天在网上看到一个神奇的做法...原帖在这:http://7-sun.com/text/25918.html举个例子13 4 56 7 89 10 112除了起点终点,原创 2014-02-06 23:29:58 · 811 阅读 · 0 评论 -
codeforces 388C Fox and Card Game
若干堆牌,每张牌有不同的分值,两个人,一个人每次选一堆拿走顶端的牌,另一个人选一堆,拿走堆底的牌,两人都是最优策略,问最后每人多少分...看起来好像是个博弈,实际上感觉就是个脑筋急转弯,因为最优的情况,最后一定是每一堆两人各去一半,然后轮流拿走奇数堆中间的牌...因为如果某一堆的最优点偏下的话,B一定能强迫A只能拿到中间,如果最优点偏上,那么A同样一定也能强迫B只能拿到中间为止..所以最后就是一人原创 2014-02-06 23:43:05 · 823 阅读 · 0 评论 -
codeforces round231 DIV2
A:Counting Sticks 枚举给一个用|组成的表达式,问是否可以移动一个|使得等式满足,并且每一项大于等于1.分情况讨论就行,注意不要出现0.#include #include #include #include using namespace std;typedef long long ll;char s[1000];int a[5];int main(原创 2014-02-21 02:43:33 · 704 阅读 · 0 评论 -
codeforces 379F New Year Tree 在线LCA
一棵树,根节点为1,有2,3,4三个叶子节点,接下来有N个操作,每个操作x,表示给节点x添加两个孩子节点,并且输出添加后树的直径。 当时做这套题的时候不会LCA,写了个暴力的爬山坡,结果复测时喜闻乐见的TLE了= =...现在学了LCA要果断虐回来...分别每次记录直径的两个端点各自的父亲节点d1,d2,初始值d1=d2=1,然后每次添加时,找一下x到d1和x到d2的距离那个更大,原创 2014-02-08 20:00:35 · 1184 阅读 · 2 评论 -
codefroces 486C Hack it! 数位dp+二分
定义f(x)是x的各位数字之和(xshijinzhi)原创 2014-09-24 21:10:59 · 874 阅读 · 0 评论