自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

世界

誰も いない 枯れた世界で 悪戲の 意味を知ったよ

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

原创 BZOJ 2216 Poi2011 Lightning Conductor 动态规划

题目大意:给定一个序列aia_i,对于每一个ii求⌈max{aj+|i−j|−−−−−√}−ai⌉\lceil max\{ a_j+\sqrt{|i-j|}\}-a_i\rceil看了题解才知道是决策单调性。。。 那我这个做法可以算是乱搞了? (似乎这个做法也可以拓展到所有满足决策单调性的1D1D上?)显然我们可以做两遍,第一遍只考虑j<ij<i,第二遍只考虑j>ij>i 首先根号这东西有个性

2015-06-30 21:34:52 2254

原创 codeforces Round #310(Div.1) 题解

嘴巴选手真爽,一不用打代码二不用掉Rating三还可以打杂。。。。 感觉这套题不难,但是被出题人出瞎了。。。555A. Case of Matryoshkas题目大意:给定nn个大小从11到nn的套娃,初始套成kk坨,每次你可以选择两个操作: 1.选择一个不在任何其他套娃里的套娃,将里面的套娃取出来(要求原先里面有套娃) 2.选择一个不再任何其他套娃里的套娃,将一个套娃塞进去(要求原先里面没有

2015-06-29 22:00:31 1514

原创 BZOJ 1513 POI2006 Tet-Tetris 3D 二维线段树

题目大意:给定一个矩阵,初始每个位置上的元素都是0,每次选择一个子矩形,将这个子矩形内的值修改为这个子矩形内的最大值+hh,求最终所有位置上的最大值我们需要维护一种数据结构,支持更新子矩形的值和查询子矩形最大值似乎二维线段树就可以了?但是YY了一下我们会发现两个没法解决的问题: 1.标记的下传 2.信息的上传其实。。。第一个很好办嘛!不下传不就好了! 标记永久化,无需下传,只要查询的时候对线段

2015-06-28 20:46:59 2447

原创 BZOJ 2091 Poi2010 The Minima Game 动态规划

题目大意:给定nn个数,两个人轮流取,每次可以取走任意一些数,获得的分值是这些数中的最小值 两个人都想让自己的分值-对方的分值最大,求最终先手得分-后手得分显然每个人取走的都是当前剩下的数中最大的一些数 那么考虑倒着做,令fif_i表示剩余最小的ii个数时先手-后手的最大差值 那么有DP方程fi=max{aj+1−fj}(0≤j<i)f_i=max\{a_{j+1}-f_j\}(0\leq j

2015-06-28 19:40:48 1657

原创 BZOJ 2797 Poi2012 Squarks

题目大意:现在有nn个互不相同的正整数xix_i,两两之和共有n∗(n−1)2\frac{n*(n-1)}2个和,现在给定这些和,求x1,x2,...xnx_1,x_2,...x_n最小的数一定是x1+x2x_1+x_2 次小的数一定是x1+x3x_1+x_3 由于比x2+x3x_2+x_3小的数只能是x1+xix_1+x_i,因此x2+x3x_2+x_3只能是第3...n3...n小的数,枚举

2015-06-28 17:31:53 1511

原创 codeforces #464C Substitutes in Number

题目大意:给定一个10510^5位的数字,每次操作选择一个数字x(0≤x≤9)x(0\leq x\leq9),将所有的xx替换成数字串ss,求最终的结果 mod 109+7\ mod\ 10^9+7 由于最终数字的长度是指数级别的,我们不能模拟 考虑倒着做 fi,jf_{i,j}表示执行[i,n][i,n]中的所有操作后数字j(0≤j≤9)j(0\leq j\leq9)会变成什么 当然这个数

2015-06-24 17:48:59 1218

原创 BZOJ 3168 Heoi2013 钙铁锌硒维生素 矩阵求逆+匈牙利算法

题目大意:给定一个n∗nn*n的满秩矩阵AA和一个n∗nn*n的矩阵BB,求一个字典序最小的1...n1...n的排列aa满足将任意一个AiA_i换成BaiB_{a_i}后矩阵AA仍然满秩我们考虑建立一个二分图,如果AiA_i能换成BjB_j,就在i−>ji->j之间连接一条边那么这个图怎么建呢?考虑一个行向量BiB_i,我们在AA中找到最小的行向量集合满足BiB_i可以被这些行向量线性表出,那么显

2015-06-24 16:32:56 2892

原创 BZOJ 1449 JSOI2009 球队收益 费用流

题目大意:给定nn支球队,第ii支球队已经赢了winiwin_i场,输了loseilose_i场,接下来还有mm场比赛,每个球队最终的收益为Ci∗x2i+Di∗y2iC_i*x_i^2+D_i*y_i^2,其中xix_i为最终的胜场,yiy_i为最终的负场 求最小化收益考虑一只球队,其收益与在接下来的比赛中的胜场数关系为: 赢00场 Ci∗win2i+Di∗(di+losei)2C_i*win_

2015-06-24 11:06:44 1666

原创 BZOJ 2217 Poi2011 Lollipop

题目大意:给定一个由1和2组成的序列,多次询问是否存在一个区间满足区间和=xx 如果x>sumx>sum显然无解 如果存在一个前缀和为xx则直接输出 否则一定存在一个前缀和[1,i][1,i]等于x+1x+1 然后我们将左右端点同时右移 显然如果某一时刻a[l]=1a[l]=1或者a[r+1]=1a[r+1]=1那么我们就找到解了 记录extiext_i表示从ii开始有多少个连续的22

2015-06-23 18:37:42 1591

原创 BZOJ 2118 墨墨的等式 堆优化Dijkstra

题目大意:给定nn个物品,每个物品有一个非负价值,问[L,R][L,R]区间内有多少价值可以被凑出来 好题!!! 如果物品数量可以为负,显然求个gcdgcd就行了 现在物品数量必须非负 任选一个ai>0a_i>0,如果一个价值k∗ai+x(0≤x<ai,k≥0)k*a_i+x(0\leq x<a_i,k\geq0)可以被凑出来,那么显然(k+1)∗ai+x,(k+2)∗ai+x,...(k+

2015-06-23 14:40:38 4303

原创 BZOJ 1150 CTSC2007 数据备份Backup 堆+贪心

题目大意:给定一个长度为n−1n-1的序列,要求选出kk个不相邻的数使得和最小 费用流显然能跑,而且显然过不去- - 考虑用堆模拟费用流 一个错误的贪心是每次取最小,这样显然过不去样例 我们把【每次取最小】改为【每次选择一个区间取反】,用堆来维护这些区间即可 每次取出最小的区间,然后将两边合并 (比如现在堆里有[1,3][4,4][5,5])这三个区间,我取走了[4,4]并计入答案,那么

2015-06-23 10:56:57 2014

原创 BZOJ 1124 POI2008 枪战Maf 贪心

题目大意:给定nn个神枪手,每个神枪手瞄准一个人,以一定顺序开枪,问最少和最多死多少人首先考虑最多 对于每个联通块: 如果这个连通块只有一个人,那么这个人自杀,死亡人数为11 如果这个连通块是一个环,那么可以活下来一个人,死亡人数为size−1size-1 否则除了叶节点之外其他人都可以死,死亡人数为size−cnt叶节点size-cnt_{叶节点}接下来考虑最少 首先叶节点一定不能死

2015-06-22 14:52:18 2068

原创 BZOJ 4128 Matrix Baby-Step-Giant-Step+矩阵求逆

题目大意:给定两个n∗nn*n的矩阵AA和BB,求一个最小的非负整数xx满足Ax≡B( mod p)A^x≡B(\ mod\ p) 保证[0,p][0,p]内有解

2015-06-21 17:27:46 2216 2

原创 BZOJ 4147 AMPPZ2014 Euclidean Nim 博弈论+数论

题目大意:给定nn个石子,两人轮流操作,规则如下: 轮到先手操作时:若石子数<p<p,那么只能添加pp个石子,否则可以拿走pp的倍数个石子 轮到后手操作时:若石子数<q<q,那么只能添加qq个石子,否则可以拿走qq的倍数个石子 拿走所有石子的人胜利,问先手是否必胜,或输出游戏会永远进行下去令d=gcd(p,q)d=gcd(p,q),那么若dd不能整除nn,游戏将会永远进行下去 否则将p

2015-06-18 16:55:18 2726 3

原创 BZOJ 4145 AMPPZ2014 The Prices 状压DP

题目大意:给定n个商店和m种物品,你需要每种物品买一个,去第ii个商店的路费是did_i,第ii个商店出售第jj种物品的价格是ci,jc_{i,j},求最小花销 令fi,jf_{i,j}表示当前已经考虑了前ii个商店,购买的状态为jj的最小花销 然后每个商店内跑个背包即可#include <cstdio>#include <cstring>#include <iostream>#inc

2015-06-18 14:32:04 1896

原创 BZOJ 2530 Poi2011 Party 构造

题目大意:给定一张nn个点mm条边的图(n≡0( mod 3)n≡0(\ mod\ 3)),保证存在一个大小为23n\frac23n的团,要求输出一个大小为13n\frac13n的团每次找一对没有连边的点对将其删掉 由于这对点之间没有连边,因此两个点不可能都存在于团中,也就是说我至少删掉了11个不在团中的点 那么不超过13n\frac13n次操作后所有不在团中的点都会被删掉 此时最多删掉了23n

2015-06-18 13:40:13 1749

原创 BZOJ 1563 NOI2009 诗人小G 四边形不等式

题目大意:玩具装箱,然而指数变成了pp(p≤10p\leq10)首先我们需要证明决策单调 由于数死早,还是戳这里吧知道决策单调之后怎么办呢? 由于是1D1D,所以不能分治了每个决策点能决策的区间一定是连续的一段 并且随着决策点的右移 这个区间也在不断右移令g[j]g[j]表示决策点jj能贡献的最左侧的位置 然后我们开一个栈来维护当前存在贡献的贡献点 那么显然stack[i]stack[i]

2015-06-18 12:38:56 2500

原创 codeforces 321E Ciel and Gondolas 四边形不等式

题目大意:给定nn个人,需要分kk次过河,两个人i,ji,j如果同乘一条船就会产生ai,ja_{i,j}的代价,求最终代价的最小值这个玩应显然满足四边形不等式(虽然我并不知道这个不等式是啥 然后就是决策单调(虽然我并不知道为何满足四边形不等式一定决策单调 然后就能分治做辣。。。 定义Solve(l,r,optl,optr)Solve(l,r,opt_l,opt_r)表示当前在处理区间[l,r]

2015-06-17 18:45:28 2154

原创 BZOJ 4129 Haruna’s Breakfast 带修改树上莫队+分块

题目大意:给定一棵树,每个点有一个非负点权,支持下列操作 1.修改某个点的点权 2.查询某条链上的mex 考虑链上不带修改的版本,我们可以用莫队来搞(链接戳这里) 现在到了树上带修改,果断糖果公园 本来抱着逗比的心态写了一发结果1.4s过了 跟糖果公园的80s完全不成正比啊0.0#include <cmath>#include <cstdio>#include <cstring>#

2015-06-12 15:12:27 2800 2

原创 BZOJ 4127 Abs 树链剖分

题目大意:给定一棵树,每个点有一个整数权值(可以是负数),要求支持两种操作: 1.链上加 2.链上绝对值之和由于加的数保证非负,因此一个负数变成一个正数最多有nn次 树链剖分,在线段树中维护一下区间最大负数即可 不知道为何 写了两个线段树就TLE 把两个线段树合并成一个就7s过了#include <cstdio>#include <cstring>#include <iostream>

2015-06-12 11:11:52 2327

原创 BZOJ 2529 Poi2011 Sticks

题目大意:给定n(n≤106)n(n\leq10^6)根木棍,每根木棍有一个长度,求是否存在三根颜色不同的木棍能构成一个面积为正的三角形 枚举最长的那根木棍,由于能够成三角形的充要条件是两短边和大于第三边,因此短边越长越好 因此维护[1,i][1,i]集合中最长的三根颜色不同的木棍即可#include <cstdio>#include <cstring>#include <iostream>

2015-06-11 21:45:33 1134

原创 BZOJ 2069 POI2004 ZAW 堆优化Dijkstra

题目大意:给定一张无向图,每条边从两个方向走各有一个权值,求从点1往出走至少一步之后回到点1且不经过一条边多次的最短路 显然我们需要从点1出发走到某个和点1相邻的点上,然后沿最短路走到另一个和点1相邻的点上,然后回到点1 那么我们将与点1相邻的点都设为关键点,然后将点1从图中删除,题目转化成了给定图上的一些关键点求最近点对 枚举每个点显然会T 考虑每次将关键点划分为两个集合A,BA,B,然后

2015-06-11 15:19:06 2081

原创 BZOJ 3203 Sdoi2013 保护出题人 凸包+三分

题目大意:太长自己看 令sumisum_i表示第ii个僵尸以及之前的僵尸的体力总和,disidis_i表示第ii个僵尸与房屋的初始距离 我们发现我们能消灭一个僵尸当且仅当y>=sumidisiy>=\frac{sum_i}{dis_i} 那么我们要求的显然就是max{sumidisi}max\{\frac{sum_i}{dis_i}\} 我们将一个僵尸抽象成一个点sumidisi\frac{

2015-06-10 11:02:01 1876

原创 BZOJ 4094 Usaco2013 Dec Optimal Milking 线段树

题目大意:给定n个点排成一排,每个点有一个点权,多次改变某个点的点权并将最大点独立集计入答案,输出最终的答案 开一个线段树,每个点记录四个信息: 区间左端点不选,右端点也不选的最大值 区间左端点选择,右端点不选的最大值 区间左端点不选,右端点选择的最大值 区间左端点选择,右端点也选择的最大值 然后合并时讨论一下就行了#include <cstdio>#include <cstring>

2015-06-10 09:18:26 1651

原创 BZOJ 3233 Ahoi2013 找硬币 动态规划

题目大意:给定nn个数,求一种混合进制使得每个数各个位之和之和最小 令fif_i表示表示最大硬币面值为ii时零头部分(即ak mod ia_k\ mod\ i部分)的最小硬币数 那么有转移方程:fj=min{fi+∑nk=1⌊ak mod ji⌋}(i|j)f_j=min\{f_i+\sum_{k=1}^n\lfloor\frac{a_k\ mod\ j}i\rfloor\}(i|j) 然后a

2015-06-09 18:29:44 1549

原创 codeforces #549 Looksery Cup 部分题解

掉Rating快乐~~A.Face Detection题目大意:给定一个n∗mn*m的矩阵,求有多少2∗22*2的子矩形满足单词“face”的每个字母在矩形中恰好出现一次签到题#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#define M 55using namespace std;i

2015-06-09 17:28:57 1307

原创 BZOJ 1122 POI2008 账本BBB 单调队列

题目大意:给定一个由+1+1和−1-1构成的长度为nn的序列,提供两种操作: 1.将某一位取反,花销为xx 2.将最后一位移动到前一位,花销为yy 要求最终p+sumn=qp+sum_n=q,且p+sumi≥0(1≤i≤n)p+sum_i\geq 0(1\leq i\leq n),求最小花销 枚举最终的序列以哪个点开始,那么从这个点往后的最小前缀和可以用单调队列预处理出来 然后贪

2015-06-08 16:41:59 1869

原创 BZOJ 2792 Poi2012 Well 二分答案

题目大意:给定一个非负整数序列AA,每次操作可以选择一个数然后减掉1,要求进行不超过mm次操作使得存在一个Ak=0A_k=0且max{Ai−Ai+1}max\{A_i-A_{i+1}\}最小,输出这个最小值以及此时最小的kk 二分答案,然后验证的时候首先让相邻的都不超过xx,然后枚举哪个点应该改成00 如果某个点需要改成00,那么需要进行操作的位置是一段区间,左右端点都单调,扫两边就行了#inc

2015-06-08 14:29:16 2094 2

原创 BZOJ 2525 Poi2011 Dynamite 二分答案+树形贪心

题目大意:给定一棵树,有一些点是关键点,要求选择不超过mm个点,使得所有关键点到最近的选择的点距离最大值最小 二分答案,问题转化为: 给定一棵树,有一些点是关键点,要求选择最少的点使得每个关键点到选择的点的距离不超过limitlimit 然后我们贪心DFS一遍 对于以一个节点为根的子树,有三种状态:0.这棵子树中存在一个选择的点,这个选择的点的贡献还能继续向上传递 1.这棵子树中存在一个未

2015-06-06 16:44:09 2008

原创 BZOJ 4059 Cerc2012 Non-boring sequences 线段树+扫描线

题目大意:定义一个序列为【不无聊的】当且仅当这个序列的任意一个区间都存在一个数只出现过一次,给定一个序列,要求判断这个序列是否是【不无聊的】 定义lastilast_i表示第ii个元素上一次出现的位置(第一次出现则为00),nextinext_i表示第ii个元素下一次出现的位置(最后一次出现则为n+1n+1),那么这个元素能成为某个区间仅出现一次的数,当且仅当这个区间的左端点在[lasti+1,i

2015-06-05 18:28:17 1722

原创 BZOJ 2021 Usaco2010 Jan Cheese Towers 动态规划

题目大意:完全背包,如果最顶端的物品重量≥k\geq k,那么下面的所有物品的重量变为原来的45\frac45 考虑一些物品装进背包,显然我要把所有重量大于≥k\geq k的物品中重量最小的那个放在最顶端,才能保证总重量最小 那么我们给物品排个序,第一键值为重量是否≥k\geq k(≥k\geq k的放在前面),第二键值为重量(从小到大) 然后依次加入背包,令fif_i表示没有重量≥k\geq

2015-06-05 16:49:52 1507

原创 codeforces #550E Brackets in Implications 构造

题目大意:定义在集合{0,1}\{0,1\}上的运算符“→\rightarrow”,定义如下: 0→0=10\rightarrow 0=1 0→1=10\rightarrow 1=1 1→0=01\rightarrow 0=0 1→1=11\rightarrow 1=1 现在给定一个表达式a1→a2→a3→...→ana_1\rightarrow a_2\rightarrow a_3\ri

2015-06-05 14:08:48 1377

原创 codeforces #550D Regular Bridge 构造

题目大意:给定k(1≤k≤100)k(1\leq k\leq100),要求构造一张简单无向连通图,使得存在一个桥,且每个点的度数都为kk kk为偶数时无解 证明: 将这个图缩边双,可以得到一棵树 那么一定存在一个叶节点,只连接一条桥边 那么这个边双内部所有点度数之和为偶数 除掉连出去的桥边外度数之和为奇数 故不合法 然后kk为奇数的时候我们只需要构造两个对称的边双被一条桥边连接的图就行了

2015-06-05 13:14:29 1298

原创 BZOJ 3684 大朋友和多叉树 FFT+拉格朗日反演

题目大意:给定nn和集合SS,求满足下列要求的多叉树的个数: 1.每个非叶节点的子节点数量在集合SS中 2.每个叶节点的权值为11,每个非叶节点的权值为子节点权值之和 3.根节点的权值为nn 注意每个节点的子节点有顺序令fif_i表示根节点权值为ii的神犇二叉树个数,F(x)F(x)为fif_i的生成函数,C(x)C(x)为SS的生成函数,那么有: F(x)=∑i∈SFi(x)+xF(x)

2015-06-04 20:05:37 3619

原创 BZOJ 4103~4105 THUSC2015 题解

T1:BZOJ 4013 xor 题目大意:给定一个长度为nn的数列aa和一个长度为mm的数列bb,给定矩阵AA,令Ai,j=ai⊕bjA_{i,j}=a_i\oplus b_j,qq次询问某个子矩形里的kk大值 n≤1000,m≤3∗105,q≤500n\leq 1000,m\leq 3*10^5,q\leq 500刚看到这题的时候我发现我不会,看到数据范围的时候我发现出题人也不会…… 如果

2015-06-03 17:55:51 4014 2

空空如也

空空如也

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

TA关注的人

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