自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 收藏
  • 关注

原创 Educational Codeforces Round 15--AMaximum Increase--求最长上升数列的长度

题意:给一个数列,求出这个数列最长上升数列的长度。输入:51 7 2 11 156100 100 100 100 100 10031 2 3输出:313分析:只找上升的数列,找到破坏上升数列的ID---k,用i - k,找到所有 i - k 中最大的那个即可。代码:#include #include using

2016-07-30 11:24:46 226

原创 HDU 5703--找规律

题意:给一个数,输出这个数可以分解成其他数几个数的和,输出这样分解的个数的二进制形式。输入:13输出:100分析:当a=3,b=4(100),当a=4,b=8(1000),当a=5,b=16(10000).当a=n时,b的二进制形式100..00(n-1)。代码:#include#include#include#include

2016-07-30 10:32:46 441

原创 HDU 5702

题意:给一些字符串,在每个字符串后面跟着一个数,每个数都不相同,根据数的大小将字符串进行排序。输入:33red 1green 2yellow 31blue 832red 2white 1输出:yellow green redbluered white分析:结构体,能保留其中一个元素的ID

2016-07-30 10:15:23 522

原创 POJ 3176

题意:一个数塔,从上到下只能走相邻的点即在一个三角形区域内,问从上到下最大的和是多少?输入:573 88 1 02 7 4 44 5 2 6 5输出:30分析:简单dp,就是一个数塔,可以用一维数组节省空间。状态转移方程:dp[i][j] = a[i][j] + max( dp[i+1][j], dp[i+1][j+1])

2016-07-29 11:20:20 263

原创 POJ 3175--条件枚举

题意:给出一个数 n,之后给出n个数,表示小数的位数,求那个数开方后的小数位数是这n个数,求出满足这样条件的最小数。输入:3123输出:17分析:如果 x.123... 这个数字的平方是一个整数的话,那必然sqr(x.124) > ceil(sqr(x.123)) [sqr = 求平方, ceil = 向上取整]所以,就

2016-07-29 11:15:13 319

原创 POJ 3170--双重BFS

题意:给一个 n 列 m行的矩阵,矩阵元素只有0,1,2,3,4,0表示可通过,1表示不可通过,矩阵中只有一个2和3,其他数字不限制,的问从2开始到所有的4在折回到3的最短路是多少。输入:8 44 1 0 0 0 0 1 00 0 0 1 0 1 0 00 2 1 1 3 0 4 00 0 0 4 1 1 1 0输出:11分析:两个B

2016-07-28 20:58:53 320

原创 POJ 3174--(坐标)找共线

题意:给 n 个点,然后给出这个 n 个点的坐标,找出三点共线的点,输出这样的点的个数,并输出他们的ID号即给出坐标时的次序,三个ID号为一行。输入:80 00 41 22 44 34 55 16 5输出:11 3 4分析:直接暴力,三重循环不超时。如果两点的横坐标之差*另外两点的纵坐标之差等于另外两点的横坐

2016-07-28 19:38:50 641

原创 HDU 4588--二进制的加法进位统计

题意:给两个数a b,问二进制情况下从a一直加1 直到b需要进多少位。输入:1 21 31 41 6输出:0236分析:二进制只是由1和0组成,二进制下的各数都有规律可循。9 8 7 6 5 4 3 2 10 0 0 0 0 0 0 0 0   (0)0 0 0 0 0 0 0 0 1   (1)0 0 0

2016-07-28 10:38:04 736

原创 图论500题

=============================以下是最小生成树+并查集======================================【HDU】1213   How Many Tables   基础并查集★1272   小希的迷宫   基础并查集★1325&&poj1308  Is It A Tree?   基础并查集★1856   More is be

2016-07-28 10:15:40 383

原创 CodeForces 427B

题意:n个囚犯站成一排,每个囚犯都有一个危害值代表其危害程度,现要连续运输c个囚犯到其他监狱,要求这c个囚犯的危害值均小于t,求一共有多少种选法。输入:4 3 32 3 1 11 1 1211 4 22 2 0 7 3 2 2 4 9 1 4输出:206分析:统计伤害值不大于t 的罪犯的数量--n

2016-07-27 21:24:02 243

原创 CodeForces 427A

题意:警察抓小偷,一共n 个人,-1表示小偷,整数表示警察的数量,一个警察只能抓他旁边的小偷,问没有抓住的小偷的数量。输入:3-1 -1 181 -1 1 -1 -1 1 1 111-1 -1 2 -1 -1 -1 -1 -1 -1 -1 -1分析:直接遍历,将所有的整数加和sum,遇到-1时判断,如果sum=0,就加一次,如果sum>0就su

