自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

140142

ww(笑)

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

原创 bzoj-2599 Race

题意:给出一棵n个点的树,每条边有一个权值;求一条路径,权值和等于K,且边的数量最小;n题解:没数据范围的坑爹题;此题O(nlog^2n)是过不了的,要O(nlogn)的算法;注意K的范围!首先将树分治,答案一定在过根的某条链上;那么统计子树之间的长度加和为K的链经过的边数;因为K较小所以直接开一个数组记录长度为x的链最小经过了多少条边就可以了;

2015-10-21 11:05:35 1224

原创 bzoj-3123 森林

题意:给出一个n个点m条边的森林,每个点有一个点权,有两种操作;1.查询两点之间的第K小的点权,保证合法;2.连边(x,y);m题解:论正确姿势的重要性;首先询问和某道COT的题很像,而这道题中多了Link操作;然而,那道COT的题我是用树链剖分写的。。。一开始的脑洞是每次将小的暴力重构作为一个轻链连在大的树上,然后每隔一段时间重构一次大树;听起来十分暴

2015-10-21 10:50:48 1286

原创 bzoj-3522 Hotel

题意:在一颗n个结点的树上给吉丽的三个妹子各开一个房间,使三个房间两两距离相等;n题解:首先因为树上两点间只有一条路径,所以这种路径下满足条件的三点只可能形成 以某个点为中心,三个点都到那个顶点距离相同的情况;然后我们枚举每个点深搜,找出所有深度相同的点然后累乘C[x][3];然后发现这么做是不对的!因为我们将同一颗子树中深度相同的点也计入了答案中,它们之间的距

2015-10-16 13:16:49 1018

原创 bzoj-2743 采花

题意:给出一个长度为n的序列,m次查询区间[l,r]中出现两次的数的种类数;n,m题解:一开始看出来数据范围。。少看一个0;于是写了一发莫队,O(n√n)直接TLE掉;这题正解当然是O(nlogn)的算法咯,和HH的项链那道题的思想确实很相似;我们记录与第i个数相同的最后一个数下标为pre[i];将询问离线,按r端点排序,每扫到一个点i就回答r端点为i的所有

2015-10-15 16:44:51 1406

原创 bzoj-2127 happiness

题意:给出一个nxm的座位表,每个同学学文或学理有一个喜悦度;并且如果两个挨着的同学一起学文或学理,会再有一个喜悦度加成;喜悦度都为非负整数,n,m题解:文理分科,似乎是网络流的经典问题呢;因为让所有人都幸福的世界是不可能存在的,所以我们就采用最小割的思想;先将所有的喜悦度都加起来,然后将割掉一些使其合法,当然要满足割最小;这里的建图还是去膜了黄学长,然后得

2015-10-13 16:21:26 1357

原创 bzoj-2765 铁人双项比赛

题意:现在有n个选手和长度为s的赛道;现要将赛道分为前后两段,前半段长度为k;第i个选手在前半段的速度是v1,后半段的速度是v2;求一种对第n个选手最有利的一个k,使其领先第二名尽可能多;如果他不可能第一,输出NO;题解:列出第i个选手到终点的时间ti=k/v1i+(n-k)/v2i;化简ti=(1/v1i-1/v2i)*k+n/v2i;设k为x轴,时间

2015-10-10 17:23:51 1167

原创 bzoj-1098 办公楼biu

题意:给出一个图,求其补图的连通块个数与大小;原图点数n题解:这道题主要是对于复杂度的优化分析上吧;一开始有个显然的O(n^2*α(n))暴力做法,枚举每一条补图中的边然后并查集啦;这样空间与时间都是无法接受的;考虑另一种做法:每次枚举一个未在连通块的点,然后从它开始宽搜出它所在的连通块;具体是枚举它的所有原图的边,标记起来,枚举边之后再枚举所有的点,将未标

2015-10-10 16:37:56 2227

原创 bzoj-2797 Squarks

题意:有一个长度为n不降的数列,每次取两个不同的数相加,共有n(n-1)/2个和;现给出这些和,要求还原出这个数列;可能有多种情况,按字典序从大到小输出;n题解:首先我们列出表格之后可以发现,数列中最小的数和次小的数一定分别是x[1]+x[2]和x[1]+x[3];而为了解出解,我们还需要一个x[2]+x[3],但是它可能为第[3,n]小的数;它只可能比

