自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ZSQ

新的一天,新的不会

  • 博客(23)
  • 收藏
  • 关注

原创 CodeForces 735 D.Taxes(数论)

Description 给出一个数n,将其拆成最少数量的素数 Input 一个整数n(2<=n<=2e9) Output 输出拆成的最少素数个数 Sample Input 4 Sample Output 2 Solution n为2答案是1 n为大于2的偶数可以拆成两个素数,答案是2 n为奇数有三种情况: 1.n是素数,答案是1 2.n-2是素数,答案是2 3.n拆成

2017-05-04 19:45:39 420

原创 CodeForces 735 C.Tennis Championship(水~)

Description n个人比赛,两个人比赛的前提是这两个人赢的场数之差不超过1,输的人直接淘汰,问最后的冠军最多可以赢多少场 Input 一个整数n表示参赛人数(2<=n<=1e18) Output 输出冠军最多可以赢的场数 Sample Input 2 Sample Output 1 Solution 设f[i]为冠军赢i场时所需的最少参赛人数,为使参赛人数最少,冠军最后

2017-05-04 19:34:12 898

原创 CodeForces 735 B.Urbanization(贪心)

Description 一个有n个数的集合,要拿出两个不相交子集,一个n1个数,一个n2个数,问两个集合算术平均值之和的最大值 Input 第一行三个整数n,n1,n2,之后n个整数a[i] (1<=n,n1,n2<=1e5,n1+n2<=n,1<=a[i]<=1e5) Output 输出两个子集的算术平均数之和的最大值 Sample Input 2 1 1 1 5 Sample

2017-05-04 19:25:09 464

原创 CodeForces 735 A.Ostap and Grasshopper(水~)

Description 给出一个长度为n的字符串,起点在G,每次只能跳k步,问是否可以调到T点处,#为障碍,.为空地 Input 第一行两个整数n和k表示字符串长度和每次可以跳的距离,之后一个长度为n的字符串(2<=n<=100,1<=k<=n-1) Output 可以跳到则输出YES,否则输出NO Sample Input 5 2 #G#T# Sample Output YE

2017-05-04 19:19:42 699

原创 CodeForces 734 E.Anton and Tree(dfs)

Description 给出一棵树,每个点有黑白两色,对于一个点v操作一次,会把所有到v路径上点全部和v同色的点u染成另一种颜色,问至少需要多少次操作才能使得整棵树同色 Input 第一行一整数n表示点数,之后n个整数c[i]表示第i个点的颜色,0表示白色1表示黑色,之后输入该棵树的n-1条边(1<=n<=2e5) Output 输出最少操作数 Sample Input 11 0 0

2017-05-04 19:16:31 501

原创 CodeForces 734 D.Anton and Chess(map)

