自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

L_0_Forever_LF的专栏

曾是一个OIer

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

原创 BZOJ2331: [SCOI2011]地板

昨晚想了好久还是不是会压睡了一觉yy了一下突然会了 我也不知道这个叫不叫插头dp,毕竟没写过… 不过跑的很快快(自我满足一下qwq) 首先因为nm<=100,min(n,m)<=10,n>m时旋一下 考虑轮廓线dp,3进制状态 0表示:这样一个陷下去的轮廓线 1表示:这样一个由上面的倒L(可能是朝左也可能朝右)留下来的一个突出 2表示:这样一种最正常的,上面刚好填充完的轮廓 转移

2017-12-28 09:59:44 341 1

原创 BZOJ3844: ZCC loves cards

朴素的暴力是Cknk!k2C_n^kk!k^2,但事实上很多组合根本不可能达到ans,所以枚举了一个组合后先忽略一定是连续的异或和的限制,2k2^k判答案是否有可能超过ans,有可能再k!k2k!k^2找,在随机数据下表现良好QAQcode:#include<set>#include<map>#include<deque>#include<queue>#include<stack>#inc

2017-12-25 10:49:44 345

原创 BZOJ3843: ZCC loves Army

把树转成左儿子右兄弟的那种二叉树的形式 发现一个点能且仅能给他的子树传递order,询问3就变成了询问一个点到根有多少个点 对于传递message,可以给每个点定一个编号0的虚儿子,给他赋权1,就变成了询问两点间路径的权值和,注意要特判一个点是另一个点的祖先的情况,bzoj上的数据有误,不判这个才能过,hdu上的数据是对的可以去那里交 对于操作1,把某个人的一段儿子截下来,可以用n棵splay

2017-12-25 08:37:14 411

原创 BZOJ3841: ZCC Loves Intersection

两条线段有交的充要条件是每一维上都有交qwq 因为每个线段都平行一个坐标轴,他的表示应该是(l~r,x1,x2,x3…xn) A和B相交和A和C相交显然没有任何关系 算粗A,B相交的概率,乘上两两的组合数就行了 两条线段相交的概率画一下柿子就行了吧 然后写个高精..code:#include<set>#include<map>#include<deque>#include<queue

2017-12-25 08:22:02 360

原创 BZOJ3840: ZCC Loves COT

正解十分鬼畜…对标记的标记打标记….由于我匮乏的空间想象能力,我果断打了O(n3+nm+nq)O(n^3+nm+nq)的二维情况,然后卡过去了233考虑一维的情况,就是对l~r区间+1,差分后在l,r+1分别打标记,所有操作完扫一次 问题拓展到二维时类似,观察对每一维打的标记, +1,-1显然可以分开维护,+1标记是一列下去的,-1标记是沿斜线下去的,所以我们可以这样 用紫色的标记给+

2017-12-25 08:15:01 409

原创 「CodePlus 2017 12 月赛」白金元首与独舞

新建一个点ed代表边界外,将每个位置视作点,每个点出度为1,发现确定了每个点的出度后合法状态是个以ed为根的内向树原图中除了’.’的箭头可以确定k棵内向树,给每个’.’设置箭头就是给每棵树根(除了ed)设置出度,统计有向图的生成树个数 把每棵树根四个方向的边建进度数矩阵,这题是儿子指向父亲的内向树,度数矩阵建出度矩阵code:#include<set>#include<map>#include

2017-12-24 19:24:06 594

原创 BZOJ3724: PA2014Final Krolestwo

跪dalao……我们新建一个点0,连边向所有奇数度点,于是得到了一个偶数条边,所有点度数都是偶数的图 这个图存在欧拉回路,根据每次流出0,流入0的两个奇数点可以配对 但是这题要求路径长度为偶数,于是我们将n个点拆成2n个点,这样配对的奇数点之间的路径长度就是偶数了 我们现在想在2n个点中建入原图中的边,使所有点度数都为偶数 考虑怎么连原图中的边 0的度数显然为偶数 建出原图的生成树,对于

2017-12-20 20:02:14 419

原创 BZOJ3725: PA2014 Final Matryca