2016-07-27 20:57:40 202

原创 CodeForces 534C

题意:第一行给两个数,n 和 A,n 表示有n 个骰子,A表示 n 个骰子掷出的数的和。第二行给出n个数,表示第n个骰子所能掷出的最大的数,这些骰子都有问题,可能或多或少的掷不出几个数,输出n个骰子掷不出的数的个数。输入:2 84 41 352 32 3输出:3 3 40 1分析:先将能够掷出的最大的数都加起来,之后求出除该

2016-07-27 20:37:19 468

原创 CodeForces 540D--概率dp

题意:在一个岛上,有 r 个石头,s 个剪刀和 p 个布,遵循石头剪刀布的规则,他们之间相遇的概率相等,问他们存活的概率。输入:2 2 22 1 21 1 3输出:0.333333333333 0.333333333333 0.3333333333330.150000000000 0.300000000000 0.550000000000

2016-07-27 19:55:41 383

原创 CodeForces 540C--自带标记的四方向搜索

题意:给一个 n 行,m 列的字符矩阵,*表示完整的冰块,X表示断裂的冰块,*踩一下变成X,X踩一下就断裂,之后给出两个确定的点,在保证冰块不发生断裂的情况下,问能否从一个点走到另一个点,并将到达的那个点的冰块踩碎,不能再原地踏步。输入:4 6X...XX...XX..X..X.......1 62 25 4.X.....XX.X......XX.5

2016-07-27 11:02:17 698

原创 CodeForces 540A

题意:给一个数字n,下面给 n 个数(0~9),表示真密码,然后下面同样给出n个数,表示伪密码,问将伪密码变成真密码最小的移动步数。输入:58219564723输出:13分析:当正向移动步数超过5时,就逆向移动。代码:#include using namespace std;int main(){ int n; char

2016-07-26 21:04:21 232

原创 CodeForces 288B

题意:给定 n 和k,n 表示有n个房子,然后每个有一个编号,一只鹅要从一个房间中开始走,下一站就是房间的编号,现在要你求出有多少种方法编号并满足下面的要求:1.如果从1到k开始走,一定能走到 1。2.如果从k+1到n 开始走,一定走不到 1.3.如果从 1 开始走,那么一定能回到1,并且走过房间数不为0.输入:5 27 4输出:54

2016-07-26 20:56:59 245

原创 ACM推荐网站 博客

ACM-ICPC世界网站http://acm.timus.ruhttp://acm.sgu.ruhttp://acm.hnu.cnhttp://acm.hdu.edu.cnhttp://acm.pku.edu.cnhttp://acm.zju.edu.cnhttp://acm.jlu.e

2016-07-26 20:29:50 463

原创 HDU 3368--搜索

题意:给出一个字符矩阵,*代表空白,D代表黑子,L代表白子,问在给出的字符矩阵中,黑子如何下子,使得两个黑子之间包含的白子最多。分析:枚举所有可以下子的点,每个点从8个方向进行寻找每个方向上的下一个黑子,得到该点能翻转的白棋数,比较输出最大的。代码:#include using namespace std;char c[10][10];int x[8]

2016-07-26 20:17:01 1143

原创 HDU 3363--贪心

题意:给一个数字n,之后给出一个长度是n的字符串,字符串仅由H和T两个字母组成,将该字符串进行切割,问如何切割才能保证H和T等分输入:4HHTT4HTHT4HHHT0输出:21 312-1分析:如果能将H和T进行等分,就说明H和T的数量是相同的,因此只需要看一个就可以,我们不妨看H,

2016-07-26 20:02:46 615

原创 CodeForces 288A--贪心

题意:给定一个长度为n的字符串,让你用前k种小写字母将字符串排成一个长度为n的,左右相邻字母不相同的,且字典序最小的字符串。注意必须要用K种。如果不能做到则输出-1.输入:7 44 7输出:ababacd-1分析:此题是一道典型的贪心问题,既要保证字符串中任意两个连续字符串不同,也要保证字典序最小,最简单的想法是只用a,b交替,在最后补上其他

2016-07-26 10:20:20 316

原创 CodeForces 289A

题意:第一行给两个数n,k,之后给出n 行每行两个数字a,b 表示区间的边界,每次调整的时候只能调整a-1或者b+1,而且区间之间不可相交,要保证n 个区间长度的和可以被k整除的移动步数。如果不用移动就能被K整除就输出0.输入:2 31 23 43 71 23 34 7输出:20分析:如果区间长度之和对 k 有余,那么它的移

