自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

世界

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

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

原创 BZOJ 2822 AHOI2012 树屋阶梯 卡特兰数

题目大意:求n个矩形搭出n级阶梯的方案数那个什么空心不能向上完全是逗你的- -卡特兰数的应用之一- - Wiki上有说- - 具体证明不会- -总之Python大法好- -n=int(raw_input())temp=1for i in range (1,n+1): temp=temp*(4*i-2)/(i+1)print temp

2014-12-31 12:57:31 1747

原创 BZOJ 2178 圆的面积并 Simpson自适应公式

题目大意:给定n个圆,求面积并直接暴力套用Simpson自适应公式就行了对于每一个x值,求出F(x)的方法是求出所有圆在直线x=x(重了233)上的截取区间然后求区间并 返回区间长度即是F值这样正常写就过样例了 然后 WA了。。。尼玛我样例都过了你跟我说WA?下面是注意事项:1.此题卡精度 EPS要设为1e-13 设为1e-12会WA2.标程精度不够 不能用long

2014-12-31 10:54:34 2444

原创 BZOJ 1821 JSOI2010 部落划分 Group Kruskal

题目大意:给定平面上的n个点,要求将这n个点划分为k个集合,使划分后任意两个集合中最近两点的距离的最大值最小,输出这个最小值考虑这n个点之间所有的连边 我们要让长边保留 就尽量选取短边链接于是就是求加入n-k条边的最小生成森林 由于输出下一个最小值 因此Kruskal加入第n-k+1条边时输出边权即可#include #include #include #include #in

2014-12-30 19:58:01 1456

原创 BZOJ 2738 矩阵乘法 整体二分+二维树状数组

题目大意:给定一个矩阵,多次求某个子矩阵中的第k小分块解法见 http://blog.csdn.net/popoqqq/article/details/41356899《论除最小割外题目解法从来与题目名称无关系列》整体二分 Solve(x,y,S)表示处理答案在[x,y]区间内的询问集合S预先将所有数按照大小排序 每次将[1,mid]之间的数插入树状数组然后对于分治内部的每一个

2014-12-30 13:25:18 2354

原创 BZOJ 2527 Poi2011 Meteors 整体二分+线段树 / 可持久化线段树(MLE)

题目大意:给定一个环,每个节点有一个所属国家,k次事件,每次对[l,r]区间上的每个点点权加上一个值,求每个国家最早多少次操作之后所有点的点权和能达到一个值首先我们考虑暴力想法对于每个国家分开讨论 二分操作次数但是这样每次Judge的时候我们要模拟1~mid所有的操作 浪费在这里的复杂度实在太大这样做每个国家需要模拟O(klogk)次操作 时间复杂度O(nklogk) TLE我

2014-12-30 10:56:00 1984

原创 BZOJ 1965 AHOI2005 SHUFFLE 洗牌 数论

题目大意:给定偶数张牌,问m次洗牌之后第l张牌是多少x*2^m==l (mod n+1)x=(n/2+1)^m*l mod n+1快速幂+快速乘233#include #include #include #include #define MOD (n+1)using namespace std;typedef unsigned long long ll;long

2014-12-30 09:32:30 1955

原创 BZOJ 1706 usaco2007 Nov relays 奶牛接力跑 倍增Floyd

题目大意:给定一张无向图,求从s出发恰好经过n条边到达e的最短路倍增Floyd……为何大家都管这个叫做矩阵乘法- - 算了为何要纠结这种事- -令f[p][i][j]表示走2^p步从i到达j的最短路 有f[p][i][j]=min{f[p-1][i][k]+f[p-1][k][j]}将n进行二进制拆分 用矩阵g记录答案矩阵 对于每一位p 用f[p]和g两个矩阵搞出h 再将h的值赋给g

2014-12-30 09:02:01 2367

原创 BZOJ 3217 ALOEXT 替罪羊树套Trie树

题目大意:维护一个序列,支持以下操作:1.在某个位置插入一个数2.删除某个位置上的数3.修改某个位置上的数4.求某段区间中的次大值与区间中另一个数的异或值的最大值强制在线替罪羊树套Trie树。。。终于尼玛A了。。。7.4KB的大代码啊- -插入和修改同带插入区间k小值 删除要打标记不能直接删删除的时候注意 删除导致的不平衡不要重建 否则复杂度无法保证因此每个节点

