文章分类 -  acm-codeforces好题系列

1 2 3 下一页

CodeForces Round 300 我是煞笔!
摘要:代码。。能力。。为何。。这么。。弱。。英语。。为何。。这么。。渣。。前期打的非常顺,在1个小时的时候甚至到了200+名,然而。。我为何这么弱A.Cutting Banner 我看错了题意,然而却A掉了,一个串只能切一次,后来Hack+4也是靠的这个 1 #include 2 #include 3 #... 阅读全文

posted @ 2015-04-27 03:23 xiao_xin 阅读(593) 评论(0) 推荐(0)

CodeForces 536B Tavas and Malekas :构造长为n的串,使m个串的开头是给定的某个字符串,求构造方案数 kmp/hash
摘要:本题的难点在于--->看懂题意因为比赛纠结于A的二分,比赛还没结束就暴走睡觉了TUT今天起来看了看B===卧槽题意和A一样恶心啊有木有==回到本题,看明白之后首先映入眼前的就是--->暴力大法好这样必然是可以hack超时的,必须要对串进行处理哪些后缀和前缀相等最常规的莫过于kmp里面的next,从结... 阅读全文

posted @ 2015-04-15 18:05 xiao_xin 阅读(440) 评论(0) 推荐(0)

CodeForces 536A Tavas and Karafs :n个数每次最多将m个数-1,快速计算减完次数:二分/贪心
摘要:英语弱是硬伤啊==比赛看了A半小时活生生没看懂题意,后来带数据带猜才明白题意输入A,B,n,表示一个首项为A公差为B的数,n个询问每个询问给出l,t,m你需要算出最大的r,使l-r之间的数通过(标题上面)的规则在t次内减完==看明白题意,首先想到就是一个二分,然后在二分中需要快速check出是否可行... 阅读全文

posted @ 2015-04-15 17:49 xiao_xin 阅读(431) 评论(0) 推荐(0)

CodeForces 268D Wall Bars :n层的梯子,每层四个方向只能选择一个方向搭建梯子,爬梯只能一个方向,最高不能爬超过h,问使能爬上梯顶的方案 :dp
摘要:dp好题啊!首先如何暴力的去做?dp[now][i][j][k][l]表示当前爬到now层,四个方向分别距离当前层为i j k l的方案,原来大于等于h的直接赋为h这样就能直接递推,复杂度1000*30*30*30*30,妥妥的T 1 #include 2 #include 3 #include 4... 阅读全文

posted @ 2015-03-28 01:59 xiao_xin 阅读(177) 评论(0) 推荐(0)

