自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

blue_tree2333的博客

菜鸡变成老油条的油炸之路。

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

原创 [bzoj-1607][Usaco2008 Dec]Patting Heads 轻拍牛头 题解

题目传送门 题意解析:题目很明显,给你每一只cow的编号ai,然后问你每只奶牛是它的约数是有几只(不包括自己)。My opinion:我还是小看了数据,一开始以为用O(n√n)可以卡过,没想到bzoj上的总时间只能有3秒,那么只能用O(nlgn)的算法了,那么很明显,对于每个a[i],它对答案的贡献是1,即对每个ans[j] (j%a[i]==0)答案加一,然后我们用类似筛法的写法就可以做到了。

2017-09-29 17:04:45 254

原创 [bzoj-3714][PA2014]Kuglarz 题解

题目传送门 题意解析:题目告诉了你有n个杯子,有个杯子下面有球,查看一段杯子下面球个数的奇偶性需要的花费,最后问你一定能确定球的位置的最小花费。My opinion:一开始看着题目的时候,草率的没有看完整个题目,只看到了一段数的奇偶性,然后我就以为是一道高斯消元,然后就被吓个半死,有种放弃的欲望。然后仔细一看,喵的,求最小花费????那TM的跟高斯消元有半毛钱关系(好吧,是我太愚昧了)。我们可以发

2017-09-29 11:20:44 268

原创 [bzoj-3211]花神游历各国 题解

题目传送门 题意解析:题目就是告诉你n个数,然后有m个询问,每次询问有两个操作,一个是把一段区间内的和输出,一个是把一段区间中的每个数取根号。My opinion:看到这题就应该知道应该用数据结构维护,不过这个根号该怎么办呢?我们都知道,根号让一个数降下来只需要几次就好了,而根号1或者0都不会变的,我算了一下让10^9变成1或0只需要根号5次就好了,所以,我们可以每次暴力根号,如果一段区间已经全部

2017-09-27 12:53:04 365

原创 [bzoj-3709][PA2014]Bohater 题解

题目传送门 题意解析:题目意思是告诉你有n只怪兽和你一开始的血条(这里我用HP表示,相信都懂的),每只怪兽会打掉你的血量,然后在你打死它之后会掉落血瓶让你回血。所以怪兽是先打掉你的血再给你回血(都懂都懂),所以回血和扣血是不同步的。最后问你可不可以打完n只怪兽以及最后的方案数。My opinion:这题目一开始的方法很明显,每个人当然会去选择先打回血比扣血多的,这样才能达到血量最大值去打另外的怪兽

2017-09-26 17:32:29 239

原创 [luogu-3379]【模板】最近公共祖先(LCA) 题解

题目传送门 模板题,没什么好说的。#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>#define rep(i,a,n) for (int i=a;i<=n;i++)#define per(i,a,n) for (int i=a;i>=n;i--)#define C

2017-09-25 16:53:04 208

转载 dalao的tajan模板

lca:最近公共祖先求LCA一般有用倍增的和tarjan的, 倍增的是O(nlogn)的但是可以在线; tarjan是O(n+Q)的但是必须离线。 应当对于不同的题目适当选择。tarjan算法的主要思想……是从要求的一对点的访问过程求来的。 比如以一个点u为根的多个小子树内,不同小子树内的点对的lca都是u。 那么可以dfs下去,回上去的时候用并查集合并整棵子树。看懂网上的或者书上的资料之

2017-09-24 20:02:31 238

转载 一些dalao的模板

费用流(MCMF)这东西很早之前就想写了……但是一直慵懒。 在最大流找增广路的过程中,同时要求了最小费用, 那么我们找的增广路就找费用最小的那一条。一般最小费用流的“费用”形式是:每条边有单位流量的代价。 那么求出了S~T的增广路里,cost最小的一条, 只要用增广的流量乘上这条增广路里每条边的cost即可。 如何找cost最小的一条呢? 用SPFA来寻找最短路。 注意了,费用流建边的

2017-09-24 19:57:13 225

原创 [51nod-1068]Bash游戏 V3 题解