Description 一个棋盘上只有一个白子和n个黑子,黑子有三种: B:可以走对角线,不能越过其他子 R:走直线,不能越过其他子 Q:可以走直线也可以走对角线,不能越过其他子 问这个白子是否会被某个黑子吃掉 Input 第一行一整数n表示黑子数量,之后两个整数x,y表示白子位置,最后n行每行输入一个黑子的类型和其位置(xi,yi) (1<=n<=5e5,-1e9<=x,y,xi,y

2017-05-04 19:05:52 488

原创 CodeForces 734 C.Anton and Making Potions(二分)

Description 一个瓶子产生一滴药水需要x分钟,有两类方案加速,第一类方案有m种方法,第i种方法是消耗b[i]法力使得产生一滴药水的时间变成a[i]分钟,第二类方案有k种方法,第i种方法是消耗d[i]法力瞬间产生c[i]滴药水,至多可以使用一种第一类方案和一种第二类方案,问在消耗法力不超过s的情况下最少需要多少时间可以产生n滴药水 Input 第一行三个整数n,m,k分别表示要产生的

2017-05-04 18:55:35 495

原创 CodeForces 734 B.Anton and Digits(水~)

Description 有k2个2,k3个3,k5个5,k6个6,要组成若干个32和256,问组成数的和的最大值 Input 四个整数k2,k3,k5,k6(0<=k2,k3,k5,k6<=5e6) Output 输出组成数的和的最大值 Sample Input 5 1 3 4 Sample Output 800 Solution 水题,先构造256,然后再构造32 Code

2017-05-04 18:36:13 461

原创 CodeForces 734 A.Anton and Danik(水~)

Description 两个人玩了n局游戏,问谁赢的次数多 Input 第一行输入一整数n表示游戏局数,之后一个长度为n的字符串表示胜负情况,A表示Anton赢了,D表示Danik赢了(1<=n<=1e5) Output 如果Anton赢的多则输出Anton,如果Danik赢的多则输出Danik,如果一样多则输出Friendship Sample Input 6 ADAAAA Sa

2017-05-04 18:31:32 460

原创 CodeForces 733 F.Drivers Dissatisfaction(最小生成树-Kruskal+在线倍增法)

Description 给出n个点m条边,每条边有边权,第i条边边权为w[i],可以花费c[i]使得第i条边边权减一,在花费不超过S的情况下求最小生成树 Input 第一行两个整数n和m分别表示点数和边数,之后m个整数w[i]表示第i条边的边权,之后m个整数c[i]表示减少第i条边单位边权需要的花费,之后m行每行两个整数u和v表示u和v之间有一条边,最后一行一整数S表示总花费(2<=n<=2e

2017-05-04 16:29:49 719

原创 CodeForces 733 E.Sleep in Class(队列)

Description n层楼,每层有一个指示牌指示当前是上一层还是下一层,每经过一层指示牌就会反向,对于一个起点i,最后要经过多少步才能到第0层或者第n+1层,对于每个i输出结果 Input 第一行一整数n表示楼层数,之后一个长度为n的字符串表示初始状态每层的指示方向(1<=n<=1e6) Output 输出n个整数,第i个整数表示初始时在第i层时要经过多少步才能出去,如果永远出不去则输

2017-05-04 16:14:28 596

原创 CodeForces 733 D.Kostya the Sculptor(水~)

Description 给出若干长方体形状石头的边长,可以从中至多选出两块石头组成一块新石头(被选出的两块石头必须有一面一样这样才能组成一块新的长方体石头),然后把这个长方体石头切成最大的正方体石头,问能够切出的最大正方体石头的边长 Input 第一行一整数n表示石头数量,之后n行每行三个整数a[i],b[i],c[i]表示一块石头的三个边长(1<=n<=1e5,1<=a[i],b[i],c[

2017-05-04 15:16:09 359

原创 CodeForces 733 C.Epidemic in Monstropolis(贪心)

Description 一排n个怪兽,每个怪兽有一个重量,如果一只怪兽大于其相邻的一只重量比它小的怪兽那么就可以吃掉这只怪兽并合并其重量,一秒只会有一只怪兽吃掉旁边的怪兽,给出n-k秒后的k只怪兽重量,问是否存在一种合法的合并方案能够使得这n只怪兽变成k只怪兽 Input 第一行一整数n表示初始状态怪兽数量,之后n个整数a[i]表示第i只怪兽的重量,然后输入一整数k表示最后怪兽数量,之后k个整

2017-05-04 15:03:10 448

原创 CodeForces 733 B.Parade(水~)

Description 两个长度均为n的序列a和b,至多可以交换某一位置上的数,问a序列和和b序列和的差的绝对值最小时交换的位置 Input 第一行一整数n表示序列长度,之后n行每行两个整数a[i]和b[i] (1<=n<=1e5,1<=a[i],b[i]<=500) Output 输出a序列和和b序列和的差的绝对值最小时交换的位置,如果没有交换时最小则输出0 Sample Input

2017-05-04 14:42:55 695

原创 CodeForces 733 A.Grasshopper And the String(水~)

Description 给出一个长度为n的字符串,从0开始跳过这个字符串到n+1位置,除最后一步每步只能跳到元音字母,最小化跳跃距离的最大值 Input 一个长度不超过100的只有大写字母组成的字符串 Output 最小化后的跳跃距离最大值 Sample Input ABABBBACFEYUKOTT Sample Output 4 Solution 扫一遍得到相邻两个元音之间最

2017-05-04 14:35:48 747

原创 CodeForces 732 F.Tourist Reform(边双连通分量)

Description 给出一个n个点m条边的图,现在要给每条边定向,定向后定义r[i]为顶点i可达的点数,要求最大化r[i]的最小值 Input 第一行两个整数n和m分别表示点数和边数,之后m行每行输入两个整数u和v表示u和v之间有一条边(2<=n<=4e5,1<=m<=4e5) Output 输出最大化后的r[i]最小值,然后输出定向后的每条边 Sample Input 7 9

2017-05-01 22:54:02 509

原创 CodeForces 732 E.Sockets(贪心)

Description 有n台电脑,第i台需要能量p[i]的电源充电,有m个电源,第i个电源能量为s[i],一个电源只能给一台电脑供电,第i个电源给第j台电脑供电当且仅当s[i]=p[j],有电源分流器可以将一个电源的能量减半, 一个电源可以用多个电源分流器逐次减半,问最多可以给多少台电脑供电,保证给最多电脑供电的情况下最少用多少个电源分流器 Input 第一行两整数n和m分别表示电脑数和电源

2017-05-01 22:34:03 484

原创 CodeForces 732 C.Sanatorium(水~)

Description 一个人出去出差,给出出差期间早餐午餐晚餐数量,问最少差了几顿餐 Input 三个整数a,b,c分别表示早中晚三餐数量(0<=a,b,c<=1e18,a+b+c>=1) Output 输出最少差的餐数 Sample Input 3 2 1 Sample Output 1 Solution 简单题,分若干情况讨论即可,一顿多了先扔一个到前面作为起点然后补齐,

2017-05-01 22:17:27 661

原创 CodeForces 732 B.Cormen — The Best Friend Of a Man(贪心)

Description 给出一个长度为n的序列a,现在要给a序列的每个元素加若干值变成b序列使得b序列任意两个相邻数之和至少为k,问总共至少需要加多少 Input 第一行两个整数n和k,之后n个整数a[i]表示该序列(1<=n,k<=500,0<=a[i]<=500) Output 输出总共至少需要加多少,之后输出b序列 Sample Input 3 5 2 0 1 Sample

2017-05-01 22:03:36 431

原创 CodeForces 732 A.Buy a Shovel(水~)

Description 有无限个10元硬币和无限个r元金币,一件物品k元,问至少需要几件物品才不要找零 Input 两个整数k和r(1<=k<=1000,1<=r<=9) Output Sample Input 117 3 Sample Output 9 Solution 枚举件数,至多10件 Code#include<cstdio>#include<iostream>#i

2017-05-01 21:52:14 557

原创 CodeForces 731 F.Video Cards(水~)

Description 给n个数,要选一个数不能动,其他数需要减小到其可以整除这个不动的数得到新序列,问选谁不动才能使得新序列和最大 Input 一个整数n表示数的个数,之后n个整数a[i] (1<=n,a[i]<=2e5) Output 输出最大的和 Sample Input 4 3 2 15 9 Sample Output 27 Solution 统计每个数出现的次数并求

2017-05-01 21:45:39 477

原创 CodeForces 731 E.Funny Game(dp)

Description 有一个序列n个元素,两个人轮流操作,每次可以选择序列的任意前缀合并成一个数,当前步的得分就是合并的数值,如果轮到某人拿的时候序列只剩一个元素则游戏结束,两个人拿的时候都想最大化自己的得分与对方得分的差值,问游戏结束的时候两人得分差值 Input 第一行一整数n表示序列长度,之后n个整数a[i]表示该序列(2<=n<=2e5,-1e4<=a[i]<=1e4) Outpu

2017-05-01 21:27:32 539

原创 CodeForces 731 D.80-th Level Archeology(水~)

Description 有n个序列,每个序列的每个元素都是1~c中的某个数,每次操作可以所有小于c的数加一,c变成1,问最少经过多少次操作可以让这n个序列按字典序是升序的 Input 第一行两个整数n和c表示序列长度和序列元素的范围,之后n行每行输入一个序列的长度和序列的每个元素(2<=n<=5e5,1<=c<=1e6,序列总长不超过1e6) Output 输出使这n个序列字典序升序的最少

2017-05-01 21:14:34 461

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除