一开始看错题了qaq因为对每个位置都要刷一遍,对于不同颜色的位置i,j(i< j),长度要保证刷到i的格子不会刷到j,即j-i>n-L,显然只要用相邻的不同颜色限制长度,得出若干个关于L的不等式,可以解得L的最小值code:#include<set>#include<map>#include<deque>#include<queue>#include<stack>#include<cmat

2017-12-19 09:43:50 242

原创 BZOJ3726: PA2014Final Wykladzina

先不考虑可以包含坏格 如果求不包含坏格的最大子矩形,有一种办法是枚举矩形的下界,用一个单调队列扫过去,队列里维护左端点和对应的高度,显然随左端点递增,高度递增,预处理u[i][j]代表(i,j)上方第一个坏格的位置,枚举右端点j扫过去时维护队列里的高度,如果当前队尾不合法,那他在j-1的时候合法且面积最大,更新一下答案,更新一下队列那么包含一个坏格的最大子矩形就多维护一个队列就行了,每次从不包含坏

2017-12-18 16:17:12 330

原创 BZOJ3722: PA2014 Final Budowa

资瓷先手为-2,后手为-1,犹豫为0 从叶子开始往上考虑 如果一个人有偶数个0孩子,相当于没有0孩子,可以把他变成-2/-1 如果一个人有奇数个0孩子,且剩余孩子中-2=-1,那么这个人相当于0,否则也可以决定他的决策 一直缩上根,如果根是-2或0则先手必胜否则必败然后是输出方案 根是-2时显然先手可以任选一个0开始 根是0时,从根往下走,当一个孩子y的状态是0或者y是-1但是y中-2+

2017-12-17 21:09:45 572

原创 BZOJ3721: PA2014 Final Bazarek

要求和为奇数,就是选奇数个奇数,任意个偶数 将n个数按奇偶分类,f[i],g[i]表示取i个数和最大,取了f[i]个奇数,g[i]个偶数,显然都是各自最大的f[i],g[i]个 转移的时候枚举取出的是奇数还是偶数,从i-2,i-1转移到icode:#include<set>#include<map>#include<deque>#include<queue>#include<stack>

2017-12-17 20:55:51 330

原创 BZOJ3718: [PA2014]Parking

