自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

FirstLucker

我的ACM之路

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

原创 HDU 5531 Rebuild 相切的圆们

终于迎来了长春的重现。赛场上太多的遗憾,比赛的时候唯一看都没看一眼的题就是这个题,太可惜了。连同B题一起,为了抢个FB对不住打重现赛的童鞋们了。。。。。求放过,也不知道这个时候写题解算不算违规呢哈哈。。。。。。题意:按顺序给出一个多边形,以多边形的每个顶点为圆心作圆,使得任意两相邻点对应的圆相切,求所有圆面积总和的最小值。画个图算两下

2015-11-01 13:25:37 1477 2

原创 HDU 5528 Count a × b 纪念长春站的遗憾

18日的长春现场赛已经过去4天。虽然说拿到学校的首届银牌还是很值得高兴的,但B题作为这场比赛唯一的数论题,由于时间不够未能AC我实在是感到遗憾。最后半个小时我只推公式推到了sqrt分解log求约数再处理的复杂度,如果再多一点点时间,如果思维再更快点,也许能推出最简化的公式,也许就能6题,就能绝杀金牌。。。可惜没有如果,感觉自己能力还不够,就这样与金牌失之交臂。下午重整了一下大脑,回想起赛场上推题的

2015-10-22 18:50:18 2821 2

原创 HDU 5321 Beautiful Set 美丽集合

题意:给定一个集合,含有n个数。浙理工先生和杭电先生各自有计算这个集合美丽值的方法。浙理工先生的计算方法是:对于这个n个数的某个排列,此排列的美丽值为这个排列所有的区间最大公约数之和。然后这个集合的美丽值为n个数的所有排列的美丽值之和。杭电先生的计算方法是:在这个n个数中选出k(1 ≤ k ≤ n)个数,对于某种选取方案,这种方案的美丽值为k个数的最大公约数乘上k。然后这个集合的美丽值为所

2015-07-29 17:03:33 2097 3

原创 LA 4123 Glenbow Museum 葛伦堡博物馆

题意:对于一个边平行于坐标轴的多边形,我们可以用一个由R和O组成的序列来描述它:从某个顶点开始按照逆时针顺序走,碰到一个90°的内角记R;碰到一个270°的内角记O。这样的序列称为角度序列。定义星型多边形为多边形中存在一个点可以看到多边形边界上每一个点。现在给定正整数n,求有多少个长度为L的角度序列至少可以对应一个星型多边形。其中多边形的每条边长任意。

2015-07-24 22:50:35 2197 1

原创 UVa 11361 Investigating Div-Sum Property 数字和与倍数

题意:给定正整数A,B,K问区间[A,B]之间有多少个数满足它本身是k的倍数且它的各个十进制数位上的数之和也是K的倍数。典型数位DP。对于区间计数问题,一般都是将区间先转化为左边界为1的,设区间[A,B]中满足条件的数的个数为cal(A,B),则cal(A,B) = cal(1,B) - cal(1,A - 1)。首先int范围内数位和最

2015-07-24 20:54:50 551

原创 LA 3516 Exploring Pyramids 多叉树遍历

题意:给出一棵多叉树,每个结点的孩子都有左右的顺序之分。定义该多叉树的遍历方式为根→从左往右遍历孩子→根。给出遍历的序列,求有多少种多叉树满足该遍历序列。区间DP。设dp[i][j]为序列中i~j位置的子区间所对应的多叉树的个数。边界值为dp[i][i] = 1。然后对于一个子区间,若长度为偶数或者头尾字符不同,则该序列无法满足一颗多叉树。否则,

2015-07-24 17:47:58 608

原创 UVa 11806 Cheerleaders 拉拉队

题意:在一个n行m列的网格内放k个石子,每个网格最多放一个,且保证第一行,第一列,最后一行,最后一列均要有石子。求有多少种不同放法。容斥计数问题。我们考虑不符合要求的放法,即第一行r1、第一列c1、最后一行rn、最后一列cm中至少有一个没有石子。计某个事件这样的方案数为S,则答案为S(r1) U S(rn) U S(c1) U S(cm),然后用容斥计算即可,答

2015-07-24 15:35:16 942

原创 UVa 11401 Triangle Counting 数三角形

题意:求从1~n中选3个数构成三角形的三边有多少种方案。枚举显然会TLE。n^2复杂度也不行。后来我提交发现就算是O(n)也会TLE。。。。。估计testcase很多吧。那只能打表了。用递推,设max_len[i]表示最长那条边为i的三角形个数,则有max_len[i] = max_len[i - 1] - ((i - 1)/2 - 1) + i - 3

