自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

世界

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

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

原创 BZOJ 3545 ONTAK2010 Peaks Treap启发式合并

题目大意:给定一个无向图,每个点和每条边都有权值,多次询问从点v开始只能经过边权小于等于x的点中权值第k大此题不强制在线,直接把边和询问都按照边权从小到大排序,初始每个节点是一个Treap的根节点对于每个询问把小于等于这个询问的权值的边两侧的Treap进行启发式合并 然后求第k大即可不知道是谁出了个强制在线版……回头研究一下#include#include#include#i

2014-10-31 21:06:28 2458

原创 BZOJ 1052 HAOI2007 覆盖问题 二分答案+DFS

题目大意:给定n个点,用三个边长相同的正方形覆盖所有点,要求正方形边界与坐标轴垂直,求正方形边长的最小值最大值最小,很明显二分答案但是验证是个问题考虑只有三个正方形,故用一个最小矩形覆盖这三个正方形时至少有一个在角上 若有四个正方形该结论不成立于是我们采用DFS的方式 每次用一个最小的矩形覆盖所有的点,枚举矩形的四个角 将正方形填进去由于最大深度是3,所以时间上完全可以承受

2014-10-31 08:45:10 1606

原创 BZOJ 1211 HNOI2004 树的计数 Prufer序列

题目大意:给定一棵树中所有点的度数,求有多少种可能的树Prufer序列,具体参考[HNOI2008]明明的烦恼直接乘会爆long long,所以先把每个数分解质因数,把质因数的次数相加相减,然后再乘起来注意此题无解需要输出0当n!=1&&d[i]==0时 输出0当Σ(d[i]-1)!=n-2时输出0写代码各种脑残……居然直接算了n-2没用阶乘……#include#in

2014-10-30 18:19:33 2667

原创 BZOJ 1050 HAOI2006 旅行comf 动点SPFA

题目大意:给定一个无向图,每条边上有权值,求起点到终点的路径中最长边和最短边的最小比值随手点开一道居然是动点SPFA的裸题…… 魔法森林都切了这个问题就不大了我们把边权排序,从大到小加进这个图中,每加进一条边就把边的两个端点加进队列,直接跑SPFA,维护起点到每个点路径上的最长边的最小值,然后用当前边权作为分母更新ans这样可以保证每次跑出来的都是当前边为最短边时起点到终点的最长边的最

2014-10-30 14:21:34 2025 2

原创 POJ 2494 Acid Text 模拟

题目大意:给定CSS语言的图片合成器,要求编译运行并输出结果首先过样例 这个应该问题不大 然后交上去WA 那么请注意以下问题1.读入用char 然后构造成string2.由于White Space的肆虐横行,我们可以写一个Kill_Char(int x)函数,该函数的作用是干掉x个' ''\t''\n''\r'以外的字符,可以方便快捷地把题目中的无用信息清理掉3.位置坐标的x和y是

2014-10-29 14:08:10 1214

原创 BZOJ 1032 JSOI2007 祖码Zuma 动态规划

题目大意:给定一个祖玛序列,任选颜色射♂出珠子,问最少射♂出多少珠子输入法最近越来越奇怪了0.0据说数据有误 但其实MS问题不大首先我们把连续相同的珠子都缩在一起 令f[i][j]表示从i开始的j个珠子的最小消除次数初值 f[i][1]=cnt[i]==1?2:1然后对于每个区间,我们枚举中间点,拆成两半求和如果这个区间两端点颜色相同,我们还可以把中间消掉,然后两边再补射1

2014-10-29 09:41:27 3689 2

原创 BZOJ 1043 HAOI2008 下落的圆盘 计算几何

题目大意:n个圆盘依次下落,求最终能看到的轮廓线面积円盘反对!让我们一起团结起来!赶走円盘!咳咳。很神的一道题 今天去看了题解和白书才搞出来……首先我们倒着做 对于每个圆盘处理出在它之后落下的圆盘和它的覆盖区间 然后求一个区间并就能算出这个圆盘的可见弧长然后就是相交部分怎么求的问题了首先两个圆必须相交 然后作圆心1到圆心2的向量 用atan2求出极角 然后利用余弦定理求出两个交

2014-10-29 07:50:18 1809

原创 BZOJ 2744 HEOI2012 朋友圈 二分图最大匹配

题目大意:求一个图的最大团 图长啥样自己看题

2014-10-28 19:43:54 2334 2

原创 BZOJ 1022 SHOI2008 小约翰的游戏John 博弈论