2014-12-29 13:26:06 2593

原创 BZOJ 3143 HNOI2013 游走 期望DP+高斯消元

题目大意:给定一个无向连通图,我们需要给每条边附一个1~m的不重复的权值,使1到n的期望权值和最小首先贪心思想是求出每条边的期望经过次数 然后对期望值最小的边附加m的权值,第二小的边附加m-1的权值,以此类推。令f[i]为第i个点的期望经过次数 那么每条边的期望经过次数就是f[x]/d[x]+f[y]/d[y] 其中d[x]表示x的度数那么显然有:f[1]=1+Σ[1->j]f[j

2014-12-29 09:44:32 2241

原创 BZOJ 2337 HNOI2011 XOR和路径 期望DP+高斯消元

题目大意:给定一个无向连通图,从1出发,每次等概率沿着任意一条出边走到n为止,求路径上的边权的异或和的期望值首先既然是位运算的问题我们的一般处理办法就是拆位,按位处理对于每一位 令f[i]为从i节点出发到n的期望值对于每条出边,如果这条边边权为1,那么f[x]+=f[y]/d[x] 否则f[x]+=(1-f[y])/d[x] 其中d[x]表示x的度数特殊地,f[n]=1由于这个

2014-12-28 23:50:01 3333 5

原创 BZOJ 3823 定情信物 递推

题目大意:定义点为零维元素,线为一维元素,面为二维元素,空间为三维元素,以此类推,求n维立方体中各维元素都有多少令f[i][j]为i维立方体内j维元素的个数考虑n维立方体中的i维元素,将n维立方体拓展至n+1维空间时(觉得抽象的可以想象平面扩展成立方体)原先的i维元素增加了一倍,同时原先的i-1维元素变为了i维元素故有f[i][j]=f[i-1][j]*2+f[i-1][j-1]

2014-12-28 19:35:36 1506 2

原创 BZOJ 3160 万径人踪灭 Manacher算法+快速傅里叶变换

题目大意:给定一个由'a'和'b'构成的字符串,求不连续回文子序列的个数首先回文一定是将字符串倍增 由于求的是不连续回文子序列的个数 因此我们可以求出总回文子序列的个数,然后减掉连续的连续的就是回文子串 用Manacher算法可以O(n)求解不连续的就有些难搞了首先我们令f[i]表示以i为中心的对称字符对个数比如s[]=$#a#b#a 那么s[4]='b' f[4]=2那么

2014-12-27 15:20:25 5912 3

原创 BZOJ 2823 AHOI2012 信号塔 计算几何

题目大意:给定n个点(n逗我?n其实数据是随机生成的 经过验证 随机生成50w的点集 平均在凸包上的点在50~60个左右于是求凸包之后就可以随便乱搞了- - 不会写O(n^3)的最小圆覆盖 写了O(n^4)的照过注意最小圆覆盖时要讨论有两点在圆上和有三点在圆上两种情况--------------------以上是题解-----------以下是粗口---------------

2014-12-26 16:55:30 1649

原创 BZOJ 2165 大楼 倍增Floyd

题目大意:给定一张图,求从1开始到达m的权值至少需要遍历多少条边nf[temp][i][j]表示经过2^temp条边从i走到j的最大权值更新时f[temp[i][j]=max{f[temp-1][i][k]+f[temp-1][k][j]}然后用矩阵g[i][j]记录当前走的权值,初始主对角线为0,其余为-∞从大到小枚举temp,利用f[temp]和g得到矩阵h如果h中1到

2014-12-26 09:10:01 2307

原创 BZOJ 3527 ZJOI2014 力 快速傅里叶变换

题目大意:给定n个点,第i个点和第j个点之间的库仑力为(qi*qj)/(i-j)^2,定义左侧为正方向,求每个点受的合力与电荷量的比值题解详见 http://eolv.farbox.com/post/shui-yu-zheng-feng/2014-12-07 我懒得打了- -#include #include #include #include #include #define

2014-12-25 16:43:08 1816

原创 BZOJ 2194 快速傅立叶之二 快速傅里叶变换

题目大意:给定两个长度为n的序列a和b,求c[k]=Σa[i]*b[i-k]这东西不是卷积的形式,因此我们将b数组反转,之后就是卷积的形式了然后就愉♂悦地上FFT吧#include #include #include #include #include #define M 263000#define PI 3.14159265358979323846264338327950

2014-12-25 15:10:30 2268

原创 BZOJ 2179 FFT快速傅立叶 快速傅里叶变换

题目大意:给定两个高精度整数,求两个数的乘积FFT大法好系统的complex比手写慢了2.5倍 简直吓死人- -#include #include #include #include #include #define M 131080#define PI 3.1415926535897932384626433832795028841971using namespace s

2014-12-25 13:35:13 1845

原创 模板:<bits/_Complex.h>

作死去学了FFT。。。系统自带的complex真是慢。。。比手写的慢了整整0.8s。。。于是果断手写了一发Complex的模板。。。。原型:templateclass Complex;使用方法:using namespace PoPoQQQ_Complex; Complex x;cin>>x; x+=Complex(1,0); x-=Complex(0,1); x*=C

2014-12-25 12:17:51 1902

原创 BZOJ 3813 奇数国 线段树+数论

题目大意:给定一个序列,每个数都由60个最小的素数的乘积构成,求某段的乘积的欧拉函数值对19961993取模后的值,支持单点修改19961993是个质数 出题人还是满贴心的利用线段树维护乘积取模后的值以及哪些素数出现过 后者用bitset维护得到的值根据bitset里出现过的素数来计算欧拉函数值时间复杂度O(nlog10W+60n)#include #include #in

2014-12-24 14:06:27 2587

原创 BZOJ 3309 DZY Loves Math 莫比乌斯反演

题目大意:枚举d=gcd(i,j),得到现在我们只需要知道Σ[d|T]f(d)μ(T/d)的前缀和就行了 设这个函数为g(x)观察这个函数 由于含平方因子数的μ值都为零,因此我们只考虑μ(T/d)!=0的数令T=p1^a1*p2^a2*...*pk^ak,d=p1^b1*p2^b2*...*pk^bk那么0如果存在ai≠aj(i≠j),那么我们可以将所有的a

2014-12-24 12:36:43 4252 1

原创 模板:<bits/_Stack.h>

今天抓起Stack的模板各种改了一发。。。经过各种无限CE之后终于把这BT的模板搞出来了。。。又学了一堆关于模板的知识- - 主要就是结构体里面的static变量要在外面声明之后才可以使用- - 否则报错- -原型:templateclass Stack;使用方法:using namespace PoPoQQQ_Stack;int main(){ Stack s;

2014-12-23 20:10:57 1416 1

原创 BZOJ 3489 A simple rmq problem 可持久化树套树

题目大意:给定一个序列,多次询问某一区间中出现且仅出现一次的最大的数令第i个数左侧第一个与这个数相同的数为last[i] 右侧第一个与这个相同的数为next[i]那么一个数a[i]在区间内出现一次当且仅当last[i]r&&l于是我们将元素按照last[i]排序并构建可持久化线段树 令pos为满足last[i]每次查询我要查询的是第pos个版本的线段树内所有next[i]>r的数中

2014-12-23 16:23:58 3990 4

原创 BZOJ 3210 花神的浇花集会 计算几何- -?

题目大意:给定平面上的n个点,求一个点到这n个点的切比雪夫距离之和最小与3170不同的是这次选择的点无需是n个点中的一个首先将每个点(x,y)变为(x+y,x-y) 这样新点之间的曼哈顿距离的一半就是原点之间的切比雪夫距离由于曼哈顿距离中横纵坐标不互相干扰,因此我们可以将横纵坐标分开处理每一维要选一个坐标 到其他所有坐标的绝对值之和相等 很容易想到中位数但是直接选择中位数得到的

2014-12-23 12:55:46 2178 1

原创 BZOJ 3170 Tjoi 2013 松鼠聚会 计算几何

题目大意:给定平面上的n个点,求这n个点中的一个点到这n个点的切比雪夫距离之和最小切比雪夫距离,即各坐标差绝对值的最大值首先我们如果想把曼哈顿距离转化成切比雪夫距离 那么就要把点(x,y)变成(x+y,x-y) 这样新点之间的切比雪夫距离就是原点之间的曼哈顿距离同理,我们可以把切比雪夫距离转化成曼哈顿距离 即把点(x,y)变成((x+y)/2,(x-y)/2)然后将横纵坐标排序 维

2014-12-23 11:10:56 2456

原创 BZOJ 2656 ZJOI2012 数列(sequence) 高精度+记忆化搜索

题目大意:给定一个数列的通项公式,求数列的某一项高精度+记忆化搜索没说的 其实不用记忆化搜索的但是既然写完了就写完了吧顺便学习了一下友元函数之类的东西- -#include #include #include #include #include using namespace std;class Big_Int{private: int num[110],cnt;pu

2014-12-23 10:14:30 1487

原创 BZOJ 3809 Gty的二逼妹子序列 莫队算法+分块

题目大意:给定一个序列,多次询问[l,r]区间内[a,b]范围内的数有多少内存28MB,树套树可以歇菜了首先普通的莫队+树状数组应该都能想到 这样做每次增加/删除一个点是O(logn)的 查询也是O(logn) 时间复杂度O(m√nlogn) 过(bu)不(hao)去(ka)考虑将树状数组 改成分块 这样虽然查询变成了O(√n) 但是修改变成了O(1)的这样就把时间复杂度降到了O(

2014-12-22 20:20:34 2687

原创 BZOJ 2693 jzptab 莫比乌斯反演

题目大意:同2154 多组数据后面那坨东西 由于积性函数的约数和仍是积性函数 因此只需要线性筛一下就行i%prime[j]==0那部分由于多出来的因数都不是无平方因子数因此μ值都为0 增加的只有原先的D/i#include #include #include #include #define M 10001000#define MOD 100000009using

2014-12-22 13:15:30 4180

原创 BZOJ 2154 Crash的数字表格 莫比乌斯反演

题目大意:求Σ[1题解见 http://www.cnblogs.com/jianglangcaijin/archive/2013/11/27/3446169.html我到底写错什么了这么慢。。。。#include #include #include #include #define M 10001000#define MOD 20101009using namespace

2014-12-22 11:25:44 2767

原创 BZOJ 3529 SDOI2014 数表 莫比乌斯反演+树状数组

题目大意:令F(i)为i的约数和,多次询问对于1n,m首先如果不考虑a的限制 令g(i)为1那么显然有利用线性筛处理出F(i) 那么答案显然是治好了我多年的公式恐惧症。。。现在我们只需要求出的前缀和 这个问题就能在O(√n)的时间内出解枚举每一个i 枚举i的倍数 暴力即可求出这个函数 然后处理前缀和即可 复杂度是O(nlogn)的那么现在有了a的

2014-12-22 09:28:07 2755 2

原创 BZOJ 2440 中山市选2011 完全平方数 二分答案+容斥原理+莫比乌斯反演

题目大意:求第k个无平方因子数是多少(无视原题干,1也是完全平方数那岂不是一个数也送不出去了?无平方因子数(square-free number),即质因数分解之后所有质因数的次数都为1的数首先二分答案 问题转化为求x以内有多少个无平方因子数根据容斥原理可知 对于√x以内的所有质数 x以内的无平方因子数=无需是任何质数的倍数的数的数量(即x)-是至少一个质数平方倍数的数的数量+是至少两

2014-12-22 09:17:01 2522 2

原创 BZOJ 1433 ZJOI2009 假期的宿舍 最大流

题目大意:给定一些人,有些人是在校学生,有些去学校探访,在校学生有些回家,一个人只能睡认识的人的床,求能不能睡下二分图的模型,左侧是所有需要睡觉的人,右侧是所有能用的床铺,二分图最大匹配即可嫌建图麻烦可以考虑最大流一个点拆成两个如果这个人需要睡床,从原点出发向这个人的第一个点连边如果这个人是在校学生,从这个人的第二个点向汇点连边如果i==j或者i和j认识,从i的第一个点出发

2014-12-18 19:33:31 1360

原创 BZOJ 2326 HNOI2011 数学作业 矩阵乘法

题目大意:求1234567891011121314...n mod m 的值设F(n)=1234567891011121314...n 那么显然有F(n)=F(n-1)*(floor(lgn)+1)+n于是我们可以矩乘将数字按照floor(lgn)+1分类构造状态矩阵F(n) n+1 1 初值为0 1 11~9的转移矩阵为10 0 01 1 00 1 1

2014-12-18 19:00:18 1372

原创 BZOJ 2321 BeiJing2011集训 星器

题目大意:给定一个矩阵,定义一个操作:选择两个同一行或同一列不相邻的点,将这两个点上各一个星向中间移动一位,产生魔力为两点间距离-1,求始态到终态的产生魔力定义一个星的势能为这个点到原点的欧几里得距离的平方即一个在(i,j)位置上的星的势能为i*i+j*j假如一次操作之前两个星的位置为(i,j)和(i,k),其中j+2那么操作之前两个星的势能和为i*i+j*j+i*i+k*k

2014-12-18 17:55:28 1472

原创 BZOJ 3531 SDOI2014 旅行 树链剖分

题目大意:给定一棵树,每个点有一个权值和一个颜色,多次改变一些点的权值和颜色,多次求一条路径上与起点和终点颜色相同的点的权值和以及权值最大值每种颜色开一个线段树 动态开节点 每个点只建一条链 这样空间复杂度是O(nlogn)的然后就正常树链剖分就行了#include #include #include #include #include #define M 100100us

2014-12-18 11:30:22 1596

原创 BZOJ 1297 SCOI2009 迷路 矩阵乘法

题目大意:给定一个邻接矩阵,求1~n的边权恰好为T的路径条数考虑当所有边权都是1的时候 那么显然邻接矩阵自乘T次之后a[1][n]就是答案因为当边权为1的时候a[i][j]可以表示从第i个点转移到第j个点的方案数 显然这个符合矩乘的定义现在边权最大为9 那么将一个点拆成9个 第i个点拆成的第j+1个点向第j个点连一条边权为1的边那么i->j有一条边权为k的边等价于i向j拆成的第k个

2014-12-16 20:03:40 2248

原创 BZOJ 3329 Xorequ 数位DP+矩阵乘法

题目大意:给定n,求[1,n]以内以及[1,2^n]以内有多少x满足x^3x=2xx^3x=2x等价于x^2x = 3x而3x=x+2x 且2x=x故x满足条件当且仅当x&(x故x的二进制拆分中任意两个1不相邻令f[i]为i位数中最高位为0的满足条件的数的数量g[i]为i位数中最高位为1的满足条件的数的数量则显然有f[i+1]=f[i]+g[i]g[i+1]

2014-12-16 19:23:14 1500

原创 BZOJ 2882 工艺 后缀自动机

题目大意:最小表示法模板题不会最小表示法,拿后缀自动机水了一发~~一开始还写挂了MLE…… 权当练习一下SAM的熟练度了0.0#include #include #include #include #include #define M 300300using namespace std;int n,a[M];namespace Suffix_Automaton{ st

2014-12-16 11:32:31 2551

原创 BZOJ 2820 YY的GCD 莫比乌斯反演

题目大意:求有多少个数对(x,y),使得x具体去见ACdream的博客 里面讲的还是很详细的 地址 http://blog.csdn.net/acdreamers/article/details/8542292其实求的时候只需要枚举每个素数暴力就行了由于有1/1+1/2+1/3+...+1/n=O(logn)这个结论 因此每个质数枚举时是均摊O(logn)的而质数恰好有O(n/lo

2014-12-16 11:26:55 2410

原创 BZOJ 2301 HAOI2011 Problem b 容斥原理+莫比乌斯反演

题目大意:多次询问有多少个数对(x,y)满足a首先利用容斥原理将询问分解 问题转化为求有多少个数对(x,y)满足x这里就可以利用到莫比乌斯反演:我们令F(d)为GCD(x,y)=d且xf(d)为d|GCD(x,y)且x那么显然有F(d)=(n/d)*(m/d)但是直接套用公式还是O(n^2)级别的考虑到(n/d)*(m/d)最多只会有2√n个商 因此我们可以枚举

2014-12-16 11:25:06 2697

原创 BZOJ 2957 楼房重建 分块

题目大意:给定n座楼,初始高度为0,每次可以改变某栋楼的高度,求每次改变高度之后从原点可以看到几栋楼记录每栋楼楼顶与原点连线的斜率 那么一栋楼可见当且仅当前面所有楼的斜率都小于这栋楼将n栋楼分为√(0.5*n*logn)块 每一块内维护一个单调上升子序列(注意不是LCS) 比如说4 1 2 3 5 那么维护的序列就是4 5修改的时候块内暴力重建 然后查询顺着块撸一遍 每次记录当前的最大

2014-12-16 10:54:34 2422 6

空空如也

空空如也

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

TA关注的人

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