2015-10-08 13:51:35 1156

原创 bzoj-2525 Dynamite

题意:给出一颗n个结点的树,上面有若干个关键结点;现在可以在这些结点上选最多m个点,求最小化关键点到选择点的最大距离;题解:首先这道题是一个最大最小化的问题,很容易想到二分;二分一个数L表示答案的;然后问题就转化成了一个判定性问题:判定能否用m个点覆盖整个树上的关键点;判定过程是贪心的;设dis[x]为x的子树中最近的选择的点的距离,g[x]为x的子树中最远

2015-10-03 17:44:12 1885

原创 bzoj-3207 花神的嘲讽计划Ⅰ

题意:给出一个长度为n的序列,有m个询问;每次给出一个区间[l,r]和一个长度为K的短序列;查询区间中是否存在这个子串;1题中所有数据不超过2*10^9;保证方案序列的每个数字题解:这题我读了好几遍没读懂,看了题解才知道这问的是查询一个固定长度的字符串是否在区间出现;然后就是简单题了,用Hash来搞;处理原串中所有的Hash值,然后如果[l,r]存在一个

2015-09-30 21:00:02 887

原创 bzoj-2212 Tree Rotations

题意:给出一个二叉树,叶子结点上有权值;共有n个叶子结点,权值分别为1-n;现可将所有结点的左右儿子交换,求最小的逆序对数;2题解:这题读入有点鬼畜,但是写起来还是比较优雅的;考虑到一个结点的子树具体形态与它是否和它的兄弟交换是无关的;所以我们可以像分治一样,先计算子树之间的最小逆序对数;然后将所有的权值扔到一个线段树中,向它的父亲传递;它的父亲是没

2015-09-30 11:18:35 1269

原创 bzoj-2300 防线修建

题意:给出一个点集,每次可能删去一个点或查询上凸包的面积;保证无重点,保证最左面 最右面的点一定在凸包上;n题解:动态凸包问题,然而这道题的保证简直极为良心;所以呢,我们就可以用set来水这道题啦;我还是涨了不少姿势的,比如迭代器居然可以自减;离线所有的操作之后处理,就是凸包加点了;每次来一个点,判断一下加不加入,之后左面干点右面干点,插进去就好了;

2015-09-30 07:29:30 1264

原创 bzoj-2741 L