2016-07-26 10:04:29 181

原创 CodeForces 289B--中位数

题意:一个n * m的矩阵,将该矩阵的元素经过加或者减一个固定的数字 d,使得该矩阵的所有元素全部相等,问运算的最小步骤?若不能做到则输出-1。输入:2 2 22 46 81 2 76 7输出:4-1分析:将矩阵的所有元素全部排序,找到中位数,将所有的数字向中位数靠拢,如果各元素对d的取余不相等,那么输出-1.当时做的时候,

2016-07-26 09:51:22 319

原创 CodeForces 288C--异或运算

题意:给一个数 n ,算出从0到n 的异或运算, ,输出运算后的最大值和p 的排列。输入:4输出:200 2 1 4 3分析:要想运算后的结果最大,应该将异或后的值全是1而且是尽可能多的1.因此,先算出最大的数,然后将最大的数与他的位置异或,如果结果大于 n,将位数减少一位,并将异或后的值和位置记录下来。代码:#include

2016-07-25 20:35:14 443

原创 CodeForces 534B

题意:一辆车,变速行驶,每秒走v,给第一秒的速度v1,最后一秒的速度v2,最大变速d,问t时间内,问该车最远能走多远?输入:5 64 210 1010 0输出:26100代码:#include using namespace std;int main(){ int v1,v2,t,d,sum=0; cin

2016-07-25 11:56:35 251

原创 CodeForces 540B--填数找中位数

题意:第一行 n,k,p,x,y,有n个任务,已经完成了k个任务,完成任务最大得分为p,最大得分总和是x,众多分数得分的中位数是y,问剩下的任务该得多少分才能保证分数总和不大于x,而且中位数不小于y。如果不可能出现这种情况则输出-1。输入:5 3 5 18 43 5 45 3 5 16 45 5 5输出:1 4-1分析

2016-07-25 10:52:23 285

原创 CodeForces 346A--博弈

题意:两个人从集合中取数,任意取出两个不同的数,集合中不能包含取出数的 |x-y|,如果谁取出的两个数字中的 |x-y|在集合中,那么这个人就输了,输出获胜一方的名字。输入:22 325 335 6 7输出:AliceAliceBob分析:游戏结束的标志是无法取出两个不同的数,即无论取出那两个数字,他们的绝对差都在集合中,换

2016-07-22 21:59:14 272

原创 CodeForces 349B

题意:题目意思:给定v升的颜料和9个需要花费ad升的颜料,花费ad升的颜料意味着得到第d个数字,现在要求在所有的花费不超过v升的情况下,使得这些数字组合起来是最大的。输入:55 4 3 2 1 2 3 4 529 11 1 12 5 8 9 10 601 1 1 1 1 1 1 1 1输出:5555533-1分析:

2016-07-22 18:08:38 282

原创 CodeForces 348A

题意:n 个人玩游戏,每轮游戏都有n-1 个玩家和1个主持,然后给出,每个人都想当几次玩家,问至少要办几轮比赛才可以满足每个人的需要?输入:33 2 242 2 2 2输出:43分析:要尽量少的办比赛,因此上界就是要求当玩家的最大需求+1,在满足这个前提下,将所有需求加和,除以玩家的数量,如果除不尽则向上取整。之后取最大值就行。代

2016-07-22 16:22:57 246

原创 Codeforces Round #363 (Div. 2)--B

题意:给两个数n,m,之后给出n行m列的字符矩阵,* 号代表墙,“.”表示空地,需要在字符矩阵里面安放炸弹,如果可以炸掉所有的墙,就输出YES,并输出安放炸弹的坐标,如果没有这样的位置,则输出NO。输入:6 5..*....*..*****..*....*....*..3 3..*.*.*..输出:YES3 3

2016-07-20 10:21:07 216

原创 Codeforces Round #363 (Div. 2)-C--贪心

题意:给一个数 n,之后再给n个数,当a=0时,表示必须休息,当a=1时,表示可以去比赛,当a=2时,表示可以去体育馆,当a=3时,既可以去体育馆也可以去比赛。无论去体育馆还是去比赛,都表示不能休息,两天都干一件事时要休息,问最少休息的天数?输入:41 3 2 071 3 3 2 1 2 322 2输出:201分

2016-07-20 10:11:32 229

原创 CodeForces 131A--大小写转换

题意:给一个字符串,如果全是大写或者开头小写后面大写转换为开头大写,后面小写,其余的保持不变。输入:cAPSCaps输出:LockLock代码:#include #includeusing namespace std;int main(){ char c[101]; int i,ans,s; cin >>c