题目传送门 一道很神奇的找规律题,前面几个找出来看看一猜一下。具体为什么我也不知道。#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>#define rep(i,a,n) for (int i=a;i<=n;i++)#define per(i,a,n) for (in

2017-09-24 19:55:02 171

原创 [51nod-1120]机器人走方格V3 题解

题目传送门 对于这题,我只能说,Lucas大法好,还有就是对于求上三角和下三角的方案数,基本跟卡特兰树有关。#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>#define rep(i,a,n) for (int i=a;i<=n;i++)#define per(i,

2017-09-24 18:52:50 224

原创 [51nod-1119]机器人走方格V1 题解

题目传送门 明显答案为C(n-1,n+m-2),不过有一百万所以预处理好了。#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>#define rep(i,a,n) for (int i=a;i<=n;i++)#define per(i,a,n) for (int i=

2017-09-24 18:06:04 214

原创 [51nod-1128]正整数分组V2 题解

题目传送门 题目要求最小值最大,而且分组是连续的,那么就没什么好说的了,二分答案+线扫直接上。#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>#define rep(i,a,n) for (int i=a;i<=n;i++)#define per(i,a,n) fo

2017-09-24 15:51:17 279

原创 [51nod-1441]士兵的数字游戏 题解

题目传送门 就是求每个素数因子的个数,然后用前缀和算出答案就好了。#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>#define rep(i,a,n) for (int i=a;i<=n;i++)#define per(i,a,n) for (int i=a;i>=

2017-09-24 15:40:02 247

原创 [bzoj-3713][PA2014]Iloczyn 题解

题目传送门 dalao又跟我说了一题水题。 看完题,都知道斐波那契几项后就特别大,所以只需要预处理出前面几项就好了。 (大约是45项左右,因为40项的时候就已经大于1个亿了)#include<iostream>#include<cmath>#include<cstdio>#include<cstring>#include<algorithm>#include<queue>#defi

2017-09-17 13:51:06 206

原创 [luogu-2831]noip2016-day2-T3 愤怒的小鸟 题解

