自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

世界

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

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

原创 BZOJ 1132 POI2008 Tro 计算几何

题目大意:给定平面上的一些点,求这些点能组成的所有三角形的面积之和首先我们枚举每一个点 以这个点为原点建立平面直角坐标系 然后将第一、四象限和x、y轴正半轴上的点按照斜率排序枚举第二个和第三个点 这样做是O(n^3)的 肯定超时 但是我们发现了什么?对于每个点k 它对答案的贡献为:(x1*yk-y1*xk)+(x2*yk-y2*xk)+...+(x_(k-1)*yk-y_(k-1)

2014-11-29 13:48:54 2271

原创 BZOJ 2219 数论之神 数论

题目大意:求在[0,p)范围内的解的个数鏼爷的题解:http://jcvb.is-programmer.com/posts/42036我只是来粘代码的QAQ指标啥的原根啥的中国剩余定理啥的真的完全不知道QAQUPD:时隔多年 在这道题被Hack过一次之后 我终于重新AC了这道题- -大致说下做法吧感觉说的这么详细不利于深刻理解- -算了看

2014-11-29 13:40:46 4160 8

原创 BZOJ 1189 HNOI2007 紧急疏散evacuate 二分答案+最大流

题目大意:给定一个m*n的地图,每个点有可能是空地、墙或者出口,每个空地初始站着一个人,每一时刻可以向周围走1格,门每一时刻只能通过一个人,求最短多少时间后所有人可以撤离首先从每个出口出发开始广搜,得到每个空地到所有出口的距离然后二分答案,每次建图如下:从源点向每个空地一条流量为1的边如果一个空地能在规定时间到达某个出口,就从这个空地出发向该出口链接一条流量为1的边每个出口向汇

2014-11-29 13:05:13 2075

原创 BZOJ 3738 Ontak2013 Kapitał 数论

题目大意:求C(n+m,n)去掉末尾所有的0之后的后k位组合数取模问题……首先k将10^9分解质因数,可以得到10^9=2^9*5^9=512*1953125 这两个数都不是很大 所以直接套用组合数取模的模板具体细节参见 2142 礼物 http://blog.csdn.net/popoqqq/article/details/39891263消0的时候注意消掉2的时候要乘上相应5的

2014-11-28 09:35:50 1581

原创 BZOJ 3758 数数 分块打表

题目大意:定义一个数是完美的,当且仅当这个数的每一位可以分成两个集合,使这两个集合之和相等,求[a,b]区间内有多少个数是完美的数位DP?……不大好搞分块打表大法好!首先考虑验证一个数是不是完美的怎么搞求出数字和 如果是奇数肯定不是 如果是偶数就跑一下背包背包很慢?没关系,由于最大的和只能有9*8/2=36 所以我们直接状压 令f=1 然后对于每一位x有f|=f最后

2014-11-27 20:07:26 2943 3

原创 BZOJ 3781 小B的询问 莫队算法

题目大意:给定一个序列,多次询问某个区间中所有数字出现次数的平方和莫队算法 不解释#include #include #include #include #include #define M 50500using namespace std;struct query{ int l,r,pos; bool operator < (const query &Y)

2014-11-27 17:15:41 1688

原创 BZOJ 3769 spoj 8549 BST again 记忆化搜索

题目大意:求深度为h,大小为n个BST的数量对1000000007取模的值令f[i][j]为大小为i,深度为j以下的BST的数量设根节点为k,那么两个儿子一定分别是两个BST有递推式f[i][j]=(1记忆化搜索即可 卡常数可以过#include #include #include #include #define M 610#define MOD 100000000

2014-11-27 15:22:55 1622

原创 BZOJ 1854 SCOI2010 游戏 二分图最大匹配/并查集

题目大意:给定n个武器,每个武器有两个属性,只能使用其中一个,要求选择一些武器 可以造成形如1 2 3 4的伤害 求最大伤害题目大意我没写明白还是去看原题把QAQ做法1:同 1191 每个武器向两个属性连边 然后从1~10000枚举属性 跑二分图最大匹配 无法匹配则输出答案#include#include#include#include#define M 1001001u

2014-11-27 13:43:22 3394

原创 BZOJ 3052 WC2013 糖果公园 带修改树上莫队

题目大意:给定一棵树,每个点有一个颜色,提供两种操作:1.询问两点间路径上的Σv[a[i]]*w[k],其中a[i]代表这个点的颜色,k表示这个点是这种颜色第k次出现2.修改某个点的颜色VfleaKing的题解见 http://vfleaking.blog.163.com/blog/static/174807634201311011201627/带修改莫队上树……如果不带修改就正常

2014-11-27 13:02:58 3651 2

原创 BZOJ 3759 Hungergame 博弈论+高斯消元

题目大意:给定一些箱子,每个箱子里有一些石子,两个人轮流操作,每个人可以进行以下操作之一:1.打开任意多的箱子2.从一个打开的箱子中拿走任意多的石子不能操作者判负,求先手是否必胜先手必胜的状态为:给出的数字集合存在一个异或和为零的非空子集,则先手必胜证明:首先我们有状态A:当前的所有打开的箱子中的石子数异或和为零,且所有关闭的箱子中的石子数的集合中不存在一个异或和为零的非空

2014-11-26 19:13:14 2222

原创 BZOJ 2434 NOI2011 阿狸的打字机 fail树+树状数组

题目大意:初始字串为空,首先给定一系列操作序列,有三种操作:1.在结尾加一个字符2.在结尾删除一个字符3.打印当前字串然后多次询问第x个打印的字串在第y个打印的字串中出现了几次卡了很久……到底还是对AC自动机了解不是很深啊QAQfail树不是很难想 至少在用AC自动机切掉3172之后不是很难想……首先构建AC自动机 注意由于这个字串的特殊构造 我们不必每打印一个字符串再

2014-11-26 16:39:36 3224

原创 BZOJ 3731 Gty的超级妹子树 块状树

题目大意:同3720 增加了一个操作 即删除一个点与父亲节点的连边3720题解见 http://blog.csdn.net/popoqqq/article/details/41481439断开一个节点与父节点的连边时如果这个点是所在块的根节点,直接断掉就行如果这个点不是所在块的根节点,那么就要把这个块分裂,这个点以及在块中的子树都分裂到新的块中,细节讨论较多不大好写0.0然

2014-11-26 13:42:57 2236

原创 BZOJ 3721 PA2014 Final Bazarek 贪心

题目大意:给定n个数,多次询问选择k个数使和为奇数的最大和首先将所有数排序对于每个询问,如果最大的k个数之和是奇数,那么答案显然是这k个数的和如果最大的k个数之和是偶数,那么我可以将后k个数中最小的偶数换成前n-k个数中最大的奇数,或者将后k个数中最小的奇数换成前n-k个数中最大的偶数二者取最优即可 无法如此做则输出-1#include #include #includ

2014-11-25 16:55:28 1772

原创 BZOJ 2464 中山市选2009 小明的游戏 SPFA

题目大意:给定一个由'#'和'@'构成的二维矩阵,走到不同的字符需要代价1,求s到t的最短路签到题+1这操作符重载要不要写的这么高大上……#include #include #include #include #define M 510using namespace std;typedef pair abcd;templatestruct Reader{ T xx[M]

2014-11-25 15:56:52 1912

原创 BZOJ 3720 Gty的妹子树 块状树

题目大意:维护一棵树,每个点有一个权值,提供下列操作:1.询问某棵子树中有多少个节点的权值大于x2.修改某个节点的权值3.增加一个叶子节点强制在线传说中的树分块首先DFS,对于每个节点,如果这个节点的父亲节点所在块未满,就塞进父节点所在块中,否则自成一块,然后与父节点所在的块连边然后就按照分块直接搞吧0.0 细节实在是太多了 所以写挂的地方看看本蒟蒻的代码就好了0.0

2014-11-25 14:41:18 3016

原创 BZOJ 3757 苹果树 树上莫队

题目大意:给定一棵树,每个节点有一个颜色,

2014-11-25 12:45:18 1871

原创 BZOJ 1935 SHOI2007 园丁的烦恼 树状数组

题目大意:给定平面上的一些点,多次询问某个矩形中有多少个点将每个询问拆成4个 然后把所有询问和点都按照横坐标排序对于每个询问,将所有x值小于等于这个询问的x的点的y值加入树状数组 然后在树状数组上查询小于等于这个询问的y值的点的数量别被1000W吓到了 如果不爆内存的话1E也是能搞的 套个log就没多少了#include #include #include #include

2014-11-23 21:29:18 1824

原创 BZOJ 2438 中山市选2011 杀人游戏 Tarjan

题目大意:有n个人,其中一个是杀手,可以询问一些人,如果是杀手就会死,如果是平民,他会告诉你他认识的人中有谁是杀手有谁是平民更正:数据没有问题,之前的做法是错误的,特此更正!易知如果我需要访问x个人,那么答案就是1-x/n 我们需要访问最少的人如果我访问的人是平民,那么这个点所有的后继我都能知道于是Tarjan缩点之后入度为零的点就是答案但是还有一个问题 比如说这组样例3

2014-11-23 14:13:28 1514

原创 BZOJ 3732 Network Kruskal重构树

题目大意:给定一个n个点m条边的无向连通图,k次询问两点之间所有路径中最长边的最小值Kruskal+倍增LCA做法见http://blog.csdn.net/popoqqq/article/details/39755703LCT做法见http://blog.csdn.net/popoqqq/article/details/39929277Kruskal重构树真是强大……一不小心手滑就R

2014-11-23 11:54:55 2353 1

原创 BZOJ 1196 HNOI2006 公路修建问题 二分答案+Kruskal

题目大意:给定一个无向图,一条边

2014-11-23 11:48:14 1821

原创 BZOJ 2738 矩阵乘法 分块

题目大意:给定一个矩阵,多次求一个子矩阵中的第k小正解:CDQ分治 不会 二维莫队? 不会 于是果断分块大法好(又是我们将这n*n个数排序 分n次插入 每次插入n个每次插入后 去链表上处理尚未出解的询问(我懒得写链表写了并查集) 如果当前询问的子矩阵内已经插入大于等于k个数 那么答案一定在当次插入的n个数中 暴力查找即可时间复杂度O(n^3+nq) 好卡……#inclu

2014-11-21 20:07:37 2475

原创 BZOJ 1218 HNOI2003 激光炸弹 暴力

题目大意:给定平面上的n个点,求一个r*r的正方形最多覆盖多少个点NOIP 2014 D2T1 无线网络发射器选址直接暴力枚举正方形 加个前缀和优化就能过n^2大法好啊#include#include#include#include#define M 5010using namespace std;int n,r,ans,sum[M][M];int main(){

2014-11-21 16:34:33 2784

原创 BZOJ 1800 AHOI2009 fly 飞行棋 暴力

题目大意:给定圆弧上的一些点,求有多少个矩形矩形的对角线一定是直径 所以问题转化为求直径 若直径数量为x 则答案为C(x,2)这东西用不用啥数据结构维护一下……手贱去看了下数据范围……其实线性做法巨好写 为何看到那么多版本都是O(n^2)的#include #include #include #include #define M 30using namespace std

2014-11-21 15:36:34 2034

原创 BZOJ 1224 HNOI2002 彩票 DFS

题目大意:在1~m中选n个不同的数 要求和为X/Y 求方案数爆搜的话应该是100E左右 所以考虑加剪枝上下界剪枝 如果当前的情况下剩余的数最大都无法到达目标或最小都无法小于目标 则剪枝#include #include #include #include #define M 200200using namespace std;struct Segtree{ Segt

2014-11-21 15:23:50 2060

原创 BZOJ 3551 ONTAK2010 Peaks加强版 Kruskal重构树+可持久化线段树

题目大意:同3545 强制在线3545题解传送门:http://blog.csdn.net/popoqqq/article/details/40660953强制在线没法排序 启发式合并也就用不了了Kruskal重构树是个挺好玩的东西 可以拿来处理一些最小生成树的边权最值问题这里我们Kruskal连边时并不直接连边 而是新建一个节点ext 将两个点所在子树都连到ext的儿子上比如

2014-11-21 14:40:10 4596 3

原创 BZOJ 2111 ZJOI2010 Perm 排列计数 组合数学+Lucas定理

题目大意:求1~n的排列能组成多少种小根堆考虑一个1~i的排列所构成的堆,l为左儿子大小,r为右儿子的大小那么1一定是堆顶 左儿子和右儿子分别是一个堆 显然如果选出l个数给左儿子 那么左儿子的方案数显然是f[l],右儿子的方案数为f[r]于是有f[i]=C(i-1,l)*f[l]*f[r]于是我们线性筛处理出阶乘和阶乘的逆元 代入即可得到WA原因是这题n可以大于p 此时要用到L

2014-11-21 14:36:46 2489

原创 BZOJ 2594 Wc2006 水管局长数据加强版 Link-Cut-Tree

题目大意:给定一个无向图,多次删除某条边,多次查询两点之间路径上边权最大值的最小值Link-Cut-Tree维护动态最小生成树首先倒着做 将所有被删除的边标记(找边我用的排序+二分) 将没标记的边跑一遍Kruskal 求出最小生成树 然后每次加边和查询正常维护即可LInk-Cut-Tree一气呵成写完,Kruskal尼玛写挂了…… 居然忘记把并查集连边 这我也是醉了顺便吐槽一下题干

2014-11-21 14:24:55 2389

原创 BZOJ 2762 JLOI2011 不等式组 树状数组

题目大意:给定一些形如ax+b>c的不等式,支持插入和修改,以及询问当x=k时有多少不等式成立将不等式变形 可以得到每个不等式成立时x的取值范围 在树状数组上统计即可注意事项:1.a可以等于0 此时若b>c x∈R 若b2.x的取值范围可能超过[-1000000,1000000]3.由于有负数 所以区间修改时左右端点都要加上1000001 若加上1000000则死循环4.小

2014-11-21 14:07:33 2056

原创 BZOJ 2467 中山市选2010 生成树 组合数学

题目大意:给定一个图,图的中心是一个n个点的多边形,每条边都外接一个五边形,求生成树个数Matrix Tree定理?不会!观察这个图5n条边 4n个点每个五边形都是一个环 必须拆掉一条边拆掉之后发现4n个点 4n条边 是一个基环树基环树的环上的边由中心多边形被拆掉的边所在的五边形的剩余边与中心多边形未被拆掉的边构成容易发现这个环上任意拆掉一条边都会导致某个五边形被拆

2014-11-21 14:02:02 2973

原创 BZOJ 2743 HEOI2012 采花 树状数组

题目大意:给定一个序列,多次询问区间内出现两次以上的数的数量n考虑对于每个区间的左端点 对这个区间有贡献的数是从这个端点开始所有第二次出现的数于是我们将区间按照左端点排序  然后从左向右扫令next[i]为i位置上的数下一次出现的位置初始将所有第二次出现的数加入树状数组然后每删除一个点i 将next[i]从树状数组中删除 然后将next[next[i]]加入树状数组然后

2014-11-21 12:11:24 1705 3

原创 BZOJ 1975 SDOI2010 魔法猪学院 A*k短路

题目大意:给定一个值E 求起点到终点的最多条路径 使长度之和不超过Ek短路的A*算法……每个点有一个估价函数=g[x]+h[x] 其中g[x]是从源点出发已经走了的长度 h[x]是从这个点到汇点的最短路首先先在反图上跑一遍SPFA求出每个点的h[x],然后将源点的g[x]+h[x]加入堆 每次取出堆顶时将堆顶的g[x]向所连接的边扩展 第k次取出汇点即是答案其中有一个剪枝就是当第k+1

2014-11-20 13:15:26 2171

原创 BZOJ 1324 Exca王者之剑 最小割

题目大意:给定一个n*m的矩阵,每个格子有宝石,人任选位置出发,取走当前位置的宝石之后四周的宝石消失,然后可以走两步,重复上述过程容易发现一个格子取了那么四周的格子都不能取 于是方格取数问题黑白染色 黑色点连源 白色点连汇 流量为格子的权值 黑白之间连边 流量为正无穷 用总和减去最大流就是答案以前写的EK 跑了4000+ms我也是醉了#include#include#inclu

2014-11-20 13:11:17 1819

原创 BZOJ 1305 CQOI2009 dance跳舞 二分答案+最大流

题目大意:给定n个男生和n个女生,一些互相喜欢而一些不,举行几次舞会,每次舞会要配成n对,不能有相同的组合出现,每个人只能与不喜欢的人跳k次舞,求最多举行几次舞会将一个人拆成两个点,点1向点2连一条流量为k的边,两个人若互相喜欢则点1之间连边,不喜欢则点2之间连边对于每一个要验证的x值 将每个人的点1向源或汇连一条流量为x的边然后二分答案跑最大流即可#include#includ

2014-11-20 13:05:19 1833

原创 BZOJ 2007 NOI2010 海拔 平面图最小割

题目大意:YT市是一个规划良好的城市,城市被东西向和南北向的主干道划分为n×n个区域。简单起见,可以将YT市看作一个正方形,每一个区域也可看作一个正方形。从而,YT城市中包括(n+1)×(n+1)个交叉路口和2n×(n+1)条双向道路(简称道路),每条双向道路连接主干道上两个相邻的交叉路口。下图为一张YT市的地图(n = 2),城市被划分为2×2个区域,包括3×3个交叉路口和12条双向道路。 小Z

2014-11-19 15:55:34 2100

原创 BZOJ 1878 SDOI2009 HH的项链 树状数组/莫队算法

题目大意:给定一个序列,求一个区间内有多少个不同的数正解是树状数组 将所有区间按照左端点排序 然后每次只统计左端点开始的每种颜色的第一个数就行了 用树状数组维护我写的是莫队算法 莫队明显能搞 m√m明显慢了点但是还是能接受的一个复杂度一开始离散化数组开小了各种秒RE…… 跪了#include#include#include#include#include#define M

2014-11-19 14:45:00 1936

原创 BZOJ 1834 ZJOI2010 network 网络扩容 Dinic+EK费用流

题目大意:给定一个n个点m条边的无向图,每条边有一个扩容费用c,代表每扩容1流量的花费,求最大流及将最大流扩大k的最小费用第一问直接跑最大流第二问将每条边的起始点向终点连接一条流量为正无穷、费用为c的边 然后将n向汇点连一条流量为ans+k 费用为0的边 跑最小费用最大流即可#include#include#include#include#define M 5010#defi

2014-11-19 13:05:50 1501

原创 BZOJ 1212 HNOI2004 L语言 AC自动机(Trie树)+动态规划

题目大意:给定一个单词表和m个字符串 问每个字符串的最长的前缀,满足这个前缀可以拆分成一些字符串 使这些字符串都在单词表中出现过再也不敢看错数据范围了……一道明明用Trie树能解决的问题居然被我写了AC自动机……将单词表中的单词全都插入AC自动机 每个单词所在的节点记录这个单词的长度然后对于每个字符串 用f[i]表示长度为i的前缀是否能拆分成单词表中的单词 跑AC自动机对于每个匹配

2014-11-18 20:48:33 2692

原创 BZOJ 1801 AHOI2009 中国象棋 递推

题目大意:给定一个棋盘,放置一些炮,要求任意两个炮不能互相攻击,求方案数对p取模的值首先任意两个炮不互相攻击等价于一条线上最多只能有两个炮直接状压DP的话是50分考虑到每一列都是等价的 那么我们可以直接递推令f[i][j][k]为前i行有j列有一个炮 k列有两个炮那么讨论这行不放炮 方案数为f[i-1][j][k]在原先没有炮的列放炮 方案数为f[i-1][j-1][k

2014-11-18 16:52:13 2618 1

原创 BZOJ 3727 PA2014 Final Zadanie 树形DP

题目大意:给定一棵树,令一个点到所有点的距离与点权的乘积之和为b[i],求每个点的权值a[i]首先如果给定a[i]我们可以很轻松的求出b[i] 但是反过来怎么搞?高斯消元?30W?考虑已知a[i]求b[i]的情况 令这棵树的根为1 点i到根节点的距离为dis[i] 以i为根的子树的a值之和为size[i] 那么有递推式b[1]=Σa[i]*dis[i]b[x]=b[fa[x]]-2

2014-11-18 15:47:18 2127

原创 BZOJ 3747 POI2015 Kinoman 线段树

题目大意:有m个点,每个点有个权值,现在有这m个点组成的长度为n的序列,求一个区间,这个区间内只出现一次的点的权值和最大想了半天的一道题居然被神犇说成是水题……我也是醉了枚举左端点 对于每个左端点求右端点 这个用线段树维护最大值考虑每个数对答案的贡献 记录一个数组next表示这个位置上的点下一次出现的位置 那么这个点贡献的作用范围就是[i,next[i]-1] 如果没有next就是[i

2014-11-18 14:54:53 1990

空空如也

空空如也

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

TA关注的人

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