自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Hanks_o的博客

有权限号的bzoj蒟蒻用户

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

原创 bzoj1024: [SCOI2009]生日快乐(dfs)

题目传送门 。。解法: 首先他要面积一样。 那肯定对于每一块都是均分啊。 而且。。 N不说了。 搜索代码实现:#include#include#include#include#include#include#includeusing namespace std;double dfs(double x,double y,int d) { if(x

2018-01-30 12:59:43 363

原创 bzoj1040: [ZJOI2008]骑士(树形Dp)

题目传送门 神。。解法: 做法还是蛮容易的。 首先它肯定是无向的。因为讨厌是互相的嘛。 然后它肯定是森林(显然) 对于每一棵树。 它如果有m个点。 那么它就会有m条无向边。 那么它只有一个环。 所以我们对于每一棵树,找到一条边。 断开这条边后它剩下m-1条边成为一棵树。 那么对于断开的这条边相连的两个点记为x和y。 对于x和y分情况讨论。 首先他们肯定不能同时选因为一

2018-01-29 20:14:52 288

原创 GDKOI2018游记

Day0颓废了一上午。 唯一干的事情就是记了记打都没打过的对拍(注意这是个flag) 下午坐车到了广州。 晚上躺在床上颓。 无聊跟肉老师说了句 “明天考AC机怎么办。我连模板都没打过” 神flag! 然后就开着十六度的空调睡觉了。Day1早餐吃的真不爽。人好多。。 早餐的时候顺便问了下对拍怎么打。。 然后就一脸懵逼的走进了考场。面对T1题面良久,看不懂。 T2看

2018-01-28 22:00:06 470 1

原创 bzoj4884: [Lydsy2017年5月月赛]太空猫(dp)

题目传送门 。。解法: 很水的dp嘛。 因为你落地了才能左右动。 所以每个横坐标只有两种情况一种天一种第。 分两种情况dp转移咯。代码实现:#include#include#include#include#include#include#includeusing namespace std;int n;long long s[110000],x[11000

2018-01-24 21:08:57 276

原创 bzoj1005: [HNOI2008]明明的烦恼(prufer数列+高精度)

题目传送门 。。。解法: 卡了一天。。 原来是高精度数组开小了??? 其实就是组合嘛。 假设cnt为-1的个数。 sum为各个规定的度数-1的和。那么首先在一个n-2的prufer数列里面。 有sum个位置被确定了。 首先就是n-2里选sum。 然后sum个可以进行排列。 那么乘sum的阶乘。 但是里面会有重复。 所以需要除以每个(d[i]-1)的阶乘。 这里我用

2018-01-23 15:12:03 354

原创 bzoj1957: 楼房重建(线段树)

题目传送门 。。解法: 有点玄学呀。。 区间维护两个值。 一个值维护这个区间有多少个能被看到。。而仅仅只是这个区间里面不受区间外的影响。 一个值维护区间最大斜率。 那么怎么维护答案呢。 首先对于一个区间。分成两段,分别为左区间和右区间。 左区间肯定不受右区间影响。 所以可以直接继承。 那么右区间的就会受左区间的最大值影响。 分情况讨论。 设右区间为x。左区间的最大值为t

2018-01-21 16:41:32 330

原创 bzoj1230: [Usaco2008 Nov]lites 开关灯(线段树)

题目传送门 …..解法: 裸线段树。。 打个lazy。。代码实现:#include#include#include#include#include#include#includeusing namespace std;struct node {int l,r,lc,rc,c,n,lazy;}tr[210000];int len;void bt(int l,i

2018-01-20 16:19:55 321

原创 bzoj3211: 花神游历各国(线段树)

题目传送门 。解法: 线段树。 开根的话想了很久不知道整段咋开。。 然后。。 发现数字不会变。 那么一个数开几次就变成0或1了就没得变了。 那么我们就可以不动他。 那么我们记录区间最大值。 如果区间最大值小于等于1的话就不用往下开咯。 小小的优化。 开根就暴力咯。代码实现:#include#include#include#include#include

2018-01-19 21:00:37 223

原创 bzoj1211: [HNOI2004]树的计数

题目传送门 。。解法: prufer数列。 有这么三个性质: 一个prufer数列与一个无根树一一对应。 一个n个节点的无根树的prufer数列长度为n-2。 一个点的度数等于他在prufer数列里面出现的次数+1。。第三个性质这样证明: 首先需要了解prufer序列如何构造: 看这里 在prufer数列中,如果一个点出现了两次,那么肯定有两个点连向他。 那么还有一次呢

2018-01-19 15:29:01 421

原创 bzoj1430: 小猴打架(prufer序列)

题目传送门 好神。解法: 了解到一种叫prufer序列的东西。 这个东西大概就是用n-2的序列表示出n个点的树。 %%%代码实现:#include#include#include#include#include#include#includeusing namespace std;typedef long long ll;const ll mod=9999

2018-01-18 14:55:15 328

原创 bzoj1458: 士兵占领(最小割)

题目传送门解法: 好水的最小割。不就是套路吗。。。 首先先把所有的行跟列加起来。 因为你最多最多只需要这么多啊。 然后一个士兵可能会有两次贡献(一次行,一次列) 就相当于找尽量多的贡献为2的士兵。 按照这个图去建最小割即可。代码实现:#include#include#include#include#include#include#includeusing

2018-01-16 16:57:58 367

原创 bzoj3781: 小B的询问(莫队)

题目传送门 裸解法: 裸莫队。 之前写的代码实现:#include#include#include#include#include#include#includeusing namespace std;typedef long long ll;struct node {int l,r,s;ll ans;}a[110000];int f[110000];bo

2018-01-08 13:47:32 289

原创 bzoj2157: 旅游(树链剖分)

题目传送门 呵呵呵。解法: 没学过树剖看这里 很水很水的树剖? 整段取反就打个lazy嘛。列举各种情况。 就会发现,取反时: 最大值等于原来最小值取反,最小值等于原来最大值取反。其他维护最大值最小值和就没什么了吧。代码实现:#include<cstdio>#include<cstring>#include<cstdlib>#include<iostream>#include<al

2018-01-03 13:26:34 321

空空如也

空空如也

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

TA关注的人

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