2016-07-18 09:51:26 1054

原创 CodeForces 131C--组合数

题意:有n个男生,m个女生分组,一个组t个人,一组至少包含4个男生和1个女生,每个男生或者女生都是不一样的个体,问一共可以构成几组?输入:5 2 54 3 5输出:103分析:典型的排列组合问题,分组数=男生分组数 * 女生分组数=(Cn4+Cn5+...Cnn-i)+(Cn1+....Cnn-i)。代码:#include

2016-07-18 09:32:44 536

原创 CodeForces 131B

题意:给一个数 n ,然后给 N 个数(-10~10),一对相反数可以组成一组,问一共可以组成几组,0本身互为相反数。输入:5-3 3 0 0 330 0 0输出:33分析:将所有的数加10,统计每个数出现的次数,可以组成相反数的数目=num[i]*num[20-i],另外0特殊考虑即可,数目=num[0]*(num[0]-1)/2;代码:#in

2016-07-18 09:06:01 283

原创 CodeForces 166C--stl

题意:给你一个数n 和一个数k,然后给你一个由n个数组成的数列,先按非递减序排好,然后让你判断这个数列的第 (n + 1) / 2  项是不是k(数列的下标从1开始),如果不是,你要往这个数列中插入m个数使插入后的数列的第(n + m + 1) /  2 项是k , 输出m的最小值。输入:3 1010 20 303 41 2 3输出:14分析

2016-07-14 17:35:04 356

原创 CodeForces 166E--规律

题意:给上述图片,一个蚂蚁从D点出发,即经过下面A,B,C三个点重新回到D点,给定一个数 n ,问经过 n 条边回到D 点的路径有几条?输入:24输出:321分析:规律:n=0,n=1时是0,n=2时是3.,n=3时是6,n=4时是21,n=5时是60,n=3*(n-2)+2*(n-1);代码:#include #define

2016-07-14 16:29:28 493

原创 CodeForces 165C--字符串(暴力)

题意:给一个数字 k (kk 的子串?输入:1       10102       01010100   01010输出:640分析:直接暴力,分类讨论,情况一:1的数量小于k,输出0。情况二:k=0,这时只需要统计0的个数即可,由此找到规律,能组成的子串的数目=((0的个数+1)*0的个数 ) / 2。情况三:也是最重要最难的,找到

2016-07-14 16:08:31 653

原创 CodeForces 547A--找循环节

题意:给青蛙和花浇水,,每浇一次水,青蛙的高度变成 (x1*h1+y1)%m ,花的高度变成 (x2*h2+y2)%m,问至少经过多少步花和青蛙的高度等于相应的高度?输入:54 21 10 12 310231 21 01 21 1输出:3-1分析:两者都不能到达相应高度:输出-1;两者同时到达相应高度,输出任意一个;不同时

2016-07-13 11:24:09 282

原创 CodeForces 474D--规律dp

题意:一个东西爱吃花,有两种颜色红R和白W,他吃白花每次都一组一组吃,一组是连续在一起的k个,问在花的个数从ai到bi范围里,他总共有多少种吃法?分析:dp[i]是长度为 i 的方案数。当 i当 i>k时,dp[i]=dp[i-1]+dp[i-k]. 长度为 i 的方案数=长度为i-1的方案数+一朵红花或者长度为i-k的方案数 + K朵白花。代码:#includ

2016-07-13 09:54:37 398

原创 CodeForces 342B--模拟+贪心

题意:有 n 个人站在一条线上,先要将一个东西从从 s 手里传到 e 手里,每一秒可以传给相邻的一个人,在t[i]时间内,有 l[i] 到 r[i] 区间内的人会被监视,被监视的人不能传递和接受东西,在第t[i]秒时,手上握有纸条的人,可以选择不传或者往左往右传,请问要怎么传才可以最快将纸条从第s个人传到第f个人手上。分析:始终将 s 向 e 的方向去靠拢,统计从s到e的步数,如果

2016-07-08 16:40:39 280

原创 CodeForces 342C--矩形盒子能最多放多少个球

题意:一个盒子,形状由半球和立方体组成,长 h + r, 宽 2r ,深度 r ,每个球的直径是 r ,给定 r 和 h , 问该盒子能放球的最多数是多少?分析:固定的是,我们先放 h / r 的整数倍的球,即: int(h/r)*2,当剩余的 h' (即h 减去整数倍的r)不够 r 时,我们再进行判断,当 h'大于等于r / 2时,则还可以再放两个球,当 h'小于 r/2 时,此

2016-07-08 15:09:46 427

空空如也

空空如也

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

TA关注的人

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