因为停车场无限长,贪心的想,肯定是先把堆在一起的车拆开,全部分散开,然后移到对应的位置再组合起来….(匮乏的语文表达能力,泥萌意会一下?所以求出初始状态和目标状态的排列顺序线段树找一下区间最大值判一下是否超过宽度就行了code:#include<set>#include<map>#include<deque>#include<queue>#include<stack>#include<cm

2017-12-15 09:51:13 332

原创 BZOJ3717: [PA2014]Pakowanie

如果最终需要ans个包,一定是最大的ans个 将容量排个序后从大到小状压dp,f[i]表示放了i状态的物品,至少用f[i]个包,当前包还剩g[i]的容量把i每一位取出来转移一下,可以用lowbit加速code:#include<set>#include<map>#include<deque>#include<queue>#include<stack>#include<cmath>#in

2017-12-15 09:48:30 394

原创 BZOJ3716: [PA2014]Muzeum

首先把给出的视线范围转成向量,建立以这两个向量为基底的平面直角坐标系,每个点得到新的坐标后取反横坐标,变成每个守卫可以看见横坐标比自己小,纵坐标比自己大的手办这个东西似乎对应一个最小割模型,加上所有手办的价值,源连守卫权为贿赂守卫的花费,守卫连他能看见的手办权为inf,手办连汇权为手办的代价,减去最小割因为图太大了,不能跑最小割 考虑到最小割=最大流,可以模型转化,每个守卫有花费这么多的流量,分配

2017-12-15 09:41:11 410

原创 BZOJ3714: [PA2014]Kuglarz

用s[i]代表1~i的球数,每次查i~j相当于知道了s[j]-s[i-1]的奇偶性 要确切知道每个位置有没有球,就是要知道所有s[i]-s[i-1]的奇偶性 然后对应一个MST的模型= =code:#include<set>#include<map>#include<deque>#include<queue>#include<stack>#include<cmath>#include

2017-12-15 09:31:33 216

原创 BZOJ3711: [PA2014]Druzyny

orz考虑dp,f[i]表示1~i至多分成几段,g[i]表示1~i分成f[i]段的方案数 转移的时候将c[i],d[i]的限制分开考虑 对于d[i]的限制,不难发现他有单调性,可以预处理L[i]表示L[i]~i-1的j满足d[i]的限制可以由j转移到i 然后考虑c[i]的限制,他没有单调性,于是对c进行分治 如果我们在处理[l,r]这一个区间,找出[l+1,r]内c的最大值的位置k,那么k左

2017-12-15 09:26:52 632

原创 BZOJ1140: [POI2009]KOD 编码

ORZ题目要求的是任意一个字符的后缀+若干个字符+这个字符后一定走回根的字符 因为最优编码树深度不超过log层qwq,所以可以打两个标记搜…第一个标记是这个点是不是一个后缀+若干个字符 先搜一遍所有点的后缀,打上这个标记,然后从这些标记点开始走,走任意一个字符,如果走完了这个字符,这个标记点没有走到根,这个字符就是不合法的,同时如果此时走到的位置没有标记,就可以打上第一个标记加入队列 第二个标

2017-12-14 08:18:00 362

原创 BZOJ1141: [POI2009]Slw

好神呀…手玩一下发现这个H(s)生成的串有个斐波那契的递推式 emmmmm然后我就啥都不会了….我们定义G(s)为H(s)的逆变换,即H(a)=b,G(b)=a 那么对于s中的每个1,如果后面是0,他会变成1,否则变成0 发现我们要验证s是否是S的子串,这个问题等价于验证G(s)是否是G(S)的子串 我们可以不断对s做逆变换,让他越来越短我们先来证几个结论 1:HnH_n的偶数项最后一位是

2017-12-12 20:57:57 282

原创 BZOJ1139: [POI2009]Wie

分成2^p层跑最短路…code:#include<set>#include<map>#include<deque>#include<queue>#include<stack>#include<cmath>#include<ctime>#include<bitset>#include<string>#include<vector>#include<cstdio>#include<

2017-12-11 18:46:07 311

原创 BZOJ1138: [POI2009]Baj 最短回文路

开始想建个n^2个点的图跑最短路来着…因为显然会T,一直在想优化结果不会就弃疗了..dp f[i][j]表示i到j的最短回文路长度 转移:f[i][j]=2+minc(f[u][v]),u∈S,v∈Tf[i][j]=2+min_c(f[u][v]),u∈S,v∈T,其中S是i走c边能到达的点集,T是走c边能到达j的点集 发现转移是O(n2)O(n^2)的 但我们可以通过dp时顺便处理一个mi

2017-12-11 18:28:28 272

原创 BZOJ1137: [POI2009]Wsp 岛屿

看错题了qwq看对题了也不会呀… 题解说是半平面交裸题 于是学了一下半平面交 贴个板子qwqcode:#include<set>#include<map>#include<deque>#include<queue>#include<stack>#include<cmath>#include<ctime>#include<bitset>#include<string>#incl

2017-12-11 16:30:49 293

原创 BZOJ1135: [POI2009]Lyz

似乎是hall定理的经典模型贪心的想,对于人的任意一个集合,肯定编号是连续的l~r一段更容易使匹配不合法 写成柿子就是∑ri=lsi>(d+r−l+1)k\sum_{i=l}^rsi>(d+r-l+1)k 把l,r移项,令ci=si−kci=si-k 柿子可以化为∑ri=lci>dk\sum_{i=l}^rci>dk 用线段树维护序列里的最大连续子序列和判一下code:#include<se

2017-12-11 16:28:19 346

原创 BZOJ1119: [POI2009]SLO

建一个n个点的图,若ax在b中的位置是y,就连一条x->y的边,每次可以交换两个出度,代价是wx+wy,问让所有边连成自环的最小花费每个环显然选出最小的wx顺着环换,也可以额外花费一些,和其他环并在一起,用其他环的wx换 判一下就行了code:#include<set>#include<map>#include<deque>#include<queue>#include<stack>#i

2017-12-11 16:22:17 275

原创 BZOJ1118: [POI2009]Prz

这题好像是个论文题??有个论文证明了这题做法的复杂度但是我太懒了没去看….一开始我以为这题是反着构造使F(x,y)为true的x,y序列,然后得到什么结论什么的 想了一会没得到什么有用的东西就弃疗了 (连续相同的元素可以合并好像对搜索还是挺有用的一个性质 问了Claris这题居然是搜索qwq注意到元素集合|S|<=100,因为F(x,y)的柿子每次去掉一种元素,所以不会超过100层 然后这个

2017-12-11 15:57:12 592

原创 BZOJ1117: [POI2009]救火站Gas

考虑贪心的去放消防站,让每个消防站的层数尽量浅,从而覆盖子树里的点的同时能对子树外产生贡献那么x要放消防站的时候,一定是x的子树里还未被覆盖的最远的点距离x的距离为k,如果这样的点有c个,我们要放⌈cs⌉\lceil \dfrac{c}{s} \rceil个消防站,这些消防站覆盖完了这c个点后,再去覆盖距离x距离为k-1的点,都覆盖完了后还能覆盖的点数上传给父亲 为什么这样是最优的,因为此时距离x

2017-12-11 15:44:47 435 1

原创 BZOJ1132: [POI2008]Tro

所以为啥用long long本地能过所有数据交上去就WA,一定要改int啊一开始写了个用点到直线距离公式的,维护两个指针扫过去 emmmmmm并不能过样例,因为有根号什么的东西,调不动….膜题解发现可以用叉积(好有道理..) 改成叉积,继续用两个指针扫….过了样例WA了… 调一下发现排序出的结果不是我想要的qwq 所以说我不会做各种几何题qwq那把题解看完吧 按x排序所有点,枚举每个点为原

2017-12-08 10:18:08 279

原创 BZOJ1130: [POI2008]POD Subdivision of Kingdom

直接搜感觉会T折半搜一下,meet in middle,位运算可以省掉一个ncode:#include<set>#include<map>#include<deque>#include<queue>#include<stack>#include<cmath>#include<ctime>#include<bitset>#include<string>#include<vector>

2017-12-08 10:11:47 344

原创 BZOJ1129: [POI2008]Per

模数m不是质数很麻烦qwq 先把他分解成m=∏Mi=1pikim=∏i=1Mpikim=\prod_{i=1}^Mpi^{ki} 用每个pikipikipi^{ki}做模数计算最后EXCRT合并那么现在模数Mod=pikiMod=pikiMod=pi^{ki} 计算s的排名,按位枚举i,计算1~i-1位与s相同,第i位&lt; s的序列数,最后+1 令p[i]表示位置i在序列里排第p[...

2017-12-08 10:09:24 821 2

原创 BZOJ1128: [POI2008]Lam

因为互质有很多美妙方便的性质,所以推一下可以弄出答案的柿子 ansi=1ai∏nj=i+1aj−1ajansi=\frac{1}{ai}\prod_{j=i+1}^n\frac{aj-1}{aj} 于是这个分子分母会非常大…要写高精 因为要最简,需要资瓷一下高精和单精取gcd,因为有(a,b)=(a,bModa)(a,b)=(a,bModa ),写个高精模单精后直接gcd就行了 然后资瓷一下

2017-12-08 09:59:40 316

原创 BZOJ1127: [POI2008]KUP

先考虑单个格子 如果有某个格子的值在[k,2k]可以直接输出 如果在[2k+1,+∞),因为所有元素非负,这个格子一定不能选,把这个格子标记出来 于是最终的矩形一定全部由< k的元素组成 若这个矩形的和>2k,我们将他分割成2个矩形,不可能和都< k,所以我们不断分割一定能构造出一个合法答案 于是找出原矩阵中不含标记点的极大子矩阵,若他的和#include<set>#include<ma

2017-12-08 09:53:04 430

原创 BZOJ1126: [POI2008]Uci

因为出发点是在左下角,每次只能右转,所以走的一定是个顺时针,不能走已走过的位置限制了剩余能走的区域一定是个矩形 f[l][r][d][u][0 to 3]f[l][r][d][u][0\ to\ 3]表示当前能走的矩形区域的四条边的位置和当前的方向,因为矩形确定了,方向确定了,当前位置其实也就确定了所以不用记录当前位置 数组开不下这么大,但注意到按照dp的顺序,l是递增的,可以滚动掉这一维 转

2017-12-08 09:47:55 465

原创 BZOJ1125: [POI2008]Poc

我是真的没有任何码力可言qwq splay维护串的hash值 每次更改hash值,在splay上给所有那个值的点打个答案标记 特殊处理交换同一个串code:#include<set>#include<map>#include<deque>#include<queue>#include<stack>#include<cmath>#include<ctime>#include<bit

2017-12-08 09:42:31 500

原创 BZOJ1124: [POI2008]枪战Maf

发现这是若干个基环内向树和若干个环 最坏情况下: 一个单独的环死剩1个 一个基环内向树死剩入度为0的点 最优情况下,显然按照拓扑序开枪死的人最少,模拟一下就行了注意特判一个单独的自环qwqcode:#include<set>#include<map>#include<deque>#include<queue>#include<stack>#include<cmath>#inclu

2017-12-08 09:39:51 334

原创 BZOJ1122: [POI2008]账本BBB

每次取反序列的和改变2,旋转和不变 根据原始序列的和,q-p可以算出至少要取反的次数,如果额外的次数记作花费,产生花费只可能是因为某个前缀和<0 预处理1~i,i~n前缀和的最小值,因为至多旋转n-1次,枚举旋转次数,算粗前缀和最小的位置,保证这个位置>=0就可以保证序列合法,算一下花费什么的code:#include<set>#include<map>#include<deque>#in

2017-12-08 09:36:14 420

原创 BZOJ1997: [Hnoi2010]Planar

先将哈密顿回路展在平面上,尝试给他连上原图中的其他边 每条边我们可以画在环内或者环外,有些边之间有冲突,不能同时在环内或环外,这就对应了一个2-SAT模型 直接tarjan判一下有没有u,u’在同一个连通分量就行了 边数是m^2的,Tm^2会T 因为平面图有个性质 m<=3n-6,用这个剪枝就行了code:#include<set>#include<map>#include<deque>

2017-12-07 10:28:36 330

原创 BZOJ2525: [Poi2011]Dynamite

我想O(n)但是好像不太行? 于是二分一下答案 贪心的取标记点,每个标记点让他的层数尽量浅以对其他子树产生贡献 f[i]表示i的子树一定要多少个标记点,g[i]表示i的子树内最浅的标记点的层数,d[i]表示i的子树内未被覆盖的最深的点的层数 贪贪贪,dp一下 有一些细节qwqcode:#include<set>#include<map>#include<deque>#include<

2017-12-06 21:22:08 258

原创 BZOJ4059: [Cerc2012]Non-boring sequences

右端点扫过去,用线段树每个左端点,区间内只出现一次的数的数目code:#include<set>#include<map>#include<deque>#include<queue>#include<stack>#include<cmath>#include<ctime>#include<bitset>#include<string>#include<vector>#includ

2017-12-06 21:18:34 294

原创 BZOJ4584: [Apio2016]赛艇

转化+dp

2017-12-06 21:08:45 226

原创 BZOJ4071: [Apio2015]巴邻旁之桥

在河同一边的可以不理他问题就是有若干个人在A侧l位置,要通过桥到B侧r位置 l< r 当K=1时发现答案就是所有l,r的中位数 因为ans=|p−l|+|p−r|ans=|p-l|+|p-r|(好有道理我怎么没发现qwq) 同时这启示我们(观察易得??qwq)当有两个桥时,每个人会选择更接近(l,r)中点的桥 所以我们将(l,r)按照中点排序后,两个桥将这些人分成了两部分,我们枚举这个分界

2017-12-06 20:55:34 417

原创 BZOJ4070: [Apio2015]雅加达的摩天楼

没判重点一直炸qwq这题看起来就很最短路 但是直接建边明显不行 注意到当p>n√\sqrt n时边数是n√\sqrt n的,总边数nn√n\sqrt n 当p<n√\sqrt n时,可以发现对于p相同,mod p下相同的两个 点我们会建重复很多边 具体来说,如果有x< y,px=py, x%p=y%p,那么x连到y右边的j边可以通过x->y->j,x只需要连到y就好了 那么这样的总边数是

2017-12-06 20:34:33 401

空空如也

空空如也

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

TA关注的人

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