10 2015 档案
摘要:题目大意:某个人训练举重,他每次可以举起来2^wi的重量,不过这个人比较懒所以他想尽量减少训练的次数,如果所有的训练重量2^a1 +2^a2+....2^ak = 2^x,那么这些重量可以一次性训练(不需要连续),问他最少要训练几次才行。分析:已知 2^x+2^x = 2^(x+1),所以相同的是可...
阅读全文
摘要:同上面几道题差不多,需要先求出来内核,然后直接用叉积求出来面积即可。代码如下:#include#include#include#include#include#includeusing namespace std;const int MAXN = 1507;const int oo = 1e9+7;...
阅读全文
摘要:题目大意:询问是否在家里装一个监视器就可以监控所有的角落。分析:赤裸裸的判断多边形内核题目。代码如下:#include#include#include#include#include#includeusing namespace std;const int MAXN = 107;const int ...
阅读全文
摘要:题目大意:判断多多边形是否存在内核。代码如下:#include#include#include#include#include#includeusing namespace std;const int MAXN = 107;const int oo = 1e9+7;const double EPS ...
阅读全文
摘要:题目大意:RT分析:所谓内核可以理解为在多边形内存在点可以在这个点上看到多边形内部所有的部分,当然怎么求出来就是问题的关键了。我们知道多边形的每条边都是边界值,边的左边和右边肯定是一部分属于多边形一部分属于多边形外,如果这个多边形是顺时针的话那么右边就属于里面,左边就属于外边,如果这条变的外边那么一...
阅读全文
摘要:题目大意:如果一个数的所有因子都不是别的数的平方,那么这个数就是lovely数,现在给定一个数,求出这个数所有因子里面最大的lovely数分析:很有意思的一道题,如果把这个数因子分解成最基本的苏因子,那么 N = p1 * p2 * p3 * .....,lovely数的因子不能有别的数的平方和,那...
阅读全文
摘要:题目大意:有一个人他有每天需要吃ai千克肉,并且当天肉的价格是pi,问N天后他至少需要花费多少钱买肉。分析:注意一下,他是可以提前买好肉放着的。代码如下:#include#include#include#include#includeusing namespace std;const int MAX...
阅读全文
摘要:Pick公式:平面上以格子点为顶点的简单多边形的面积=边上的点数/2+内部的点数+1。代码如下:------------------------------------------------------------------------------------------------------...
阅读全文
摘要:题目大意:以原点为起点然后每次增加一个x,y的值,求出来最后在多边形边上的点有多少个,内部的点有多少个,多边形的面积是多少。分析:1、以格子点为顶点的线段,覆盖的点的个数为GCD(dx,dy),其中,dxdy分别为线段横向占的点数和纵向占的点数。如果dx或dy为0,则覆盖的点数为dy或dx。2、Pi...
阅读全文
摘要:题目大意:从原点开始,1-4分别代表,向右下走,向右走,向右上走,向下走,5代表回到原点,6-9代表,向上走,向左下走,向左走,向左上走。求出最后的多边形面积。分析:这个多边形面积很明显是不规则的,可以使用向量积直接求出来面积即可。代码如下:-----------------------------...
阅读全文
摘要:有一个M*N的矩阵,有一个会自动清洁的机器人,这个机器人会按照设定好的程序来打扫卫生,如果当前方向前面可以行走,那么直接走,如果不可以走那么会向右转动90度,然后回归上一步判断。求机器人最多能打扫的面积是多少。分析:直接搜就行了.......代码如下:------------------------...
阅读全文
摘要:题目大意:有N个球K个人,现在要给这N个球涂上K种颜色,要求使抽到球的不同颜色的概率一致(N确保是K的倍数),求出来至少要给多少个球重新涂上颜色。分析:先求出来所有球的每种颜色的个数,然后不到平均数的加上距离平均数的个数即可。代码如下:--------------------------------...
阅读全文
摘要:题目大意:有一个M*N的矩阵,在这个矩阵里面有三个王国,编号分别是123,想知道这三个王国连接起来最少需要再修多少路。分析:首先求出来每个王国到所有能够到达点至少需要修建多少路,然后枚举所有点求出来最少的即可。代码如下:----------------------------------------...
阅读全文
摘要:题目大意:利用n棵树当木桩修建牛圈,知道每头牛需要50平的生存空间,求最多能放养多少头牛。分析:赤裸裸的求凸包然后计算凸包的面积。代码如下:--------------------------------------------------------------------------------...
阅读全文
摘要:刚开始看这个题目不知道是什么东东,后面看了大神的题解才知道是稳定凸包问题,什么是稳定凸包呢?所谓稳定就是判断能不能在原有凸包上加点,得到一个更大的凸包,并且这个凸包包含原有凸包上的所有点。知道了这个东西就简单了,直接求出来凸包后,然后判断每条边上的点是否超过三点就行了。代码如下:==========...
阅读全文
摘要:题目大意:有个国王他有一片森林,现在他想从这个森林里面砍伐一些树木做成篱笆把剩下的树木围起来,已知每个树都有不同的价值还有高度,求出来砍掉那些树可以做成篱笆把剩余的树都围起来,要使砍伐的树木的价值最小,如果有价值相同的尽量使砍伐的树木少一些。分析:因为树木的数量是比较少的,所以枚举所有的状态,判断那...
阅读全文
摘要:给一些点,这些点都是一个凸包上的顶点,以第一个点为起点顺时针把别的点拍排一下序列。分析:最简单的极坐标排序了.....................代码如下:----------------------------------------------------------------------...
阅读全文
摘要:题目大意:给N个点,然后要修建一个围墙把所有的点都包裹起来,但是要求围墙距离所有的点的最小距离是L,求出来围墙的长度。分析:如果没有最小距离这个条件那么很容易看出来是一个凸包,然后在加上一个最小距离L,那么就是在凸包外延伸长度为L,如下图,很明显可以看出来多出来的长度就是半径为L的圆的周长,所以总长...
阅读全文
摘要:经过了低迷的大二后,进入了第二次的暑假集训,这次的集训状态非常好,把以前理解的一只半点的知识重新梳理了一遍,然后每天都是充满了激情的刷题。因为我们只有这最后一年了,如果这一年再拿不出来成绩那么前两年也算是白玩了,而且作为我们这样的弱校这样的失败也是承担不起的。其实如果真心想搞好acm那么就应该不...
阅读全文
摘要:大一结束的时候,也迎来了我们第一个暑假集训,当时因为没有学长带,所以老师给我们报名参加了北大的暑假集训(值得提的是当时第三个队友包子退掉了,换成了现在的队友wh,学校的代码女神),在北大的日子是很开心的,上午可以玩,下午学习,每天都有很大的收获,不过老师讲课的水准也是太高,所以基本上只能听懂前2...
阅读全文
摘要:一直在写题解,没有写过比赛的一些经历神马的,所以一次性补上吧,先从大一的开始写起 - -||,希望不要被吐槽~~。 大一应该是玩ACM最爽的一年,那时候还没有各路大牛,仅仅在自己的小圈子里面和朋友一起刷题,一起刷排名,每天都是很快乐的。记得当时和包子在一起刷题的时候,提交前都会双手合十祈求佛祖...
阅读全文
摘要:#include#include#include#include#include#includeusing namespace std;const int MAXN = 2007;struct BigNum{///数值保存从0位开始 int num[MAXN];///数值,逆序保存 in...
阅读全文
摘要:题目大意:已知一个多边形上的每条边的中点,还原出来一个多边形。分析:因为偶数是不固定的,所以可以为任意起点,奇数只有一个,可以所有中点加减算出来第一个点,然后就是简单的向量计算点的位置了......===================================================...
阅读全文
摘要:求N条直线最多能把一个平面分成几部分。代码如下:==============================================================================================================================...
阅读全文
摘要:题目大意:给你一个树,树每个点都有一个值, 这个点的的值就等于所有儿子里面点最多的那个儿子,值最小的就叫做重心,求出重心,还有所有等于重心的点,按照升序输出。分析:就是一个简单的搜索树,求出来最大的儿子点数就行......=======================================...
阅读全文
摘要:题目大意:有N对区间现在剔除一些区间,这些区间被另一些区间完全包含,如,Ai#include#includeusing namespace std;const int MAXN = 16007;struct node{ int x, y; friend bool operator da...
阅读全文
摘要:题目大意:在一个N*N的棋盘上放置M个国王,已知国王会攻击与它相邻的8个格子,要求放置的额国王不能相互攻击,求放置的方式有多少种。分析:用dp[row][state][nOne],表示本行状态state时候的放置国王nOne时候情况有多少种,状态转移也比较简单了.....代码如下:=========...
阅读全文
摘要:题目大意:有一个M*N的牧场,G(i, j) = 1表示这块地营养丰富,可以喂养牛,等于0表示贫瘠,不能喂养牛,所有的牛都讨厌与别的牛相邻,求有多少种放置牛的方式。分析:算是炮兵那个题的弱化版吧,先求出来所有的合法状态(不到500种),然后与上一行的状态匹配即可。代码如下:=============...
阅读全文
摘要:分析:先枚举出来所有的合法状态(当N=10的时候合法状态最多也就60种),用当前状态匹配上一行和上上一行的状态去匹配,看是否可以.....复杂度100*60*60*60,也可以接受。代码如下:======================================================...
阅读全文
摘要:题目大意:用 2*1 或者2*2-1的格子覆盖M*N的矩阵,有多少种覆盖方式。分析:容易知道有以下6种放置方式。然后用深搜的方法直接搞出来就行了,不过要使用两个变量来判断本位是否受影响。如果本行的放置可以影响上一行,比如(1,3,4,5,6)那么所影响的位置为0,如果没有受到影响那么就是1。代码如下...
阅读全文
摘要:题目大意:有一些1*2的矩形,现在用这些小矩形覆盖M*N的大矩形,不能重复覆盖,并且要覆盖完全,求有多少种覆盖方式。分析:可以使用1和0两种状态来表示这个位置有没有放置,1表示放置,0表示没有放置,可以有三种放置方式。一,竖着放。 二,不放。三,横着放。直接DFS这些情况就行了..............
阅读全文
摘要:题目大意:有个人需要搬家,有N件物品,给个物品的重量是 w[i] 然后又两个车,每个车的载重量分别是C1和C2,求最少需要运输多少次才能把这些物品全部运输完毕。分析:刚开始就发现物品数不多,想着直接先枚举一辆车运输的物品,然后计算它运输这些物品需要多少次,不过后来发现复杂度有点高,另一种比较好的解法...
阅读全文

浙公网安备 33010602011771号