2015-07-24 14:55:05 639

原创 UVa 11538 Chess Queen 象棋中的皇后

题意:在n行m列的棋盘上放置两个互相攻击的皇后(一白一黑),相互攻击是指两皇后在同行或同列或同斜线上。求放置的方案数。若n > m则交换n和m不影响结果,于是假设n ≤ m。分类讨论即可:同行:选n行,每行m*(m - 1)种放法同列:选m列,每列n*(n - 1)种放法于是同行列共m*n*(m + n - 2)种放法。同斜线:设斜线长度为i

2015-07-24 13:47:51 645

原创 Codeforces 560B Gerald is into Art 放矩形

题意:给定一个大矩形和两个小矩形,问两个小矩形是否可以同时放在这个大矩形中。条件是两个小矩形不能重叠(但可以共边)且不能超过大矩形边界。想法很简单,将一个小矩形放在大矩形左上角,另一个小矩形放在大矩形右下角,看是否重叠即可。不过要注意,有4种放法。因为小矩形可以横着放也可以竖着放,另外就是不要忘了判断是否会超过大矩形边界!

2015-07-23 01:56:59 1015

原创 Codeforces 560A Currency System in Geraldion 货币组合

题意:给出n种货币的面值,每种面值的货币都有无限多个,求不能表示出的货币面值的最小值。若所有面值都能表示则输出-1。个人感觉吧。这样的题看起来很有趣,但是想出来了又觉得很没意思= =哈哈。看有没有面值为1的货币呗,如果有的话,那么任意面值都能用若干个1加起来表示。如果没有的话,那最小不能表示的面值不就是1么!

2015-07-23 01:52:18 1445

原创 Codeforces 559B Equivalent Strings 等价串

题意:给定两个等长串a,b,判断是否等价。等价的含义为:若长度为奇数,则必须是相同串。若长度是偶数,则将两串都均分成长度为原串一半的两个子串al,ar和bl,br,其中al和bl等价且ar和br等价,或者al和br等价且ar和bl等价。实际上很水。直接按照题意模拟写个递归分治就可以求。比赛的时候总觉得这样暴力写会TLE,因为算了下大概是4

2015-07-23 01:43:15 1055

原创 Codeforces 559A Gerald's Hexagon 数三角形

题意:按顺序给出一个各内角均为120°的六边形的六条边长,求该六边形能分解成多少个边长为1的单位三角形。把单位三角形面积看做1,实际上就是求六边形面积。随便找六边形的三条互相不相邻的边,分别以这三条边为基础向外扩展一个等边三角形,即可将原六边形补成一个大等边三角形,然后用大等边三角形面积减去补上的3个小等边三角形面积就是原来六边形的面积。而等边三角形面积

2015-07-23 01:24:20 1255

原创 HDU 5297 Y sequence Y数列

题意:给定正整数n和r,定义Y数列为从正整数序列中删除所有能表示成a^b(2 ≤ b ≤ r)的数后的数列,求Y数列的第n个数是多少。例如n = 10, r = 3,则Y数列为2 3 5 6 7 10 11 12 13 14,第10个数是14。很有趣的一道数论题。题目给出的范围是long long范围的。所以显然不用去枚举每个数了,更不用说判断每个数是不

2015-07-21 20:50:35 1378 1

原创 HDU 5288 OO’s Sequence 区间个数

题意:对一个给定的数列,定义一个函数f(l, r),表示在[l, r]这个区间内,满足不是区间内任何其他数的倍数的数的个数。比如一个区间内的数为2,3,4,那么函数值为2。因为2和3都不是其他任何数的倍数,但4是2的倍数。现在要求所有的区间的函数值的和。看似比较复杂,不过我们可以换一种思路。与其求区间的函数值之和,不如计算每个数被算了多少次。打个比方,第

2015-07-21 19:59:45 833

原创 Codeforces 558C Amr and Chemistry 全都变相等

题意:给定一个数列,每次操作只能将某个数乘以2或者除以2(向下取整)。求最小的操作次数使得所有的数都变为相同值。比赛的时候最后没实现。唉,之后才A掉。开始一直在想二分次数,但是半天想不出怎么判断。后来发现其实每个数能变成的数很少很少(最多400个不到),于是想到用数学方法+一点暴力,可惜时间不够了。也不能完全算是数论题。只是用到了一些

2015-07-15 09:06:16 1247 2

原创 Codeforces 558B Amr and The Large Array 数组美丽值

