自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

世界

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

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

原创 BZOJ 4031 HEOI2015 小Z的房间 Matrix-Tree定理

题目大意:给定一张地图,求生成树个数 Matrix-Tree定理直接上 不过模数是10910^9,不能直接求逆元 因此消元的时候辗转相除一下就好了#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#define M 110#define MOD 1000000000using name

2015-04-30 18:09:01 2666

原创 BZOJ 4026 dC Loves Number Theory 分块+十字链表/可持久化线段树

题目大意:给定一个序列,多次询问某段区间乘积的φ\varphi值对10007771000777的模我竟然卡过去了233333 将序列分块,记录fi,jf_{i,j}表示第ii块左端点到第jj个点中出现的所有质数pp的p−1p\frac{p-1}p之积 每次询问[x,y][x,y],首先取出[x,y][x,y]区间内所有数的积,然后乘上fst,yf_{st,y}(其中stst是xx后面第一个块端点

2015-04-30 16:19:58 2509

原创 BZOJ 4013 HNOI2015 实验比较 树形DP+组合数学

题目大意:给定一张图,每条边有’=’和’<’两个属性,每个点入度最多为1,求这张图可以压成多少个用’=’和’<’连接的序列 我只贴代码~~ 题解自己搜~~#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#define M 110#define MOD 1000000007using n

2015-04-29 20:58:04 2062

原创 BZOJ 4009 HNOI2015 接水果 树套树

题目大意:给定一棵树和mm条路径,每条路径有一个权值,Q次询问,每次询问某条路经包含的所有路径中权值的第k小 原来精神污染那个题是这么做的啊QwQ 题解网上都有,我就直接贴代码了 没心情写题解了#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#define M 40400using n

2015-04-29 18:33:04 2570

原创 BZOJ 4008 HNOI2015 亚瑟王 期望DP

题目大意:nn个人,rr轮游戏,每次从左到右轮,第ii个人有pip_i的概率被选中,选中的话本轮结束,产生did_i的贡献,否则接着轮 求期望贡献和 神思路…… 直接DP基本是死也搞不出来的 我们转化一下 我们把所有的机会一起轮 令fi,jf_{i,j}表示第i个人得到j个机会的概率 然后就简单了嘛= = fi,j=fi−1,j∗(1−pi−1)j+fi−1,j+1∗(1−(1−pi

2015-04-29 14:00:36 3861 1

原创 BZOJ 4012 HNOI2015 开店 动态树分治+二分

题目大意:给定一棵树,每个点有一个颜色,多次询问颜色在[l,r][l,r]区间内的所有点与某个点之间的距离之和,强制在线没记错的话这题我知道的有三种解法来着? (茴香豆的茴有四种写法泥萌知道嘛…?1.线段树维护虚树 2.点分治+线段树 3.分块第一种方法我不知道在线怎么搞= = (我并不知道怎么在虚树上进行点定位 第三种方法貌似内存过不去? 于是果断点分治+线段树写完发现内存还是炸了= =

2015-04-29 12:44:38 3718 2

原创 BZOJ 4029 HEOI2015 定价 数位贪心

题目大意:定义一个数的荒谬程度为去掉末尾所有00后的数字数量∗2*2(若末尾为55则荒谬程度减掉11),求[l,r][l,r]区间内荒谬程度最小的数字(若多个相同取最小) 从高位往低位贪心即可。 注意500的荒谬程度比100低#include <assert.h>#include <cstdio>#include <cstring>#include <iostream>#include

2015-04-29 11:07:08 1759

原创 codeforces #250E The Child and Binary Tree 快速傅里叶变换

题目大意:给定一个集合SS,对于i=1...mi=1...m求有多少二叉树满足每个节点的权值都在集合SS中且权值和为ii 构造答案多项式F(x)F(x)和集合SS的生成函数C(x)C(x),那么 根节点的左子树是一棵二叉树,右子树是一棵二叉树,本身的权值必须在集合S中,此外还有空树的情况 故有F(x)=F2(x)C(x)+1F(x)=F^2(x)C(x)+1 解得F(x)=1±1−4C(x)

2015-04-28 20:35:44 1834 2

原创 Nescafe41 ProblemA 异化多肽 多项式求逆

题目大意:、 思路: 搞出CC的生成函数F(x)F(x),那么: 长度为11的答案为F(x)F(x) 长度为22的答案为F2(x)F^2(x) … 故最终的答案为 F(x)+F2(x)+F3(x)+...F(x)+F^2(x)+F^3(x)+... =1−F+∞(x)1−F(x)\frac{1-F^{+∞}(x)}{1-F(x)} =11−F(x)\frac1{1-F(x)}

2015-04-28 14:09:03 1781

原创 BZOJ 4032 HEOI2015 最短不公共子串 后缀自动机+序列自动机+BFS

题目大意:给定字符串A和B,求A最短的子串/子序列S满足S不是B的子串/子序列 这题真TM有毒*2 搞法类似这道题 然后子串是后缀自动机 子序列自然就是序列自动机了= = 每更新一个x节点时所有没有x的后继的节点都连向这个节点 每个节点的parent是这个字母上一次出现的位置 每个字母记录最后一次出现的位置 更新指针时沿着parent指针撸一遍就行了#include <cstdio>#

2015-04-27 20:58:40 2259

原创 BZOJ 1194 HNOI2006 潘多拉的盒子 BFS+Tarjan+拓扑序DP

题目大意:给定一些自动机,如果某个自动机AA能产生的所有串都能在自动机BB中产生,则称BB是AA的一个升级,求最长链 这题TM有毒 数据范围5050,暴力枚举每一对点之间的关系,然后Tarjan缩点求最长链就行了 现在对于一对自动机AA和BB,我想知道AA能产生的所有串是否都能在BB中产生,那么BFS就可以了 我们用一个二元组(x,y)(x,y)表示走了某个串后AA走到了节点xx,BB走到了

2015-04-27 18:51:57 3375

原创 BZOJ 4011 HNOI2015 落忆枫音 拓扑序DP

题目大意:给定一张有向无环图,现在要求加入一条边,求加入后以1为根的树形图个数 首先不考虑加入的这条边,那么这个图是一个DAG 由朱刘算法的推论可知,如果除根节点外每个点都选择一条入边,由于没有环,因此一定会形成一个树形图 因此答案就是∏ni=2degreei\prod_{i=2}^ndegree_i 其中degreeidegree_i表示第ii个点的入度 现在加入这条边之后,我们仍然可以套

2015-04-22 13:49:30 4913 1

原创 BZOJ 4010 HNOI2015 菜肴制作 拓扑排序+堆

题目大意:给定一张无向图,求一个拓扑序,使: 1的位置最靠前 在保证上面的条件下使2的位置最靠前 在保证上面的条件下使3的位置最靠前 …… 注意不是字典序最小!例如样例3建立反图,对反图求字典序最小的拓扑序,然后反向输出即可。 我不知道为什么。真的不知道。 求个解答在线等。#include <cstdio>#include <cstring>#include <iostream>

2015-04-22 12:21:28 2599 3

原创 BZOJ 3998 TJOI2015 弦论 后缀自动机

题目大意:求严格/非严格K小子串 首先建立Sam 然后BFS一遍求出每个点代表状态的出现次数 此时如果是严格的那么每个点代表状态的出现次数都应该是1 然后DFS一遍求出每个节点的后继状态个数 然后就随便搞了啊= = 妈了个鸡卡常数。。。#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>

2015-04-21 18:46:36 2806

原创 BZOJ 3997 TJOI2015 组合数学 Dilworth定理

题目大意:给定一个网格图,每次从左上角出发,只能往右或往下走,最后到达右下角,每个格子有最低经过次数,问最少走几次 Dilworth定理:DAG的最小链覆盖=最大点独立集 最小链覆盖指选出最少的链(可以重复)使得每个点都在至少一条链中 最大点独立集指最大的集合使集合中任意两点不可达 此题中最大点独立集显然是一个集合满足集合中任意两点都是左下-右上的关系 DP一遍就能出解 复杂度O(Tmn)

2015-04-21 15:53:03 3677

原创 BZOJ 3996 TJOI2015 线性代数 网络流

题目大意:给定一个n∗nn*n的矩阵BB和一个1∗n1*n的行向量CC,求一个1∗n1*n的01矩阵AA,使(A×B−C)×AT(A\times B-C)\times A^T最大 (A×B−C)×AT=A×B×AT−C×AT(A\times B-C)\times A^T=A\times B\times A^T-C\times A^T 我们可以考虑有nn个物品,每个物品选不选对应AA中每个位置是1

2015-04-21 15:12:22 2960

原创 BZOJ 4002~4007 JLOI2015 代码

题解戳这里4002 有意义的字符串:#include <cmath>#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#define P 7528443412579576937ullusing namespace std;typedef unsigned long long ull;ul

2015-04-21 13:24:11 3307 6

原创 JLOI2015试题大意及部分题解

================Day1===============T1:求(b+d√2)n(\frac{b+\sqrt d}2)^n的整数部分对p取模后的值 其中bmod2=1,dmod4=1,b2≤d<(b+1)2,n≤1018b\mod2=1,d\mod4=1,b^2\leq d<(b+1)^2,n\leq10^{18}思路: 构造数列an=b∗an−1+d−b24∗an−2a_n=b*

2015-04-20 11:55:42 7813 6

原创 BZOJ 2280 Poi2011 Plot 二分答案+随机增量法

题目大意:给定n个点,要求分成m段,使每段最小覆盖圆半径的最大值最小二分答案,然后验证的时候把点一个个塞进最小覆盖圆中,若半径超了就分成一块……等等你在跟我说不随机化的随机增量法?好吧那么对于一个点pos,我们要计算最大的bound满足[pos,bound]区间内的最小覆盖圆半径不超过二分的值直接上二分是不可取的,因为我们要求m次,如果每次都验证一遍[1,n/2]直接就炸了

2015-04-17 19:14:19 1970

转载 _

案外今日が来なくても ローファイな风景を连れて生涯不安症な君と 明日へ先に行けそうかもね~「さぁ さぁ なんかないものか」と ユレ気味にビートを刻めばそうそう悪いもんじゃあないさ まあ 饱きないうちは

2015-04-17 17:26:28 757 2

原创 BZOJ 1337 最小圆覆盖 随机增量法

题目大意:求最小圆覆盖我又写了一遍233尼玛上一遍居然忘记random_shuffle了= =#include #include #include #include #include #include #define M 100100#define EPS 1e-7using namespace std;struct Point{ double x,y; Poin

2015-04-17 16:08:50 1432

原创 BZOJ 1336 Balkan2002 Alien最小圆覆盖 随机增量法

题目大意:求最小圆覆盖随机增量法裸题注意多输出几位小数不然过不去= =#include #include #include #include #include #include #define M 100100#define EPS 1e-7using namespace std;struct Point{ double x,y; Point() {} Poin

2015-04-17 15:48:37 1311

原创 BZOJ 2083 Poi2010 Intelligence test 链表

题目大意:给定序列A,多次询问某个序列B是不是A的子序列设某个序列B当前需要匹配的元素是x,那么就将所有x相同的B序列存成一个链表放在head[x]上然后对于A的每个元素x,去head[x]上撸一遍链表,更新这些B序列的当前元素即可时间复杂度是线性的 不过为毛跑的这么慢= =#include #include #include #include #include #def

2015-04-17 14:28:58 1105

原创 BZOJ 2721 Violet 5 樱花 数论

题目大意:给定nn,求有多少正整数数对(x,y)(x,y)满足1x+1y=1n!\frac1x+\frac1y=\frac1{n!} 由于x,y>0x,y>0,故显然有y>n!y>n! 不妨设y=n!+t(t>0)y=n!+t(t>0),那么有 1x+1n!+t=1n!\frac1x+\frac1{n!+t}=\frac1{n!} 化简后得到 n!(n!+t)+x(n!)=x(n!+t)n

2015-04-17 13:12:23 2299 1

原创 BZOJ 2671 Calc 数论

题目大意:给定NN,求∑ni=1∑nj=1[i+j|ij]1\sum_{i=1}^n\sum_{j=1}^n[i+j|ij]1 跪Nodgd= = 不妨设d=gcd(i,j),i=ad,j=bd,gcd(a,b)=1d=\gcd(i,j),i=ad,j=bd,\gcd(a,b)=1,那么有 (a+b)d|abd2(a+b)d|abd^2 即 a+b|abda+b|abd ∵gcd(a,b

2015-04-17 12:49:49 2748

原创 BZOJ 3995 Sdoi2015 道路修建 线段树

题目大意:给定一个2*n的网格图,多次改变某条边的权值或询问y坐标在[l,r]中的2*(r-l+1)个点的MST这真是一道好题= =我们用线段树维护每个区间内的MST然后考虑合并合并两个区间 我们会加入两条边 这样一定会形成一个环 切掉环上最大边 这题没了然后就是一坨乱七八糟的细节讨论= =首先最大边一定在图中的彩色部分内 绿色部分可以O(1)求 我们需要维护的是红

2015-04-16 20:04:52 2593

原创 BZOJ 3994 Sdoi2015 约数个数和 莫比乌斯反演

题目大意:求∑ni=1∑mj=1d(ij)\sum_{i=1}^n\sum_{j=1}^md(ij) 首先我们有一个很神的结论: ∑ni=1∑mj=1d(ij)=∑ni=1∑mj=1⌊ni⌋⌊mj⌋[gcd(i,j)==1]\sum_{i=1}^n\sum_{j=1}^md(ij)=\sum_{i=1}^n\sum_{j=1}^m\lfloor\frac n i\rfloor\lfloor\fr

2015-04-16 17:20:20 4704 2

原创 BZOJ 3993 Sdoi2015 星际战争 二分答案+最大流

题目大意:有n个机器人和m个激光武器,每个武器有一个威力和能打的集合,同一时刻只能打一个机器人,问最少多久可以全灭二分答案+网络流= =注意二分上界#include #include #include #include #include #define M 110#define S 0#define T (M-1)#define EPS 1e-7#define INF

2015-04-16 14:49:19 1876

原创 BZOJ 3990 Sdoi2015 排序 DFS

题目大意:给定一个长度为2^n的排列,有n个操作,第i个操作为【将序列分成2^(n-i+1)段,每段长2^(i-1),然后任选两段交换】,每个操作最多用一次,求有多少操作序列能把序列排出来Orz dzy首先我们很容易发现一个操作序列是否合法与序列的顺序是无关的因此我们只需要确定某个操作序列中每个操作选不选就行了 那么这类操作序列对答案的贡献就是选择的操作数的阶乘我们从小到大DFS,

2015-04-16 13:38:10 2069

原创 BZOJ 3991 Sdoi2015 寻宝游戏 树链的并

题目大意:给定一棵树,多次将某个点设为关键点或取消关键点,求虚树中边长总和的二倍Orz wyfcyx首先我们考虑树链的并(每个点到根节点的链的并集)怎么求将虚树中的所有点按照DFS序排序,将每个点的深度统计入答案,将相邻两个点之间的LCA的深度从答案中扣除,就是所有点到根的链的并集的长度但是我们要求的是虚树中的边长总和,因此我们还要减掉所有点LCA的深度现在要求动态维护,因此我

2015-04-16 10:15:21 2292

原创 BZOJ 3992 Sdoi2015 序列统计 快速数论变换

题目大意:给定n(n求原根,对S集合内每个元素取指标,然后搞出生成函数f(x)那么答案就是(f(x))^n (mod 1004535809)上NTT用多项式快速幂搞一搞就好了#include #include #include #include #define M 16400#define MOD 1004535809#define INF 0x3f3f3f3f#

2015-04-15 20:50:01 3628

原创 BZOJ 3812 主旋律 状压DP+容斥原理

题目大意:给定一张有向图,求这张有向图的生成子图中有多少强连通图正着做不好做,我们考虑容斥原理如果一个图不连通,那么这张图缩点之后一定会形成一个点数>=2的DAG一个DAG中一定会有一些入度为0的点,我们枚举这些点的点集进行容斥具体DP方程和细节见代码 注释写的还是比较详细的我就不多说了= =#include #include #include #include #

2015-04-15 14:48:49 3264

原创 BZOJ 2648 SJY摆棋子 K-Dimensional-Tree

题目大意:给定平面上的n个点,定义距离为曼哈顿距离,支持下列操作:1.插入一个点2.查询离一个点最近的点的距离Hint说KDTree【可以】过,那么不写KDT还能写啥= =我的CDQ分治可是T掉了啊= =记住KDT发生TLE事件的时候不一定是常数问题 有可能写挂了= =(这不和莫队一样么233#include #include #include #include #

2015-04-15 11:20:47 2049

原创 BZOJ 1941 Sdoi2010 Hide and Seek K-Dimensional-Tree

题目大意:给定平面上的n个点,定义距离为曼哈顿距离,求一个点到其他所有点的最大距离与最小距离之差最小KDTree……这东西好神啊注意计算最小距离的时候不能把自己也算进去= =#include #include #include #include #define M 500500#define INF 0x3f3f3f3fusing namespace std;struct

2015-04-15 11:17:34 1624

原创 Codeforces#167E Wizards and Bets 高斯消元

题目大意:给定一张有向无环图,有恰好k个无入度的点和k个无出度的点,对于一个边集如果这个边集恰好形成了从每个无入度的点到每个无出度的点的k条不相交的路径,那么这k对点就会对答案有一个贡献;如果对应关系如果是一个奇排列,对答案的贡献为-1,否则为+1。求所有贡献的和首先不考虑路径是否相交令f[i][j]为从第i个无入度的点走到第j个无出度的点的方案数,那么这个矩阵的行列式的值就是答案那么

2015-04-14 19:13:07 1604

原创 BZOJ 3128 Usaco2013 Open Figure Eight

题目大意:给定一个有坏点的矩阵,求能画出来的最大的“8”字形“8”字形满足:*数字8由上下两个矩形构成。*数字8的上下两个矩形都满足至少有一个单元格在矩形内部。*数字8顶部的矩形的底边必须为底部矩形顶边的子集。*数字8只能刻在大理石完美无瑕的部分。*规定数字8的得分为上矩形和下矩形的面积的乘积,它们希望得分能达到最大。枚举顶部矩形的底边,可以用上一行的底边O(1)转

2015-04-14 18:30:26 1102 2

原创 BZOJ 2960 跨平面 对偶图+朱刘算法

题目大意:给定一张平面图,求对偶图的最小树形图这题TM考了我两遍!!两遍!!我拿了两遍MST的60分!世界你赢了 你逼着我学了朱刘算法233#include #include #include #include #include #include #define M 3030#define INF 0x3f3f3f3fusing namespace std;struc

2015-04-14 17:05:36 2591

原创 BZOJ 3944 Sum 数论

题目大意:求∑ni=1φ(i)\sum_{i=1}^n\varphi(i)和∑ni=1μ(i)\sum_{i=1}^n\mu(i)。 n≤231−1n\leq2^{31}-1 令F(n)F(n)为f(n)f(n)的前缀和,G(n)G(n)为g(n)g(n)的前缀和,且满足g(n)=∑i|nf(i)g(n)=\sum_{i|n}f(i),则有: G(n)=∑ni=1g(i)G(n)=\sum_

2015-04-13 11:17:39 4974

原创 BZOJ 1420&&BZOJ 1319 Discrete Roots 数论

题目大意:求方程xk≡a(mod p)x^k≡a(mod\ p)在[0,p)[0,p)区间内的全部解 取pp的一个原根gg,两侧取指标得到: k∗indgx≡indga(mod p−1)k*ind_gx≡ind_ga(mod\ p-1) 上EXGCD即可 注意a=0a=0要特判 (EXGCD已死系列……#include <cmath>#include <cstdio>#include

2015-04-11 15:44:55 1731

原创 BZOJ 1094 ZJOI2007 粒子运动 计算几何

题目大意:给定一个圆,一堆粒子在里面反射,每个粒子只能撞墙k次,求全程粒子间距离的最小值每两个粒子之间计算一遍反射就是把射线沿着切线作镜像变换随便搞搞咯……#include #include #include #include #include #include #define M 110#define EPS 1e-7#define INF 1e9using n

2015-04-10 15:27:07 1594

空空如也

空空如也

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

TA关注的人

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