题意:给出一个长度为n的序列;m次查询区间[l,r]子区间的最大异或和;强制在线;n题解:这诡异的数据范围以及诡异的复杂度。。FOTILE——中国高端数据结构领导者;如果不考虑区间问题,那么就可以用可持久化Trie树解决;具体就是求出前缀区间和,插入到可持久化Trie里,然后就是选两个数异或和最大的问题了;多了一个区间限制之后,如果暴力查,那么是O(

2015-09-29 23:02:56 1207 3

原创 bzoj-3545 Peaks

题意:给出一个n个点m条边的无向图,点和边都有权值;q次询问从某个点出发,经过不超过x的权值的边能到达的第k大点权值;1权值题解:题意略鬼畜。。。首先能看出来走的边一定是在最小生成树上,然后这并没有什么卵用;不过至少提供了一点思路,剩下思路就是将询问离线了;离线之后可以做到一次遍历边表,顺便的求出所有的答案值;对于每次的询问,答案就是那个点所在连通块

2015-09-28 22:24:55 1681 1

原创 hdu-5481 Desiderium

题意:给出一个区间的集合,求所有集合子集中区间并的长度和;集合大小题解:这次BC打的几乎是爆炸的。。没掉出DIV1真是万幸啊;T1我逗比的写了一个线段树还SB的不对,发现不对劲已经半个小时了;扔了T1搞T2还调了半天结果-5,觉得滚粗就走人啦;言归正传,这题直接考虑显然是不行的,所以考虑离散之后统计每个小区间的贡献;先累加每个区间覆盖次数,直接上个线段树搞;

2015-09-27 19:43:42 1173 1

原创 bzoj-2276 Temperature

题意:给出n段区间[li,ri];求一个最长的连续区间串,满足存在一个不降序列Ai,且Ai∈[li,ri];1题解:感觉Poi题越来越难了。。。这sb题都错成狗。。我眼一花把范围看成了10W,然后YY了一个线段树;用线段树来维护所有点的DP值,然后直接DP乱搞;时间复杂度O(nlogn),空间复杂度O(nlogn);然后我调了一下午,发现T了;之后我

2015-09-23 16:58:36 1440

原创 bzoj-2278 Garbage

题意:给出一个n个点m条边无向图,每个边有一个01状态;现在可以选择一些环,使环上的所有状态取反;给出初始与结束状态,求一个方案;1题解:做完这题深刻的体会到自己的too young too naive;首先有一个性质,如果有解,一定存在一种方案使选择的所有环不重复经过一条边;这个性质也说明了,所有不需要更改的边是可以忽视的;因为如果将其选了偶数次,也可

2015-09-23 10:57:06 1639

原创 bzoj-3307 雨天的尾巴

题意:给出一个n个点的树,有m个事件;每次是将x到y的路径上所有点都投放一个z的物品;求最后每个点上那个物品最多;n,m题解:一道数据结构好题;首先这道题问的是最终答案,那么把所有事件离线下来处理;考虑如果树是一条链,那么对于这样一个序列问题怎么做?将左端点x设置z数量加一,右端点y设为z数量-1;然后用一个权值线段树去扫整个序列,查询最大值即为答案

2015-09-22 20:36:56 2800

原创 bzoj-2527 Meteors

题意:有一个星球,它的轨道被划分成m份,由n个国家占领;一个国家可能占领多个轨道段;现有q次事件,每次在一个轨道区间上每段落下Ai量的流星雨;每个国家需要一定量的流星雨,当然它所得的为它占领的轨道段所得之和;求每个国家所需的东西什么时候可以满足,如果始终不能满足输出NIE;题解:这题我第一眼看成了输出TAK或NIE;结果仔细看看我选择死亡;边处理事件边判

2015-09-22 16:08:16 1430

原创 bzoj-2084 Antisymmetry

题意:定义一个串反对称 为 将其01取反之后,翻转之后与原串相同;给出一个长度为n的01串,求这个串中有多少子串为反对称串;n题解:马拉车算法。。然而作为一个蒟蒻我还是滚回去复习了一遍manacher啥的;首先这题有个性质:反对称串一定是偶数长的串;所以我们其实跑的只是偶数串的算法,也就是可以不加#分隔的姿势;

2015-09-22 07:23:54 1203

原创 bzoj-2093 Frog

题意:数轴上有n个点,有一个青蛙在这些点上跳;规则是每次向距当前点第k小的点跳,如果有相同距离则向下标较小的跳;求从每个点出发跳了m次后在哪里;1题解:我真是不知道这题出long long 的意义是啥。。数据范围比较极限,略卡,加点读入优化啥的卡常数才过;不过Poi上还是挺良心的,除了偶尔乱入的波兰文以外;这题后半部分显然就是置换的快速幂;主要问题是

2015-09-21 10:21:51 1570

原创 bzoj-2083 Intelligence test

题意:给出一个长度为n的序列A,和m个序列Bi;求每个Bi是否为A的子序列;1题解:这题听起来是sb题但是算法还是挺有趣。。(给自己不会找个借口)一个个判B串是否满足显然是T的,因为每次都要遍历A;所以考虑仅遍历一次A串;将所有B串存成链表的形式,插在Bi首字母的链表头里;然后枚举A串,扫一遍当前的A[i],对所有B串去掉头(smg)之后放到下一个链

2015-09-20 21:19:17 1396

原创 bzoj-2095 Bridges

题意:给出一个n个点m条边的无向图,每个边有一正一反两个权值;现要从点1出发,对每条边经过且仅经过一次;求一种方案使经过的最大权值最小;(bzoj)输出这个权值即可;题解:这坑爹的翻译。。。不是经过所有边而是经过且仅经过一次!(反正我一开始看错题了。。。)最小值最大显然二分;二分之后就转化成了一个判定性问题;判定性问题就是求这个图中是否存在欧拉回

2015-09-19 22:11:13 2282

原创 bzoj-1138 Baj 最短回文路

题意:给出一个n个点m条边的有向图;每条边上有一个字符,一个路径表示的字符串就是沿途走边组成字符串;D次求两点之间最短回文路径;n题解:这道题范围不大,问的东西却比较奇怪;一开始打算搜索,利用双向BFS,对字符串Hash来求解;实际上速度还行,但是面对特殊数据菊花图等东西就卡不动了;正解是DP,状态即为f[i][j]为i到j的最短回文路长度;这个状态

2015-09-17 22:58:05 1761

原创 bzoj-1136 Arc

题意:此题为一道交互题;给出一个长度为n的序列,求长度为k的字典序最大的子序列;n题解:这道题建议去Poi官网提交;BZ不支持交互把这题弄成了sb题;在官网的内存限制是32MB,并不能存下长度为n的数组;所以这道题是一个伪在线题目;首先最基础的离线问题怎么解?从[1,n-k+1]选最大的做第一个,然后从[第一个+1,n-k+2]选第二个...选到n个

2015-09-17 21:55:27 1551

原创 bzoj-1133 Kon

题意:给出n个数轴上的点,每两个点有一条带权的边;现可以选择在n-1个区间中切k次,使切断的边权最大;注意同一条边被切断多次只计算一次;n题解:Poi~我的思路就是做相反的问题,之后用总和去减就好了;f[i][j]最后一次在i点切,切j次没被切到的最小边权;这个状态显然就每条边只能计算一次了;转移f[i][j]=min(f[k][j-1]+calc(

2015-09-17 07:42:09 1223

原创 bzoj-1135 Lyz

题意:初始时滑冰俱乐部有1到n号的溜冰鞋各k双,x号脚的人可以穿x到x+d的溜冰鞋,;有m次操作,每次包含两个数ri,xi,代表来了xi个ri号脚的人(xi可能为负);对于每次操作,输出溜冰鞋是否足够;n题解:首先这是一个二分图匹配问题,显然鞋和人是没有交集的;然后就有一个Hall定理:二部图G中的两部分顶点组成的集合分别为X, Y;边集中有一组无公共点

2015-09-17 07:29:00 1339

原创 bzoj-1137 Wsp 岛屿

题意:给出一个凸多边形,顶点顺时针标为1到n,每两个点之间有一条道路;道路的权值为两点欧几里得距离,可以通过道路的交点直接切换道路;有的边不能直接通过,但是可以通过这条边到没被监视的相交的边;求1到n的最短路;n注:此题似乎叫WYS。。大概是BZ标错了吧;题解:Poi2009~题中有一个重要信息就是顶点为顺时针给出;那么1与n是相邻的顶点(当然正常人

2015-09-16 22:40:58 1463

原创 Poi2008 题解集合

Poi2008的题刷了个差不多;还是有三道刷不动的题就弃了。。如果有机会我也(不)会填这个坑的;总之就是粘一下链接,没写题解的在这简要说一下就好了;砖块Klo:http://blog.csdn.net/ww140142/article/details/48462297海报PLA:我们将所有方案可以转化成一个个竖条的形式;然后单调栈搞就可以了;

2015-09-16 22:06:08 2030

原创 bzoj-1130 POD

题意:给出一个n个结点点的无向图;选出一个n/2大小的集合,使集合中的元素与非集合中的元素之间的边最少;n输出任意一个集合;题解:范围26就显然暴搜吧。。根据calc定理,我们无法在搜索之后O(n)check来过掉这题;这个复杂度只允许一个搜索;于是就有了这么一个思路:在搜索的过程中维护答案!每次选中一个点就相当于是将其从不选集合放到选中集合;而

2015-09-15 16:47:26 1207

原创 bzoj-1123 BLO

题意:给出一个n个点m条边的无向图;求将每个点的所有边删去之后,这个图中的不能到达的点对数;n题解:Poi~要做这题首先样例要看懂= =;显然不能到达的点对数=n*n-能到达的点对数;而对于每个连通块来说,能到达的点数为块内点数的平方;那么就对于一个点,统计删去边后,每个连通块的大小;所以构造DFS树,所有的非树边都是返祖边;记录所有点的深度de

2015-09-15 16:27:00 1393

原创 bzoj-1112 砖块Klo

题意:给出一个长度为n的数列,现要将其连续k个数变成一样的;每次可以对一个数+1或-1,问最小操作次数;1题解:感觉是一道好题吧;首先有这样一个结论:将这些数置为中位数所需要的操作数最小;证明啥的网上关于中位数的一大堆?反正我不会;然后我们要做的就是:1.动态维护区间中位数;2.对一个区间更新答案;有的同学选择了平衡树解决。。实际上这个题用权

2015-09-15 07:42:17 1665

原创 bzoj-1128 Lam

题意:给出一个长度为n的数列p,数列中数字两两互质;有一个无限长的寄存器,现从p[1]开始,依次将其所有的倍数在寄存器中置为p[i];求最后每个数字所染色区域在寄存器中占比,用一个既约分数表示;n题解:这傻逼题我居然傻逼了一晚上;说白了就是一个递推,f[i]=1/p[i] *Π(p[j]-1)/p[j];这坨东西多好推啊,要是这题输出浮点数多好;然并卵,

2015-09-15 07:32:05 1213

原创 bzoj-1125 Poc

题意:给出n个字符串,长度均为len;有m次操作,每次将两个字符交换;求每个字符串在任何时点上,与相同的它最多的字符串个数;n题解:Poi!字符串长度很小,我们先考虑到用Hash来判断字符串的相同;这些部分很简单,但是统计任意时点对某个字符串的答案是很难的;因为如果暴力更新的话复杂度是O(nm),所以不能这么搞;而延迟更新也没有什么好办法,只能去找打

2015-09-14 11:17:32 1497

原创 bzoj-1131 Sta

题意:给出一个n个点的树,找出一个点来,使以这个点为根的树所有点的深度之和最大;n题解:其实我做这道题的时候总有一种莫名其妙的即视感怎么回事。。。算了说不定这道题我真的做过。。。比较暴力的是将所有点枚举,然后深搜累加所有深度;但是显然所有点等于父树的点+子树的点;那么只要求出这两者累加就好了;子树的总深度简直好求,就是将儿子的总深度+size就好了;

2015-09-13 20:47:50 1408

原创 hdu-5434 Peace small elephant

题意:要求在nxm的棋盘上放置小象,要求没有小象互相攻击;小象的攻击方式如下所示;求在棋盘上有多少摆放的方式;1题解:数据范围出卖了做法。。。7有啥做法。。状压。。一亿怎么做。。log。。然后这题就是状压+矩乘的递推咯,复杂度在5s内是可以跑出来的;首先就是如何构造矩阵;实际上还是求出那些状态之间可以互相转移,然后拿临界矩阵去乘;对于两个

2015-09-13 18:08:28 1091

原创 bzoj-3456 城市规划

题意:求n个点的无向连通图个数;n个点不同,答案对1004535809取模;n题解:生成函数的种种神奇应用;不过这玩意真是越来越不OI了(笑);这道题首先考虑递推公式;设f[x]为结点数为x的答案;那么用总的无向图数减去不连通的无向图数目就是答案;f[i]=2^(i*(i-1)/2)-∑f[j]*2^(j*(j-1)/2)*C[i-1][j-1];(

2015-09-13 14:22:34 2128

原创 bzoj-3625 小朋友和二叉树

题意:给出一个大小为n的集合C;对于i=1...m计算有多少二叉树满足每个节点的权值都在集合C中且所有结点权值和为i;对998244353取模,左右儿子有别;题解:生成函数系列题解之三?这题先对C搞个生成函数吧,令其为C(x);而我们要求的是树的计数的函数F(x);列一下方程,F(x)=C(x)*F^2(x)+1;F^2(x)表示它的左右儿子的方案,

2015-09-11 20:55:37 2927

原创 Nescafé 41-异化多肽polypeptide

题意:给出m个氨基酸的质量,不考虑脱水缩合等生物因素;问拼成质量为n的多肽有多少种方案;n,m题解:该来的毒瘤总是要来,所以生成函数啥的引入OI真是太不OI了(笑);不过这题还不算虐心。。似乎。。先上一个生成函数——F(x)表示氨基酸的生成函数,有一种质量为i的氨基酸,x^i前的系数就+1;那么答案(显然)是F(x)+F^2(x)+F^3(x)+F^4(x)

2015-09-11 14:49:20 1645

原创 Contest Hunter - Handle

题意:令b[i]=∑C[j][i]*a[j];0现给出b[i],求a[i],取模998244353;此题为ch【弱省胡策】Round #5比赛的T3;题解:生成函数多项式啥的。。真是一大毒瘤;首先把组合数拆开,得到b[i]=∑(j!/(j-i)!/i!)*a[j];(i同乘i!,b[i]*i!=∑a[j]*j!/(j-i)!;(i再定义B

2015-09-11 10:58:38 1128

空空如也

空空如也

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

TA关注的人

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