题意:给一个数组,记数组中出现次数最多的元素出现的次数为这个数组的美丽值,求这个数组长度最短的子数组(要连续),使得该子数组的美丽值与原数组美丽值相等。要求输出子数组的起始和结束位置下标(从1开始)。也是个水题。每个数最大才10^6,用hash存储每个数出现的次数即可。注意有可能有多个不同的元素出现的次数都相等且为最大,需要一一判断。遍历数组的时候可以用

2015-07-15 07:56:52 1211

原创 Codeforces 558A Lala Land and Apple Trees 摘苹果

题意:n棵苹果树在x轴上排成一排,每棵苹果树有一个坐标值(均不为0)和苹果数量。现在某人从0开始任意选择一个方向走,每遇到一颗新的苹果树就摘下所有苹果,然后掉转方向直到遇到下一颗之前没遇到过的苹果树然后再摘下所有苹果,如此往复直到再也遇不到新的苹果树。问最多能摘下多少个苹果。水题。以0为中心,对坐标排序后计算左右两边的苹果树个数。如果左边小于右边,就先从左边摘,

2015-07-15 04:45:42 1187

原创 SPOJ 297 Aggressive cows 最小间隔

题意:给定n个从小到大排好序的数,要从中选出c个数,使得任意两个相邻数的间隔最小的值尽量的大。求最大的最小间隔。最小值最大这样的问题嘛,当然还是首选二分吧,如果可行的话。显然这题二分是可以做的。首先我们这样想。如果取出某c个数中最小的数不是第一个数,那么我们将它换成第一个数,这样第一个数和第二个数的间隔不会变小,所以最小的间隔一定不会变小。因此我们选数的时候必选第一个(

2015-07-13 17:22:11 732

原创 HDU 5281 Senior's Gun 杀怪

题意:给出n把枪和m个怪。每把枪有一个攻击力,每个怪有一个防御力。如果某把枪的攻击力不小于某个怪的防御力则能将怪秒杀,否则无法杀死。一把枪最多只能杀一个怪,不能用多把枪杀同一个怪。每杀一次怪可以得到枪的攻击力减去怪的防御力的的分数。求得分的最大值。贪心。首先我们考虑这样一种情况:用攻击力为A的枪杀防御力为a的怪,攻击力为B的枪杀防御力为b的怪。则得分为A

2015-07-13 16:33:24 713

原创 HDU 5280 Senior's Array 最大区间和

题意:给定n个数,要求必须将其中某个数改为P,求改动后最大的区间和可以为多少。水题。枚举每个区间,如果该区间不修改(即修改该区间以外的数),则就为该区间和,若该区间要修改,因为必须修改,所以肯定是把最小的数修改为P能保证该区间最后和最大,所以比较两种方案的较大者。对于每个区间取出的较大者,再取总共的最大者即可。注意一个trick,枚举到整个区间的时候,是必须要修

2015-07-13 16:27:32 729

原创 HDU 5277 YJC counts stars 数星星

题意:给出n个点和m条边,题目保证任意两条边如果相交那么交点一定是两条线段的端点。定义dujiao点集为点集中任意两点均连成线段。求所有的dujiao点集中点的个数最大是多少个,并输出有多少个点数个数最大的dujiao点集比赛的时候又脑残地各种写错。。。。。今天不适合做题。。。。。首先dujiao点集最多只能有4个点。道理很简单。因为任意两条

2015-07-04 23:18:17 681 1

原创 HDU 5276 YJC tricks time 时针分针角度

题意:给定一个角度x,问是否存在一个时间点,使得时针分针成 x 度角。题中将 x 扩大了12000倍,且只需要求出10秒的整数倍的时间点。按时间从早到晚输出。没有则不输出。是很水。。。。。可是比赛的时候不知道怎么脑残了把个角度算错了。大于180度的角angle脑残地转换成了angle - 180我也是醉了。。。。。比赛的时候居然还能通过。。。。。

2015-07-04 23:09:01 625

原创 LA 3902 Network 网络

题意:n台机器连成一个树状网络,其中叶节点是客户端,其他结点是服务器。目前有一台服务器正在提供VOD服务。现在要求在一些其他服务器上也安装VOD服务,使得每台客户端到最近服务器的距离不超过k。求最少还需安装VOD服务的服务器台数。将无根树转化为有树,题目给出了一个已安装服务的服务器,那么就选它作为根来构造树,这样深度不超过k的结点都不用考虑(已经被根结点

2015-07-04 06:56:55 633

原创 UVa 11520 Fill the Square 填充正方形

题意:给定一个n*n的正方形,其中某些格子填写有大写字母。要求用大写字母填满其他的格子,使得任意两个相邻格子大写字母不同,并且整个正方形按照从上到下,从左到右将字母写成一串的字典序最小。水题。从左上角开始,依次按照从上到下从左到右每个格子去填就行了,从A ~ Z枚举,找最小的可以满足的字母去填即可。#inclu

2015-07-04 06:06:31 634

原创 LA 3635 Pie 派

题意:有F + 1个人分N个圆形派,要求每个人分得的派的面积相同,每个人分得的派均来自于某一个派(即不能将多个派各分一点拼在一起)。求每个人能分得的派的面积的最大值。直接求不好求,但是给定一个分得的面积用于判断却不难,于是用二分做。判断当前值是否满足要求很简单,只需将每个派按照当前值看最多能分给几个人,如果N个派能分得的人数加起来不少于F + 1,则当前

2015-07-04 05:43:44 533

原创 LA 3971 Assemble 组装电脑

题意:给定电脑的n个配件,每个配件有类型,名字(没用的信息),价格和品质因子。要求每种类型的配件各买一个用于组装电脑,总价格不超过b元。求所有可能的方案中品质因子最差的那个配件的品质因子最大能是多少。非常的暴力。直接枚举每个配件的品质因子作为品质因子最差的配件,判断该配件的品质因子能否满足要求。能满足则更新最大值。判断方法很简单,对于每种类型的配件选择品质因子不

2015-07-04 05:08:44 760

原创 UVa 10795 A Diffenent Task 新汉诺塔问题

题意:按照标准汉诺塔的规则,给定初始局面和目标局面,求移动的最少步数。总之呢,汉诺塔问题基本全都是一个模式了——递归求解,不管它多么复杂。首先我们考虑最大的盘子n,如果初始与目标局面这盘子在同一个柱子上,就不必移动了,再考虑n - 1 ...... 假设最大的需要移动的盘子为k。设 k 原先所在的柱子为 x 目标局面所在柱子为 y ,那么k要移动的话,必

2015-07-04 03:28:54 638

原创 UVa 11384 Help is needed for Dexter 正整数序列

题意:给定正整数N,要求对序列1、2、3 ...... n 进行如下操作:选择若干个数,令它们同时减去一个正整数。求最少的操作步数,使得所有的数都变为0水题。试几下就发现答案了。设最少的步数为 f(n),则答案为 f(n/2) + 1。实际上可以证明这个答案。很显然,f(n)是个递增序列(不一定严格)。我们每操作一次时,肯定是选择连续若干个数进行操作,如果断续的话就令选

2015-07-04 01:51:43 850

原创 Codeforces 557C Arthur and Table 砍桌腿

题意:有n个桌腿,要砍掉某些桌腿使得剩下的桌腿能支撑桌子。规定剩下的桌腿中长度最大的桌腿的数量如果超过一半即可支撑桌子。砍掉每个桌腿需要付出代价。求最小的代价和。枚举。假如最后剩下的桌腿的最大长度为lenth,这样长度的桌腿有num个。那么长度大于lenth的桌腿肯定都被砍去了,然后在剩下的桌腿中按照代价从大到小选择num - 1个桌腿留

2015-07-01 04:56:52 2016

原创 Codeforces 557B Pasha and Tea 倒茶

题意:Pasha有2n个茶杯,每个茶杯的容积不同。Pasha有2n个朋友,男女各n个。现在Pasha要将总容积为w的茶倒在2n个茶杯里,分给这2n个朋友,并规定同性别的朋友茶杯中的茶容积相同,且每个男性朋友茶杯中茶的容积是每个女性朋友茶杯中茶的容积的两倍。求所有朋友茶杯中的茶容积之和的最大值。水题。首先按照茶杯的容积排序,较小的n个茶杯肯定是分给了女生,较大的n

2015-07-01 04:38:25 1791

原创 Codeforces 557A Ilya and Diplomas 区间选数

题意:给出3个区间 [L1,R1],[L2,R2],[L3,R3] 和正整数n,要求在3个区间内各选一个正整数,使得选出来的数之和为n。如果有多种选法,取从第一个区间内选出的数最大的选法。如果仍有多种选法,取从第二个区间中选出的数最大的选法,如果仍有多种选法,取从第三个区间内选出的数最大的选法。题目保证至少存在一种选法。水题。要使第一个区间内选出

2015-07-01 04:22:31 1073

原创 UVa 11210 Chinee Mahjong 中国麻将

题意就不细说了,就是给你一手麻将牌,按照题目的规定,判断可以和哪些牌。若不能和牌输出Not ready暴力,非常的暴力。。。。一共34张牌,给定了13张牌,然后直接枚举每张牌作为第14张牌加进去看是否能和牌,能和牌直接输出即可。判断和牌可以用递归实现:这里注意判断和牌时的处理技巧,先按照题目给的牌的种类进行排序,然后依次枚举其中可以做将牌的种类,去掉两张

2015-06-29 22:27:44 721

原创 Codeforces 555B Case of Fugitive 搭桥

题意:给出n段路和m座桥。每段路的两个端点一维坐标表示。要从m座桥中选出一些桥搭在每两条相邻的路上,使得这些路全部连通。每两条相邻的路之间只能搭一座桥,且桥长不能短于两段路之间的空隙,也不能超过两段路最长的端点距离。如果存在一种搭桥方法,则输出Yes并按题目给定的路形成的空隙的顺序输出每座桥的序号,若不能则输出No。题意换个说法实际上就是给定n - 1个区间和m个数,问是否能从m个数中选出n

2015-06-29 18:48:39 827 1

原创 Codeforces 556B Case of Fake Numbers 数字转盘

题意:有n个数字转盘,每个转盘都是由0 ~ n - 1这n个数字按逆时针排列,每个转盘都有一个活动数字。现在有个按钮,每按一次按钮,每个转盘的活动数字会按如下规则变化:第奇数个转盘的活动数字变为之前活动数字按逆时针方向的下一个数字(即 + 1)。第偶数个转盘的活动数字变为之前活动数字按顺时针方向的下一个数字(即 - 1)。问是否可以通过按若干次按钮,使得第 i 个转盘的活动数字为i。

2015-06-28 16:03:27 999

原创 Codeforces 556A Case of the Zeros and Ones 消除01串

题意:给出一个只由0和1组成的串,每次操作可以选择两个相邻的位置且这两个位置一个为0,一个为1(顺序无所谓)并删去这两个位置得到一个新串,然后可以对新串继续操作。操作次数无限制,令原串的长度不断缩短直至不能再短。求这个最短的长度为多少。虽然题目不难,不过还是证明一下自己思路的正确性。这里我主要是想说一下证明的思路。直观上看,只要发现两个相邻的是0和1就把它删去,不用考虑

2015-06-28 15:25:50 1256

原创 Codeforces 555A Case of Matryoshkas 套娃娃

题意:有n个玩具娃娃,编号为1 ~ n。要求一条链子上的娃娃必须满足编号小的娃娃套在编号大的娃娃上。规定两种操作:1、拆下编号最大的娃娃。2、将一条链上的娃娃套在一个没有套在任何其他链子上的娃娃上(有点绕)。意思就是比如有一条链1→2→4→5,你可以拆下5,然后变成两条链1→2→4和5,或者将这条链套在6上,但是6不能已经套在任何其他链子上,变成1→2→4→5→6。题目要求用最少的操作步数将所有的

2015-06-28 14:26:58 1489 1

原创 UVaLive 3401 Colored Cubes 彩色立方体

题意:有n个带颜色的立方体,每个立方体每个面都涂有一种颜色。要求重新涂尽量少的面,使得所有立方体完全相同。两个立方体完全相同是指存在一种旋转方式,使得这两个立方体对应面颜色完全一样。很暴力的题。首先每个立方体经过旋转,只有24种不同的状态(先选一个面作为前面,6种选法,然后选一个面作为上面,4种选法。共6*4 = 24种)。而n最大只有4,而且两个立方体经过旋转可以完全

2015-06-28 00:11:23 669

原创 UVa 11464 EvenParity 偶数矩阵

题意:给定一个n*n的01矩阵(每个元素非0即1),要求把尽量少的0变成1,使得每个元素的上下左右的元素(如果存在)之和均为偶数。暴力水题。当然也不能太暴力啦。很容易的一种想法是枚举每个0的位置是否需要变化,这样的复杂度将是O(2^(n^2))的复杂度是会TLE的。但是我们可以只枚举第一排的0。因为第一排的元素只受第一排和第二排元素的影响。所以第一排元素如果确定

2015-06-27 19:19:39 959

原创 UVaLive 2995 Image Is Everything 立方体成像

题意:给你一个n阶立方体,某些单位立方体缺失(剩下部分可以不连通)。未缺失的单位立方体6个面的颜色均相同。现给出该n阶立方体的6个面的视图,求这个立方体最多可以包含多少个单位立方体。由于n 1、若该单位立方体向6个面投影的视图中对应的位置为 '.' ,则该立方体缺失。2、若该单位立方体向某个面投影的路径上有其他立方体存在,则该单位立方体向这个面的投影不用考虑。

2015-06-26 21:34:00 890

空空如也

空空如也

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

TA关注的人

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