题目大意:反Nim游戏,即取走最后一个的人输首先状态1:如果所有的堆都是1,那么堆数为偶先手必胜,否则先手必败然后状态2:如果有两个堆数量相同且不为1,那么后手拥有控场能力,即:若先手拿走一堆,那么后手可以选择将另一堆留下1个或者全拿走,使这两堆最终只剩1个或0个;若先手将一堆拿剩一个,那么后手可以选择将另一堆留下一个让先手拿或全拿走,使这两堆最终只剩1个或0个;若先手将一堆拿

2014-10-28 18:33:42 2967

原创 BZOJ 1295 SCOI2009 最长距离 SPFA+暴力

题目大意:给定一个棋盘,一些格子上有障碍物,可以移除T个障碍物,求移除后所有能互相到达的点对中的最大欧几里得距离m,n#include#include#include#include#include#define M 40using namespace std;typedef pair abcd;const int dx[]={0,0,1,-1};const int dy

2014-10-28 17:11:45 1313

原创 BZOJ 1029 JSOI2007 建筑抢修 贪心+堆

题目大意:n个建筑需要抢修,第i个建筑需要T1时间抢修,必须在T2时间之前抢修完毕,求最多能抢修多少建筑首先我们对T2排序 然后依次修理 但是这样贪心显然是不正确的 比如说这组数据:510 1010 202 212 212 21贪心只能修理前两个,而实际上最多可以修理4个于是我们考虑修正贪心算法比如说这组数据,当我们枚举到3的时候,虽然已经无法修理更多了

2014-10-28 16:39:11 3061

原创 BZOJ 1044 HAOI2008 木棍分割 二分答案+动态规划

