PA
L_0_Forever_LF
一个热爱OI的OIer
展开
-
BZOJ3728: PA2014Final Zarowki
贪贪贪将一开始的灯泡和房间从小到大排个序 房间倒着处理,每个房间找>=他的功率的还未匹配的最小的灯泡,将他们匹配上 找不到匹配的灯泡一定要花费一次替换,打个标记在上面,先不管他 匹配完房间如果已经不够替换就gg 否则将每个房间匹配的灯泡-他的要求塞进一个大根堆 去掉堆顶的剩余替换次数个code:#include<set>#include<map>#include<deque>#inc原创 2017-11-17 19:54:23 · 384 阅读 · 0 评论 -
BZOJ3726: PA2014Final Wykladzina
先不考虑可以包含坏格 如果求不包含坏格的最大子矩形,有一种办法是枚举矩形的下界,用一个单调队列扫过去,队列里维护左端点和对应的高度,显然随左端点递增,高度递增,预处理u[i][j]代表(i,j)上方第一个坏格的位置,枚举右端点j扫过去时维护队列里的高度,如果当前队尾不合法,那他在j-1的时候合法且面积最大,更新一下答案,更新一下队列那么包含一个坏格的最大子矩形就多维护一个队列就行了,每次从不包含坏原创 2017-12-18 16:17:12 · 353 阅读 · 0 评论 -
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 · 606 阅读 · 0 评论 -
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 · 369 阅读 · 0 评论 -
BZOJ3718: [PA2014]Parking
因为停车场无限长,贪心的想,肯定是先把堆在一起的车拆开,全部分散开,然后移到对应的位置再组合起来….(匮乏的语文表达能力,泥萌意会一下?所以求出初始状态和目标状态的排列顺序线段树找一下区间最大值判一下是否超过宽度就行了code:#include<set>#include<map>#include<deque>#include<queue>#include<stack>#include<cm原创 2017-12-15 09:51:13 · 341 阅读 · 0 评论 -
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 · 439 阅读 · 0 评论 -
BZOJ3716: [PA2014]Muzeum
首先把给出的视线范围转成向量,建立以这两个向量为基底的平面直角坐标系,每个点得到新的坐标后取反横坐标,变成每个守卫可以看见横坐标比自己小,纵坐标比自己大的手办这个东西似乎对应一个最小割模型,加上所有手办的价值,源连守卫权为贿赂守卫的花费,守卫连他能看见的手办权为inf,手办连汇权为手办的代价,减去最小割因为图太大了,不能跑最小割 考虑到最小割=最大流,可以模型转化,每个守卫有花费这么多的流量,分配原创 2017-12-15 09:41:11 · 445 阅读 · 0 评论 -
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 · 245 阅读 · 0 评论 -
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 · 679 阅读 · 0 评论 -
BZOJ3724: PA2014Final Krolestwo
跪dalao……我们新建一个点0,连边向所有奇数度点,于是得到了一个偶数条边,所有点度数都是偶数的图 这个图存在欧拉回路,根据每次流出0,流入0的两个奇数点可以配对 但是这题要求路径长度为偶数,于是我们将n个点拆成2n个点,这样配对的奇数点之间的路径长度就是偶数了 我们现在想在2n个点中建入原图中的边,使所有点度数都为偶数 考虑怎么连原图中的边 0的度数显然为偶数 建出原图的生成树,对于原创 2017-12-20 20:02:14 · 456 阅读 · 0 评论 -
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 · 278 阅读 · 0 评论