CodeForces 148D Bag of mice :w个白鼠和b个黑鼠,公主和龙随机轮流取鼠,龙取完会随机掉出一个鼠,谁先拿到白鼠谁赢问公主赢概率 :概率dp
摘要:我写的dp方程比较繁琐了,是很自然的想到的,应该有更优的转移方案==dp[i][j][k1][k2] 表示若有i个白鼠j个黑球: dp[i][j][0][1]:公主先走赢得概率 dp[i][j][0][0]:公主先走输的概率 dp[i][j][1][1]:龙先走赢得概率 dp[i][j][1... 阅读全文

posted @ 2015-03-28 01:43 xiao_xin 阅读(204) 评论(0) 推荐(0)

CodeForces 283B Cow Program :给定数组2-n的值,每次变化1的值,按照向佐向右轮流方向走,对于每次变化输出走出数组时走的路长 :记忆化dfs
摘要:对于2-n每个点记录向左向右走完接下来要走的路长为什么可以搜?因为只变化第一个而每次又从第一个走,那我们显然只需要记录每个点向左向右两种值要记得每次搜索都要初始1节点向右为没走过== 1 #include 2 #include 3 #include 4 using namespace std; 5 ... 阅读全文

posted @ 2015-03-28 01:23 xiao_xin 阅读(226) 评论(0) 推荐(0)

CodeForces 274B Zero Tree :每次选包含1节点的一棵子树,将该子树所有值都+1或者-1最少多少步可以使树值全部为0 :树型dp
摘要:将1设为树根节点,接下来就好想了,因为更新一个点对应到1的路全部都要更新对于一个节点u,dfs他的所有儿子节点,返回最大需要+1的操作和最大需要-1的操作再接合自身返回给父亲节点+1 -1的最大操作最后结果就是1节点+1和-1的最大操作和 1 #include 2 #include 3 #inclu... 阅读全文

posted @ 2015-03-28 01:12 xiao_xin 阅读(681) 评论(0) 推荐(0)

CodeForces 364B Free Market :每次可以从已有商品换取高于价值不超过d的没有选过的价值,选最高价值 :dp/贪心
摘要:题目中规定要换来的物品必须要是目前没有的=其实如果有重复的就可以把重复的去掉。。所以是等价的所以可以在输入的时候预处理取与不取当前值能拿到的值放入dp中然后在0的基础上一直寻找最大可交换的物品,一直到找不到结束== 1 #include 2 #include 3 #include 4 using n... 阅读全文

posted @ 2015-03-28 00:24 xiao_xin 阅读(180) 评论(0) 推荐(0)

CodeForces 285E Positions in Permutations :找出多少恰好满足k个位置的|a[i]-i|==1的n的全排列个数 :dp/思维
摘要:dp[i][j] 表示前i个位置中正好有j个位置满足good对于第i个位置 第i个位置不是good dp[i][j]= dp[i-1][j] 。 第i个位置是goodi取i+1转移没问题,但i取i-1可能被前面用过,所以记录后面三个数根据dp结果可以算出sum[i],然后sum[i] *=fac... 阅读全文

posted @ 2015-03-27 17:54 xiao_xin 阅读(505) 评论(0) 推荐(0)

CodeForces 385C Bear and Prime Numbers :给定n个数和m个询问,对于每个询问n个数里面是l-r中质数倍数和(不重复) :筛法的技巧
摘要:题意和范围:http://codeforces.com/problemset/problem/385/C好题呀==在筛质数的过程中顺带累加筛他的质数vis值最后统计就是前缀和相减== 1 #include 2 #include 3 #include 4 using namespace std; 5 ... 阅读全文

posted @ 2015-03-27 17:21 xiao_xin 阅读(271) 评论(0) 推荐(0)

CodeForces 232B Table : n*m (m>>n)的矩阵使每个n*n矩阵里面准确包含k个点,有多少种放法 :dp/数学思维/快速幂
摘要:本题关键地方在于:只要确定前n列的点阵,后面每列放多少就全部确定了==这样就可用dp和组合数预处理递推前面的n列放法,同时利用快速幂将所有列放法计算出来 1 #include 2 #include 3 #include 4 using namespace std; 5 #define LL long... 阅读全文

posted @ 2015-03-27 17:07 xiao_xin 阅读(364) 评论(0) 推荐(0)

CodeForces 314C Sereja and Subsequences :找出序列种所有不下降子序列,求出所有子序列乘积和 :技巧/树状数组
摘要:树状数组数组里面记录的值是当前以a[i]结尾的乘积和=比如当前到i的a[i],查询1-a[i]的所有值和,乘以(a[i]+1)就是当前以a[i]为结尾的乘积和=这样出现了重复计算的情况,只要减去上一次a[i]结尾的乘积和即可 1 #include 2 #include 3 #include 4 us... 阅读全文

posted @ 2015-03-27 16:54 xiao_xin 阅读(349) 评论(0) 推荐(0)

CodeForces 201A Clear Symmetry :寻找最小的n使n*n矩阵里面可以对称且不相邻的放下至少x个1 :数学/思维/找规律
摘要:首先n为偶数必然没有n为奇数优==而n为奇数最多能放(n^n+1)/2个1特别注意特判x=3的时候需要5个,因为3个那样放就相邻了== 1 #include 2 #include 3 #include 4 using namespace std; 5 int main() 6 { 7 int n... 阅读全文

posted @ 2015-03-27 16:24 xiao_xin 阅读(184) 评论(0) 推荐(0)

CodeForces 225C Barcode :一个只包含.和*的矩阵,改变最少的点+星,使每列只有一种,连续的在x-y之间 :dp
摘要:比较裸的dp了,多做dp有益身心健康==dp[i][j][kind]表示到i时,是以kind的种类结束,且他连续了j个这种dp一般想到状态,转移方程也就好想了,注意1才需要大规模累加 1 #include 2 #include 3 #include 4 using namespace std; 5 ... 阅读全文

posted @ 2015-03-27 16:07 xiao_xin 阅读(220) 评论(0) 推荐(0)

CodeForces 276D Little Girl and Maximum XOR :L到R内找出两个数,使他们亦或和最大:找规律
摘要:像我这种一遇到这种类型题目必然先打个表==然后发现其实就是找到L和R二进制由高到底第一位不同的数,低位全部变成1,想想也好明白== 1 #include 2 #include 3 #include 4 using namespace std; 5 int main() 6 { 7 long lo... 阅读全文

posted @ 2015-03-27 15:55 xiao_xin 阅读(233) 评论(0) 推荐(0)

CodeForces 525E Anya and Cubes :n个数可以对每个数拿本身,拿阶层,不拿,问和为s有多少种取法 :折半爆搜/map(map迭代)
摘要:n,LL>mp迭代是(it->first).first== 又学了一点stl 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 #define LL long long 7 pairtmp; 8 map,LL>m... 阅读全文

posted @ 2015-03-27 15:35 xiao_xin 阅读(151) 评论(0) 推荐(0)

CodeForces 525D Arthur and Walls :只包含点和星的矩阵,需要将部分星变成点使满足点组成矩形 : dfs+思维
摘要:关键点在于,什么时候需要改变?注意到只有一个2*2的矩形里面只有一个星才需要改变这个星为点只要想到这个这题就能各种姿势搜索了===可以dfs,从可变矩形向四周拓展== 1 #include 2 #include 3 #include 4 using namespace std; 5 int xx[]... 阅读全文

posted @ 2015-03-27 15:24 xiao_xin 阅读(149) 评论(0) 推荐(0)

CodeForces 69D Dot :两个人轮流移动棋子,移动方法有n种,谁先移动到距离原点>d则输,问谁赢 :博弈+记忆化
摘要:其实本题还有一个可以沿y=x对称的操作,但仔细思考会发现其并不影响对于一个点,比如A当前先走,只要找到一个他可以跳的地方且B从这儿必跪的A就必胜=否则A跪所以可以用记忆化dfs来写,复杂度大概200*200*20 1 #include 2 #include 3 #include 4 using na... 阅读全文

posted @ 2015-03-27 00:16 xiao_xin 阅读(252) 评论(0) 推荐(0)

CodeForces 14E Camels :利用1-4拼成长为n的序列,使准确含有t个峰t-1个谷,求方案数 :dp
摘要:3 ≤ n ≤ 20,1 ≤ t ≤ 10如此小的数据接下来就能各种暴力了===dp[i][j][k][t1][t2]表示前i个字符的最后两个是j和k已有t1个峰t2个谷枚举当前放的数,转移方程容易思考了=复杂度是20*4*4*10*10*4==轻松过啊 1 #include 2 #include ... 阅读全文

posted @ 2015-03-27 00:04 xiao_xin 阅读(269) 评论(0) 推荐(0)

CodeForces 18D Seller Bob :包含win x和sell x的组合,拿取价值为2^x,这个区间被拿过就不能再拿,问所拿最大价值:贪心+大数
摘要:注意到一个重要的信息,每个x对应的sell最多只有一个=2^x>2^(x-1)+2^(x-2)+...+1因此可以按照x的sell从高到低排序,继而扫每个sell,对于每个sell从原数组结尾到开头扫到第一个win,再更新这个区间不可卖即可发现函数返回vector写些简单的大数还挺好的== 1 #i... 阅读全文

posted @ 2015-03-26 23:45 xiao_xin 阅读(149) 评论(0) 推荐(0)

1 2 3 下一页

导航