online judge Codeforces
文章平均质量分 81
Fsss_7
这个作者很懒,什么都没留下…
展开
-
Codeforces Round #378 (Div. 2) F. Drivers Dissatisfaction
链接:http://codeforces.com/contest/733/problem/F题意:给定n个点m条边的联通图和一个s,每条边有边权w和费用c(花费c可以使权值-1)。最多花费s求一棵权值最小的生成树。分析:很容易想到如果确定了树,那么费用肯定是全部用在c最小的那条边上,这样肯定是最优的。也就是说我们只需要确定哪一条是那条花费s的边,我们先按w建一颗最小生成树,然后得到初始an原创 2016-11-15 13:59:36 · 520 阅读 · 0 评论 -
Educational Codeforces Round 1C. Nearest vectors
链接:http://codeforces.com/contest/598/problem/C题意:给定n个向量,求夹角最小的那一对向量。分析:直接极角排序然后取夹角最小的那一对即可。注意会卡精度要用long double。代码:#include#include#include#include#include#include#include#include#inclu原创 2016-08-21 16:07:37 · 326 阅读 · 0 评论 -
Codeforces Round #365 (Div. 2)D. Mishka and Interesting sum
链接:http://codeforces.com/contest/703/problem/D题意:给定一个n个数的数组,给定m个询问每次询问一个区间[l,r],求在a[l]~a[r]中出现次数为偶数的数的异或和。分析:首先如果算区间异或和我们可以用xo[r]^xo[l-1]的方法处理,但是我们会发现这样刚好得到的是出现次数为奇数的数的异或和,我们需要将其中的每个数恰好出现偶数次的变成奇数次原创 2016-08-05 03:50:51 · 438 阅读 · 0 评论 -
Codeforces Round #360 (Div. 1)C - The Values You Can Make
链接:http://codeforces.com/contest/687/problem/C题意:给定n个数和一个k,对于每一个和为k的集合{a[1],a[2],...a[g]}都能凑成若个数。求所有的集合能凑出哪些数。分析:我们设dp[i][j][k]表示前i个数在凑成j的数中能否凑出k,为0/1。那么状态直接转移即可。O(n^3)。代码:#include#include#i原创 2016-07-08 23:01:30 · 561 阅读 · 0 评论 -
Codeforces Round #360 (Div. 1)B - Remainders Game
链接:http://codeforces.com/contest/687/problem/B题意:给定n个整数a[i]和一个k,对于每一个整数x会有一个数组{x%a[1],x%a[2]....,x%a[n]},要求判断是否能根据一个数组判断出x%k。分析:我们可以将数组的每一位分开看,显然a[i]的循环节是a[i],那么我们就能知道整体的循环节即最小公倍数lcm。那么我们只需要判断lcm能原创 2016-07-08 22:53:53 · 334 阅读 · 0 评论 -
Codeforces Round #360 (Div. 1)A - NP-Hard Problem
链接:http://codeforces.com/contest/687/problem/A题意:给定一个n个点的图,要求将所有的点分成2部分使得每一天边连着的两个点都不在同一部分中,无解输出-1。分析:直接dfs01染色就是了。代码:#include#include#include#include#include#include#include#include#i原创 2016-07-08 22:42:32 · 344 阅读 · 0 评论 -
Codeforces Round #361 (Div. 2)E. Mike and Geometry Problem
链接:http://codeforces.com/contest/689/problem/E题意:给定n条线段[l,r],求所有的k条线段相交的部分有多少个整数点。分析:直接C(n,k)是不可能的,我们换个角度求每个点会被统计多少次,那么设有x条线段会覆盖这个点那么这个点就会被统计C(x,k)次咯,我们O(n)将这n条线段覆盖在线段上,然后计数即可。代码:#include#inc原创 2016-07-07 21:12:11 · 490 阅读 · 0 评论 -
Codeforces Round #361 (Div. 2)D. Friends and Subsequences
链接:http://codeforces.com/contest/689/problem/D题意:给定两个长度为n的数组a,b。求有多少个区间[l,r]有max(a[l]~a[r])==min(b[l]~b[r])。分析:对于每一个a[i]找到它为最大的值的区间最大边界l[i]和r[i],同样处理b数组。然后我们枚举以每一个a[i]为区间max来和b数组计数,注意下去重就行了。代码:原创 2016-07-07 21:04:13 · 476 阅读 · 0 评论 -
Codeforces Round #361 (Div. 2)C. Mike and Chocolate Thieves
链接:http://codeforces.com/contest/689/problem/C题意:有4个数,a[1]~a[4],a[i+1]=k*a[i],k>1,只要有一个a[i]不同就算不同的数列。求最小的n使得恰好有m个不同的数列存在并且最大的数a[4]分析:直接二分答案,然后枚举k,计算有多少起点a[1]满足条件。代码:#include#include#include原创 2016-07-07 20:59:28 · 375 阅读 · 0 评论 -
Codeforces Round #361 (Div. 2)B. Mike and Shortcuts
链接:http://codeforces.com/contest/689/problem/B题意:题面好长,但其实就是有n个城市,城市i到城市j需要的花费是|i-j|,并且每个城市有一条捷径直接从i花费1到a[i]。求从1开始到各个城市的最小花费。分析:知道题意了其实就是一个每个点有3条边的图,直接从1点开始bfs就是了。代码:#include#include#include原创 2016-07-07 20:54:03 · 512 阅读 · 0 评论 -
Codeforces Round #361 (Div. 2)A. Mike and Cellphone
链接:http://codeforces.com/contest/689/problem/A题意:有一个人手机丢了,他只记得手机密码的按键手势,但是不记得具体数字了,问这个按键手势是否唯一。分析:标记下每一个点的转移方向,枚举0~9所有的起点看有多少种是合法的手势。代码:#include#include#include#include#include#include#i原创 2016-07-07 20:50:01 · 525 阅读 · 0 评论 -
Codeforces Round #355 (Div. 2)E. Vanya and Balloons
链接:http://codeforces.com/contest/677/problem/E题意:给定一个n*n的仅包含'0','1','2','3'的矩阵。求一个乘积最大的十字,要求十字的四边一样长。分析:因为是十字所以可以向8个方向扩展,很明显我们会以中心点来处理出这个十字在哪。那么我们想要知道的是对于中心点(x,y)它的8个方向的2的个数有多少,3的个数有多少,那么我们显然是可以从它原创 2016-07-06 23:00:24 · 533 阅读 · 0 评论 -
Codeforces Round #355 (Div. 2)D. Vanya and Treasure
链接:http://codeforces.com/contest/677/problem/D题意:给定一个n*m的矩阵,里面的元素是1~p中的,并且元素p只有一个,1~p-1的每个元素都至少1个。元素x表示钥匙x,有x的钥匙才能拿到x+1的钥匙,1是没有被锁起来的。求最后打开p那个宝箱最少要走多少步。分析:如果我们暴力直接用元素i去更新所有的i+1那么最差复杂度是n^2*m^2,即只有1,原创 2016-07-06 22:51:01 · 440 阅读 · 0 评论 -
Codeforces Round #367 (Div. 2)E. Working routine
链接:http://codeforces.com/contest/706/problem/E题意:给定一个n*m的矩阵,给定q次剪切交换,每次给出a,b,c,d,h,w表示将左上角为(a,b)和左上角为(c,d)的高h宽w的矩阵交换,保证两个矩形不重叠没有公共边。分析:对每个格子建一个十字链表,每次剪切的时候我们只需要将周围的那些链表交换即可。O(q*(n+m))代码:#inclu原创 2016-08-12 16:46:25 · 25625 阅读 · 0 评论 -
Educational Codeforces Round 12E. Beautiful Subarrays
链接:http://codeforces.com/contest/665/problem/E题意:给定一个长度为n的数组和一个数k,求有多少个区间[l,r]满足a[l]^a[l+1]^..^a[r]>=k。分析:我们设sum[i]=a[1]^..^a[i],那么对于每个sum[i]我们要找出有多少个sum[j]^sum[i]>=k且jk-1变成严格大于能直接处理出所有的答案而不用再查找有多原创 2016-09-07 21:06:06 · 327 阅读 · 0 评论 -
Codeforces Round #378 (Div. 2) E. Sleep in Class
链接:http://codeforces.com/contest/733/problem/E题意:给一个只含'U'和'D'的字符串,U表示向右走,D表示向左走。每个格子踩一次之后翻转(U变D,D变U),求从每个格子出发走多少步才能走到位置小于1或大于n。分析:当在第i个格子的时候,我们假设初始位置是在i-1和i中间这条缝隙处,然后初始是向右走,然后我们会得到一个区间(l,r]表示我们最左走原创 2016-11-15 13:48:16 · 787 阅读 · 0 评论 -
Codeforces Round #379 (Div. 2) F. Anton and School
链接:http://codeforces.com/contest/734/problem/F题意:给定b,c两个数组,其中b[i]=∑nj=1a[i]&a[j],c[i]=∑nj=1a[i]|a[j]b[i]=\sum_{j=1}^{n}a[i] \verb'&' a[j],c[i]=\sum_{j=1}^{n}a[i] \verb'|' a[j]。求是否存在a数组使得b,c数组满足条件,不存在输出原创 2016-11-16 22:00:11 · 1011 阅读 · 2 评论 -
【索引】Codeforces
Codeforces Round #378 (Div. 2)A. Grasshopper And the String B. Parade C. Epidemic in Monstropolis D. Kostya the Sculptor E. Sleep in Class F. Drivers DissatisfactionCodeforces Round #377 (Div.原创 2016-10-24 22:14:23 · 554 阅读 · 0 评论 -
Codeforces Round #379 (Div. 2) E. Anton and Tree
链接:http://codeforces.com/contest/734/problem/E题意:给定一棵树,每个节点为黑色或白色,有一种操作:现在一个节点然后将与其联通的同颜色的节点一起变一种颜色(黑变白,白变黑),求最少多少次操作可以使得整棵树变成一个颜色。分析:因为可以一个同颜色的联通块一起变,我们将所有同颜色的联通块缩点,然后我们会发现树变成了全是黑白交替的。那么最小操作次数就是从原创 2016-11-16 21:20:26 · 531 阅读 · 0 评论 -
Codeforces Round #379 (Div. 2) D. Anton and Chess
链接:http://codeforces.com/contest/734/problem/D题意:给定一个白棋的位置,然后给n个黑棋(只有象,车和皇后),象走斜率为+-1的方向,车走十字,皇后走米字。判断是否有黑棋能一步吃掉白棋。分析:白棋被吃掉只能被8个方向上最近的那个点吃,处理出n个黑棋中距离白棋最近的且在那8个方向上的是什么类型的棋子就行了。代码:#include#incl原创 2016-11-16 21:08:57 · 453 阅读 · 0 评论 -
Codeforces Round #379 (Div. 2) C. Anton and Making Potions
链接:http://codeforces.com/contest/734/problem/C题意:一个魔法师要制作n瓶药剂,每瓶药剂需要花费x秒,他有s的魔法值。他会两种魔法,第一种:花费b的魔法使得制作这种药剂的时间变成a秒;第二种:花费d的魔法值使得可以少制作c瓶。求最短时间内制作完所有的药剂。每种魔法都至多只能用一个。分析:因为两种魔法都只能至多用一次,我们可以枚举第一种用哪个然后因原创 2016-11-16 21:03:47 · 388 阅读 · 0 评论 -
Codeforces Round #379 (Div. 2) B. Anton and Digits
链接:http://codeforces.com/contest/734/problem/B题意:用2,3,5,6组成若干个32和256,求总和最大能组成多少。分析:贪心优先组256即可。代码:#include#include#include#include#include#include#include#include#include#include#incl原创 2016-11-16 20:54:46 · 368 阅读 · 0 评论 -
Codeforces Round #379 (Div. 2) A. Anton and Danik
链接:http://codeforces.com/contest/734/problem/A题意:统计一个字符串中'A'和'D'的个数那个多。代码:#include#include#include#include#include#include#include#include#include#include#include#include#include#pr原创 2016-11-16 20:52:15 · 455 阅读 · 0 评论 -
Codeforces Round #378 (Div. 2)D. Kostya the Sculptor
链接:http://codeforces.com/contest/733/problem/D题意:给定n个长方体,求一个最大的内切球的半径,可以是两块石头将两个完全匹配的面合起来的或者就用一块石头,输出切出最大内切球的那1/2个石头是哪些。分析:我们先考虑用一块石头的最大内切球半径,一定是ans=max(min(a,b,c))。令a代码:#include#include#inc原创 2016-11-01 14:21:07 · 476 阅读 · 0 评论 -
Codeforces Round #378 (Div. 2)C. Epidemic in Monstropolis
链接:http://codeforces.com/contest/733/problem/C题意:给定一个长度为n的a数组和一个长度为k的b数组,要求将a数组中合并成b数组,每次合并只能合并相邻的两个并且大吃小,输出NO或YES及合并过程。分析:首先确定几个NO的判定方法,因为是相邻合并那么肯定是一段a合并成一个b[j],那么如果这一段a中元素个数>1并且全部都是一样的值那么就不能合并,反原创 2016-11-01 14:09:07 · 516 阅读 · 0 评论 -
Codeforces Round #378 (Div. 2)B. Parade
链接:http://codeforces.com/contest/733/problem/B题意:给定多组l[i],r[i],令L为l的总和R为r的总和,求最多交换一组的l[i],r[i]使得|L-R|最大,输出交换的那组。分析:模拟代码:#include#include#include#include#include#include#include#include原创 2016-11-01 14:00:07 · 560 阅读 · 0 评论 -
Codeforces Round #378 (Div. 2)A. Grasshopper And the String
链接:http://codeforces.com/contest/733/problem/A题意:给定一个字符串,一只蚱蜢从左边跳到右边,每次只能跳到'A','E','I','O','U','Y'上。求最小的最大需要跳的距离。分析:模拟代码:#include#include#include#include#include#include#include#include原创 2016-11-01 13:54:26 · 421 阅读 · 0 评论 -
Codeforces Round #355 (Div. 2)C. Vanya and Label
链接:http://codeforces.com/contest/677/problem/C题意:设定一些字符是0~63的整数。给定一个字符串s,求有多少个s'使得s'&s=s。分析:预处理出f[i]表示有多少字符对(s,t)有s&t=i,然后就乘法原理计算答案即可。代码:#include#include#include#include#include#include#原创 2016-07-06 22:39:03 · 384 阅读 · 0 评论 -
Codeforces 2011-2012 Waterloo Local Contest, 24 September, 2011 E.Harmonious Matrices
链接:http://codeforces.com/gym/100008题意:给定矩阵的长宽n,m。要求在每个格子填0/1并且每个格子自己+周围4个格子为偶数,要求1尽可能多。分析:很明显我们只需要知道第一行的填写情况就能将整个矩阵填出来,但是暴力2^m填写是不可能的,我们设这m个位置为x1,x2...xm。xi=0/1。那么我们可以得到第n+1行每一个位置的情况(一个关于x的集合)且n+1原创 2016-07-15 17:11:29 · 872 阅读 · 0 评论 -
Codeforces Round #356 (Div. 2)E. Bear and Square Grid
链接:http://codeforces.com/contest/680/problem/E题意:给定一个n*n的地图和一个k,地图上有空地和障碍物两种。你能进行之多一次操作,操作:将一块k*k的区域内的所有障碍物清除。问操作完之后最大的一块空地的连通块能有多大。分析:因为n只有500,我们枚举操作打掉的那一个k*k的右下角(i,j)。那么我们只需要用4*k的复杂度去将它周围能连通的块都统原创 2016-06-18 17:49:35 · 825 阅读 · 2 评论 -
Codeforces Beta Round #19D. Points
链接:http://www.codeforces.com/contest/19/problem/D题意:给定n个操作,add x y:在平面坐标系中[x,y]位置插入一个点,remove x y:将平面中[x,y]位置的点删掉,find x y:输出所有[x',y'],x'>x,y'>y中x'最小的那个点,如果有多个点输出y'最小的那个点。分析:我们先离线将所有插入点和询问点都处理出来,将原创 2016-04-27 20:09:39 · 807 阅读 · 0 评论 -
Educational Codeforces Round 9 E.Thief in a Shop
链接:http://codeforces.com/contest/632/problem/E题意:给定n,k,然后给定n个1000以内的整数,求从中取k个(可重复取同一元素)能组成多少个不同的数,输出所有恰能用k个数组成的情况。分析:很明显这题只要将数x当做指数项直接去FFT即可,最后输出系数非0的项即可,另最大的数为x,mx=x*k,那么暴力FFT是O(mx*k*logmx),这样显然是原创 2016-03-21 21:08:19 · 694 阅读 · 0 评论 -
Codeforces Round #258 (Div. 2)E. Devu and Flowers
链接:http://codeforces.com/contest/451/problem/E题意:给定n,s,n分析:首先我们考虑忽略pi这个限制,那么我们就只要求C(s+n-1,n-1)即可。但是现在有pi这个限制怎么办呢?容斥即可,我们先考虑一部分花超过了pi的限制,那么我们就减去,但是我们在单独减去a类花超出和b类化超出的时候,对于a,b类花同时超出就减了一次,那么加一次回来,这就是原创 2016-02-26 01:17:58 · 370 阅读 · 0 评论 -
Codeforces Round #346 (Div. 2)
链接:http://codeforces.com/contest/659problemA:给定一个圆的周长n,初始在位置a,然后走b步,求最后位置在哪?分析:不想分析。O(1)代码:#include#include#include#include#include#include#include#include#include#include#include#i原创 2016-04-04 02:56:55 · 348 阅读 · 0 评论 -
Educational Codeforces Round 9
链接:http://codeforces.com/contest/632problemA:给定n,p,表示有n个人买了苹果(每次买剩下苹果的一半),p表示苹果的单价且为偶数,接下来n行字符串half表示当时第i个人买的时候苹果数为偶数,halfplus表示第i个人买的时候为奇数个,这个时候卖完之后剩的半个苹果会当礼物送给这个人。求一个卖了多少钱。O(n)分析:逆着算出总苹果数,再顺着算一下原创 2016-03-16 20:56:33 · 387 阅读 · 0 评论 -
Codeforces Round #342 (Div. 2)
链接:http://codeforces.com/contest/625problemA:很经典的问题,你有n元钱,有两种牛奶,A:a元一瓶,B:b元一瓶,喝完返还瓶子退回c元,问最大能喝多少瓶牛奶。分析:贪心先全买A或者B,取最大的即可。代码:#include#include#include#include#include#include#include#inclu原创 2016-02-25 01:39:55 · 621 阅读 · 0 评论 -
Codeforces Round #345 (Div. 2)
链接:http://www.codeforces.com/contest/651problemA:给定两个操作手柄的初始电量a,b,只有一个充电器,每一分钟如果不充电要消耗2%,在这分钟开始时就要消耗1%结束时再消耗1%,如果连上充电器会增加1%的电量。求两个手柄最多能撑多少分钟使得两个都有电。O(n)分析:while下去就行了。。特判一下(1,1)的情况。代码:#include原创 2016-03-09 19:49:28 · 450 阅读 · 0 评论 -
Codeforces Round #343 (Div. 2)
链接:http://codeforces.com/contest/629problemA:给你一个n*n的矩阵,矩阵每个格子要么为空要么为C,求有多少对满足条件的C,条件为这两个C在同一行或同一列。分析:直接统计每一行和每一列的C的个数,然后k*(k-1)/2加入答案即可。O(n^2)代码:#include#include#include#include#include#原创 2016-02-23 14:34:36 · 471 阅读 · 0 评论 -
Codeforces Round #316 (Div. 2)D. Tree Requests
链接:http://codeforces.com/contest/570/problem/D题意:给定一棵n个节点的树(1为根),每个节点上有一个小写字母,m个询问:给定v,h,问在以v为根的子树中深度为h(相对整棵树的深度)的所有点的字符能否组成回文串。分析:我们来将题目分解一下,首先我们确定构成回文串的条件,很显然要求“字母个数为奇数的字母小于等于1”,这里我们可以用异或储存偶数为0奇原创 2016-03-30 22:36:45 · 451 阅读 · 0 评论 -
Codeforces Round #344 (Div. 2)
链接:http://codeforces.com/contest/631problemA:给定两个数组A,B。设f(x,l,r)=x[l]|x[l+1]...|x[r],求max(f(A,l,r)+f(B,l,r))。分析:因为是取或是贪心变大,所以我们把整个数组或起来即可,即l==1&&r==n。O(n)代码:#include#include#include#include原创 2016-03-05 23:31:17 · 402 阅读 · 0 评论