题目大意:给定n个连在一起的木棍,分成m+1段,使每段最大值最小,求最大值的最小值及最大值最小时分割的方案数第一问水爆了……二分答案妥妥秒过第二问就有些难度了 首先我们令f[i][j]表示用前j个棒♂子得到i段的方案数诶我没打什么奇怪的符号吧于是我们有动规方程f[i][j]=Σf[i-1][k] (sum[j]-sum[k]这个最坏情况下是O(m*n^2)的,肯定挂

2014-10-28 15:35:15 1652

原创 BZOJ 1027 JSOI2007 合金 计算几何+Floyd

题目大意:给定一些合金,选择最少的合金,使这些合金可以按比例合成要求的合金首先这题的想法特别奇妙 看这题干怎么会想到计算几何 而且计算几何又怎么会跟Floyd挂边 好强大首先由于a+b+c=1 所以我们只要得到a和b即可 c=1-a-b 所以c可以不读入了然后我们把每种原料抽象成一个点 可知两个点能合成的合金一定在两点连线的线段上证明:设两个点为(x1,y1)和(x2,y2),新合

2014-10-28 14:34:38 2632

原创 BZOJ 1025 SCOI2009 游戏 动态规划

题目大意:给定n,定义一个置换的排数为1~n的循环经过这个置换最少T次(T>0)可以回到原来的序列 求所有可能的排数的数量将一个置换分解为一些循环,那么这个置换的排数就是这些循环的长度的最小公倍数于是对于一个数,我们验证这个数是否是排数的方式就是将这个数分解质因数,令x=p1^a1*p2^a2*...*pk^ak,若p1^a1+p2^a2+...+pk^ak分组背包即可 令f[i][j

2014-10-28 10:56:04 1762

原创 BZOJ 1024 SCOI2009 生日快乐 DFS

题目大意:给定一块x*y的蛋糕,切n-1刀分成n块大小相同的块,只能平行于边界切,求长宽比最大值最小虽然求最大值最小但是这题没必要二分答案……直接深搜就可以了枚举切成的两块的面积比,横竖各切一次即可本大爷读入读错了TLE半天……尼玛死的心都有啊#include#include#include#include#includeusing namespace std;doub

2014-10-28 08:49:07 1638

原创 BZOJ 2982 combination Lucas定理

题目大意:发上来就过不了审核了……总之大意就是求C(n,m) mod 10007 m,n∈[1,2*10^8]卢卡斯定理:C(n,m)=C(n%p,m%p)*C(n/p,m/p) mod p 要求p是质数其中n%p可能会小于m%p 这种情况下直接返回0即可证明去问卢卡斯 我不知道#include#include#include#include#define p 10007

2014-10-27 14:46:40 1980

原创 BZOJ 1096 ZJOI2007 仓库建设 斜率优化

题目大意:给定n个厂房,在其中一些建仓库,一个点如果没有仓库就要把仓库运到右侧的仓库中,求最小花销很简单的斜率优化……之前刷斜率优化的时候怎么居然把这道题漏了令f[i]为在i点建厂使i之前的货物全部安置的最小花销则有fi=min{fj+∑k=j+1i(Xi−Xk)×Pk}+Ci=min{fj+Xi×∑k=j+1iPk−∑k=j+1iXk×Pk}+Ci公式编辑器就是爽

2014-10-27 11:15:12 2508 2

原创 BZOJ 2152 聪聪可可 树的点分治/树形DP

题目大意:给定一棵树,每条边上有边权,求距离为3的倍数的有序点对树的点分治,对于每个重心统计出每棵子树距离重心长度为0/1/2的点的数量,计算出ans即可最后ans*2+1 和n^2进行一下约分即可其实我上当了……这题根本就没必要写树的点分治,直接树形DP就出来了开一个三元组记录某棵子树中距离子树的根节点距离为某值的点的个数然后直接统计+转移就行了树的点分治:

2014-10-27 10:11:50 3296

原创 BZOJ 2759 一个动态树好题 Link-Cut-Tree+扩展欧几里得

题目大意:给定n个形如xi=ki*x_pi+bi mod p的同余方程组 支持修改操作和求解操作确实好题 感谢此题作者 顺便吐槽一下作者的Splay不加空节点太蛋疼了0.0将每个点i的父亲设为pi 我们将会得到一座基环树林 将环上的一条边拆掉,在边的起始节点新开个域special_father记录这条边(P.S:好浪费 但是没办法)于是我们得到了一座森林 显然可以用LCT来维护 每个节

2014-10-24 22:57:47 3087

原创 BZOJ 1047 HAOI2007 理想的正方形 单调队列

题目大意:给定一个a*b的矩阵,求一个n*n的子矩阵,使矩阵中的最大值与最小值之差最小对于每行维护一个单调递减的队列,再弄一个竖着的队列,维护n个格子之内的最大值即可两遍统计出最大值和最小值 然后得到ans即可#include#include#include#include#define M 1010using namespace std;struct abcd{ pai

2014-10-24 16:10:26 1487

原创 BZOJ 1038 ZJOI2008 瞭望塔 半平面交

题目大意及模拟退火题解:见 http://blog.csdn.net/popoqqq/article/details/39340759 这次用半平面交写了一遍……求出半平面交之后,枚举原图和半平面交的每个点,求出答案即可#include#include#include#include#include#define M 310#define eps 1e-7using name

2014-10-24 15:31:18 1616

原创 BZOJ 1483 HNOI2009 梦幻布丁 链表+启发式合并

题目大意:给定n个布丁,每个布丁有一个颜色,多次将某种颜色的所有布丁变为另一种颜色,多次询问颜色段数数据范围:n链表的启发式合并0.0 一直没写明白 其实就是开个链表记录每种颜色的位置,合并时撸一遍短的链看看两边是不是长链的颜色就行不过交换比较麻烦0.0 要开个数组记录每个数字代表的真实颜色 交换时把数组的这两个位置也交换下就可以了注意用过的垃圾不要留在原位 size合并掉就清零

2014-10-24 14:10:02 1902

原创 BZOJ 2809 APIO2012 dispatching Treap+启发式合并 / 可并堆

题目大意:给定一棵树,选定一棵子树中的一些点,薪水和不能超过m,求点的数量*子树根节点的领导能力的最大值考虑对于每个节点,我们维护一种数据结构,在其中贪心寻找薪金小的雇佣。每个节点暴力重建一定不行,我们考虑可并数据结构,每个节点将子节点的信息直接合并即可可以用启发式合并的Treap,也可以用可并堆今天特意去学了这玩应0.0 先写了左偏树 然后又写了下随机堆…… 后者速度上更快一些

2014-10-24 12:05:30 1584

原创 BZOJ 2733 HNOI2012 永无乡 Treap+启发式合并

题目大意:给定一个无向图以及n个点的排名,多次连接一条边,多次求某个点所在联通块中排名第k小的点的编号初始对于每个点建立一棵只有一个节点的Treap,然后每次连接两个点,利用并查集找到两个点的根节点,将size较小的Treap暴力拆解插入大的中,然后将小的并查集合并到大的中今天下午各种脑残,一个小小的Treap改了不下10遍0.0 快去喝脑白金0.0#include#include

2014-10-23 17:16:05 2799

原创 BZOJ 2242 SDOI2011 计算器 快速幂+扩展欧几里得+BSGS

题目大意:……简洁明了自己看第一问快速幂第二问扩展欧几里得第三问BSGS顺便一开始没看到p是质数0.0 去弄了EXBSGS的模板0.0 懒得改了#include#include#include#include#include#define M 1001001using namespace std;typedef long long ll; typedef pa

2014-10-23 13:40:47 1853

原创 BZOJ 3589 动态树 树链剖分+容斥原理

题目大意:给定一棵以1为根的有根树,每个节点有点权,提供两种操作:1.以某个节点为根的子树所有节点权值+x2.求一些链的并集的点权和,其中这些链都是由某个节点出发指向根首先子树修改,链上查询,树链剖分的WT~然后这些链上的每个点的点权都只能被加一次,肯定不能打标记,由于k总权值=单链-两两之交+三链之交……状压枚举即可 两条链的交集求法如下:1.求两条链底的LCA2

2014-10-23 12:51:43 2891

原创 BZOJ 3333 排队计划 树状数组+线段树

题目大意:给定一个序列,每次选择一个位置,把这个位置之后所有小于等于这个数的数抽出来,排序,再插回去,求每次操作后的逆序对数首先我们每一次操作 对于这个位置前面的数 由于排序的数与前面的数位置关系不变 所以这些数的逆序对不会变化对于这个位置后面比这个数大的数 由于改变位置的数都比这些数小 所以这些数的逆序对不会变化说到底就是排序的数的逆序对数改变了 以这些数开始的逆序对没有了于是就

2014-10-23 10:08:42 2063

原创 BZOJ 1085 SCOI2005 骑士精神 IDA*

题目大意:给定一个棋盘,每个棋子都是骑士,问能否在15步之内移动为特定排布此题采用IDA*估价函数为:当前棋盘与目标棋盘不同的位置数量-1易知一个棋盘最少需要这么多的步数才能达成目标棋盘若当前步数+估价函数大于最大深度 则剪枝优先搜索懒得写0.0 这样就能切掉就行#include#include#include#includeusing namespace std;

2014-10-22 19:26:49 1820

原创 BZOJ 1042 HAOI2008 硬币购物 背包+容斥原理

题目大意:给定4种硬币的面值,多次询问这个限定这四种硬币的个数时达到某一价值的方案数十分巧妙的一个题……蒟蒻表示打死也想不到容斥原理0.0首先先求出不限定硬币的方案数 然后利用容斥原理ans=不限定硬币的方案数-(硬币1超出的方案数+硬币2超出的方案数+硬币3超出的方案数+硬币4超出的方案数)+(硬币1和硬币2都超出的方案数+……)-(硬币123都超出的方案数+……)+四种硬币都超出的

2014-10-22 16:20:33 1806

原创 BZOJ 3343 教主的魔法 分块

题目大意:给定一个序列,提供两种操作:1.区间加上一个数2.询问区间中有多少大于等于C的数n将原数组复制一份副本,副本中每一块排序对于每次修改,中间块的部分打标记,两边修改后重建对于每次查询,中间块的部分二分答案,两边暴力枚举别忘考虑标记#include#include#include#include#include#define M 1001001us

2014-10-22 13:27:20 1500

原创 BZOJ 2141 排队 分块+树状数组

题目大意:给定一个序列,m次交换两个数,求初始逆序对数及每次交换后的逆序对数首先离散化,分块,对于每块建立一个树状数组,保存这个块中的所有元素然后对于每个询问(x,y) (xa[i]a[i]>a[x] ++ansa[i]a[i]>a[y] --ans然后对于块中的树状数组处理,块外的暴力注意此题元素有重复 亲测可信RANK5吓尿0.0 为何块套树要比树套树还快…

2014-10-22 11:43:50 2489

原创 BZOJ 2821 作诗(Poetize) 分块

题目大意:给定一个序列 多次求区间中多少个数出现次数为偶数次 强制在线很神的一道分块的题……记得刚进BZ坑的时候看到这道题50秒特别惊奇0.0 然后我就作死去交了个死循环0.0看了很多题解 都没看懂 最后还是把零碎的思想硬拼到一起才写完0.0我们首先分块 然后预处理一些东西首先是从第i块到第j块的答案 这个我们从第i块第一个点开始向右扫 开一个数组记录每个数的出现次数 扫到一个数就

2014-10-22 10:14:06 2423

原创 BZOJ 2002 HNOI2010 弹飞绵羊 分块

题目大意及LCT版本题解:见 http://blog.csdn.net/popoqqq/article/details/38849471今天手滑用分块又重写了一遍这道题0.0 分块就是短啊将弹簧分为√n块对于每个弹簧 我们记录一下从这个弹簧出发直到弹到块外为止的弹跳次数及落点查询沿着落点弹到出去为止 修改从块开始到这个点为止修改一遍这样修改和查询都是O(√n)的#inclu

2014-10-21 17:22:10 2427

原创 BZOJ 1293 SCOI2009 生日礼物 堆

题目大意:给定一个数轴上n个点,每个点有一种颜色,一共k种颜色,求一个最短的区间,包含所有k种颜色卡了一段时间0.0 一开始想二分答案啥的 后来发现数据范围太大写不了0.0 后来去找题解才发现尼玛真巧妙维护一个堆 将每种颜色的第一个珠子加入堆 然后不断把最左侧的珠子取出,加入该种颜色的下一个 同时更新ans果然这么大数据范围还是要用堆这种常数小的数据结构啊0.0我手写了堆却开了ST

2014-10-21 16:29:26 1505

原创 BZOJ 3122 SDOI2013 随机数生成器 数论 EXBSGS

题目大意:给定一个数列X(i+1)=(a*Xi+b)%p 求最小的i>0,使Xi=t0.0 此题能1A真是太好了首先讨论特殊情况若X1=t ans=1若a=0 ans=b==t?2:-1若a=1 X1+b*(ans-1)==t (%p) 扩展欧几里得令temp=b/(a-1)则有(X(i+1)+temp)=a*(Xi+temp)Xans=(X1+temp)*

2014-10-21 15:47:54 1644

原创 POJ 3243 Clever Y Extended-Baby-Step-Giant-Step

题目大意:给定A,B,C,求最小的非负整数x,使A^x==B(%C)传说中的EXBSGS算法0.0 卡了一天没看懂 最后硬扒各大神犇的代码才稍微弄懂点0.0 参考资料: http://quartergeek.com/bsgs/                     http://hi.baidu.com/aekdycoin/item/236937318413c680c2cf29d4

2014-10-21 14:13:55 1626 2

原创 BZOJ 3166 HEOI2013 Alo 可持久化Trie树

题目大意:给定一个不重复的序列a,在a中任选一个区间,求区间内的次大值与区间内的任意一个其它数的最大的异或值首先我们枚举次大值 对于一个次大值 它可能选择的另一个数的取值范围为(l,r) 其中l为这个数左侧第二个比它大的数 r为这个数右侧第二个比它大的数在这个区间内的Trie树中贪心寻找最大值即可这个区间怎么求呢?我们维护一棵平衡树 将数从大到小将下标加进平衡树 每加进一个下标 比它大

2014-10-21 11:28:45 1592

原创 BZOJ 2741 【FOTILE模拟赛】L 分块+可持久化Trie树

题目大意:给定一个序列,多次询问[l,r]中最大子序异或和 强制在线一直RE的同学注意,本题的强制在线如果直接加会爆int导致调用数组下标为负首先我们有一个转化 维护前缀异或和数组a[] 那么[l,r]中最大子序异或和就是a数组中[l-1,r]中任取两个数的最大异或值然后分块处理 对于每块的第一个数a[i] 我们依次处理出对于所有的j>=i的[i,j]中的最大异或值 即s[i][j]=

2014-10-21 09:54:35 2457

原创 BZOJ 3674 可持久化并查集加强版 可持久化并查集

题目大意:同3673 强制在线同3673 只不过慢了一些0.0这道题只写路径压缩比只写启发式合并要快一点点 两个都写就慢的要死0.0改代码RE的可能是内存不够#include#include#include#include#define M 200200using namespace std;struct Tree{ Tree *ls,*rs; int num;}

2014-10-20 18:45:24 1932

原创 BZOJ 3673 可持久化并查集 by zky 可持久化并查集

题目大意:给定n个集合,提供三种操作:1.合并a,b所在集合2.回到第k次操作之后的状态3.询问a,b是否在同一集合可持久化并查集0.0 实现方式是用可持久化线段树实现可持久化数组维护可持久化并查集。。。至于可持久化数组,每条路径上只有叶节点的位置的num域是有意义的,感觉无比浪费0.0 可是不这样还真没法维护0.0合并时本来应该按照每个节点的深度之和维护,结果手残懒得写,

2014-10-20 18:39:50 2158

空空如也

空空如也

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

TA关注的人

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