题目传送门 题意解析:题目就是跟愤怒的小鸟这个游戏一样,不过就是每只小鸟的抛物线就是ax^2+b,a和b都是自己定义的,然后问你打光所有的猪需要用最小的小鸟数量。My opinion:一开始看到这题只会暴力(包括在比赛的时候)。但是你会发现猪可能会在同一条抛物线上,一下搞死两只,所以一开始你可以预处理出所有在同一条抛物线上的猪,然后你又会发现猪只有18只,妥妥的状压dp嘛,都没什么技术含量(这是一

2017-09-14 21:12:43 262

原创 [luogu-2877]noip2016-day2-T2 蚯蚓 题解

题目传送门 题意解析:题目给了你n条蚯蚓,然后让你每次找出一条长度最长蚯蚓,然后把它切断,而且每次切断的位置都会告诉你(每次切开都是按照一个比例来的)。然后蚯蚓就会向你所知道的一样变成两节(为什么是瞬间恢复的?而且长度为0也是一种特殊的存在,居然还不死)。最后这次砍断结束后,除了这次被砍断的蚯蚓,都会长长q的长度(长得真快)。My opinion:虽然这题有很多的槽点,但是我们还是得去做是不是,因

2017-09-14 20:39:50 239

原创 [luogu-2822]noip2016-day2-T1 组合数问题 题解

题目传送门 题意解析:题目就是给了你一个k,然后还有T组数据,然后问你在i<=n和j<=i的情况下C(i,j)%k==0的个数。My opinion:这题一开始看到是就是满眼的要TLE,不过我知道一个递推公式,可以表示出C(n,m)=C(n-1,m)+C(n-1,m-1)(m>=2,n>=1),这样我们就可以直接预处理出所有的C(n,m),但是我发现,C(2000,1000)会爆掉long lon

2017-09-14 20:37:01 478

原创 [poj-3253]Fence Repair 题解

题目传送门 题意解析:题目就是告诉我们n块木板,每块木板都有一个长度。然后一开始有一块木板,这块木板的长度是n块木板之和,然后每次都要把一块木板锯开,每次的费用就是木板的长度,最后问题得到一开始n块木板的费用最小值。My opinion:一开始看到这题时一脸懵逼的,完全不会,怎么锯?难道dfs,因为你不知道这块木板该锯成什么大小。又想了一会,突然发现这题跟合并果子差不多,只不过这题时倒着来的,我们

2017-09-10 21:13:12 321

原创 [hdu-4006]The kth great number 题解

题目传送门 题意解析:题目就是有n次操作,每次操作可以加入一个数或者查询,查询是查找在队伍里的第k大的数(k是一开始就给你的,每个测试数据k都是固定的)。My opinion:这题目一开始拿到时,看到n<=1000000和有多组测试数据着实吓了我一跳,我都怕输入超时了。感觉可以维护一个优先队列,但是又觉得十分麻烦,于是决定弄一个很暴力的方法。可以使用堆,每次维护一个只存在k个数的小根堆,每次加入一

2017-09-10 20:13:31 400 2

原创 [bzoj-2049][Sdoi2008]Cave 洞穴勘测 题解

题目传送门 这题就是一个dalao告诉我的lct裸题,用来练习模板,然而一次都没写过的我果断去看了hzw学长的代码,以此为模板练练手(然而还是不是很会写) 代码:#include<iostream>#include<cmath>#include<cstdio>#include<cstring>#include<algorithm>#include<queue>#define rep(

2017-09-10 19:09:34 196

原创 [bzoj-5018][Snoi2017]英雄联盟 题解

题目传送门 题意解析:题目有点像背包,就是给了你n个物品,每个物品有个价格和数量,然后问你在方案数>=m的情况下的最小花费。(方案数是显而易见的每种物品选取的数量之积)My opinion:题目很明显是一题类似背包的问题,所以当然是 dfs dp了。一开始想到的状态就是f[i][j]表示前i个物品,方案数是j的最小花费,可是这样的话,因为方案数太大,有10^17,先不说MLE,还有TLE。所以我们

2017-09-10 17:18:08 491

原创 [bzoj-1064] [Noi2008]假面舞会 题解

题目传送门 题意解析:题目给了你一个有限图,让你给这张图一次染色,每种色彩有种编号,每个点指向的点的颜色编号(设这个点的编号为i)应该是i+1(当色彩有m种,当前i=m时,指向的点的色彩编号应该为1)。最后问色彩的种类最多和最少是多少(最后的色彩数应该>=3)。My opinion:开始只会强行暴力染色,然后想了想可不可以二分色彩数,然后判读,却发现如果x可以,但是x+1不一定可以(手动绝望)。然

2017-09-10 16:00:03 368

原创 [luogu-1850]noip2016day1-T3 换教室 题解

题目传送门 题意解析:题目就是给了你相对应的2n个教室,m次换的机会。对于每一次去教师上课,你都可以申请或者不申请换教室,换的话就会浪费一次机会,当然每次换都有成功或者不成功的概率。然后题目一开始就告诉你了,每次你在哪个教室上课,还有换的话去哪个教师,以及每次的成功概率,还有每两个教室之间的距离。最后求最小的期望,每次期望就是路径长度乘以概率。My opinion:一开始在比赛看到这题………………

2017-09-09 14:23:50 1057

原创 [luogu-1563]noip2016day1-T1 玩具谜题 题解

题目传送门 题意解析:题目就是给了你n个人组成的一个环,然后从第一个人开始移动的方案,让你找出最后到达的位置。My opinion:看到题就知道是模拟,明显。(当然也是我noip唯一会做的题)这只不过是怎么来的问题罢了。总结: 直接模拟便可。有一种简洁的方式不用这么多的if语句。 你可以发现如果一个人朝向是向外的,他的左右是相反的(废话,题目里都说了) 所以左右和朝向分别用0,1表示,如果左

2017-09-09 10:24:22 385

原创 [bzoj-3175][Tjoi2013]攻击装置 题解

题目传送门 题意解析:题目就是给了你一张n*n的图,在图上有的点可以放棋子,有的不可以,这里的棋子跟马一样走“日”,然后问你最多能放几个互不攻击的马。My opinion:看到这种不能互相攻击的题,暴力点可以用dfs,但是这里n<=200,所以当然是用dfs二分图匹配了,建图十分明显,只要按与一个点能攻击到的所有点连一条边,然后跑二分图匹配就行了。最后的匹配数就是不可以放棋子的点数。但是这里有一个

2017-09-04 19:26:36 230

原创 [bzoj-1293][SCOI2009]生日礼物 题解

题目传送门 (这又是一位dalao告诉我的水题) 这题明显是一道线扫题,只要排序一下,在全部存在的情况下找出最小的答案就行了。 直接上代码:#include<iostream>#include<cmath>#include<cstdio>#include<cstring>#include<algorithm>#include<map>#define rep(i,a,n) for (

2017-09-03 20:30:06 232

原创 [bzoj-2761][JLOI2011]不重复数字 题解

题目传送门 这题就是去重,因为数字太大不能使用基数排序。 所以,我们可以使用快排,在排序的同时记录开始读入的时候的序号,最后去完重复之后用这个序号还原原来的序列。 (又是dalao提供的水题) 代码:#include<iostream>#include<cmath>#include<cstdio>#include<cstring>#include<algorithm>#includ

2017-09-03 19:29:54 220

原创 [bzoj-2463][中山市选2009]谁能赢呢? 题解

题目传送门 一位dalao告诉我的bzoj水题。 ……….. 已经不想写常规的题解了。 题目太明显了,既然两个人都是最优的策略,那么每个格子一定被跑过一遍,所以如果是二的倍数就是Alice赢,反之Bob赢。 直接上代码:#include<iostream>#include<cmath>#include<cstdio>#include<cstring>#include<algorit

2017-09-03 18:55:34 144

原创 [hdu-1512]Monkey King 题解

题目传送门 题意解析:题目给了你n只猴子,每只猴子都有一个战斗力,一开始每只猴子不属于任何一个猴子的队伍,然后会给你m组行动,每次x和y表示了x猴子和y猴子会遇上,如果两只猴子不属于同一个队伍就会打起来,然后两个猴子所在的队伍就会派出它们之中战斗力最强的一只打起来,最后战斗力强的会获胜,然后两个队伍就会合并,然后那只打赢的猴子的战斗力就会减少一半(也许是当上了猴王变懒了)。每次打斗输出赢的那只猴子

2017-09-03 18:01:10 320

原创 [luogu-2680]noip2015day2-T3 运输计划 题解

题目传送门 题意解析:题目给了你有n个点的一棵树,然后给了你m个询问,询问两个点之间的距离。你可以让一条边的长度变成0,并且这条边是对于所有的询问都是一样的,求最后使一条边变成0后,询问的答案的最大值最小。My opinion:这题目因为是一棵树,我们就可以预处理出每组询问在没有去边之前的答案,可以用lca求出两个点的最近公共祖先,再用u->v的距离=dis[u]+dis[v]-2*dis[p](

2017-09-03 17:42:28 181

原创 [luogu-2679]noip2015day2-T2 子串 题解

题目传送门 题意解析:题目给了两个字符串A和B,求由m个A的子串连接起来成为B的方案数是多少。My opinion:看到这题目的时候想到了最长公共子串,dp嘛。我一开始想到了一个三维状态,dp[i][j][k]表示A的匹配到第i个字符,B匹配到第j个字符,一共是k个子串的方案数,但是这样子做还需要多一重循环来枚举,明显超时。所以为了防TLE,使用了万金油——加维,dp[i][j][k][0/1]中

2017-09-03 16:30:11 281 1

原创 [luogu-2678]noip2015day2-T1 跳石头 题解

题目传送门 题意解析:题目就是给了你n个在数轴上的点,然后还有起点和终点,坐标分别为0和n,然后去掉最多m个点(除了起点和终点),使剩下的点两两距离的最小值最大。My opinion:这题唯一的问题是去掉的点不一定要取满m,只需要最后的最小值最大就行了,这时候如果我们知道答案的话,我们就可以判断,这个答案是否可行,而且如果x答案可行,那么x-1一定可行,如果x不可行,x+1一定不可行。所以可以使用

2017-09-01 18:16:33 257

空空如也

空空如也

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

TA关注的人

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