自定义博客皮肤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)
  • 收藏
  • 关注

原创 FFT 高精度乘法

#include#include#include#include#include#include#include#includeusing namespace std;#define MAXN 150005char s[MAXN];struct C{ double a,b; C(double _=0,double __=0) : a(_) , b(__) { } f

2016-06-23 14:05:40 748

原创 【BZOJ4052】【Cerc2013】Magical GCD 单调栈

题目大意:给出一个正整数序列,求一个连续子序列,使得这个连续子序列的GCD与长度的乘积最大化,并输出最大值。首先不难想出N*N的做法(假装GCD是常数):穷举右端点再枚举左端点,然后我们发现如果固定右端点,那么左端点从右往左扫的时候,GCD单调不增,因此可以用单调栈来维护,对于每一个GCD,只记录一个最远的左端点,又因为单调栈中的元素每次改变至少要减少一半,所以元素最多不超过log2(10^1

2016-06-04 09:10:04 1436 1

原创 【BZOJ4057】【Cerc2012】Kingdoms 状压DP

关注到N注意到一次只能破产一个国家,不能同时破多个。#include#include#include#include#include#include#include#includeusing namespace std;int N,T,A[35][35];bool ok[(1<<21)+100];void Init(){ scanf("%d",&N); for(

2016-06-03 21:53:52 562 1

原创 【Poj2601】Simple calculations 二分

反正就是A1和An+1有线性关系(一次函数关系),二分和不二分都可以做。。。这道题我当时在考场上死命推数学公式未遂浪费了巨多时间QAQ以后要注意#include#include#include#include#include#include#include#includeusing namespace std;double a0,an_1,c[3005],d[3005],

2016-06-03 21:24:50 346

原创 【Poj1818】ATP 二分+贪心

蛮有意思的一道题。。。题目大意:2^n次方个人打淘汰赛,每个人有一个确定的名次(没有重复),如果两个人的名词在k之内那么谁都可以赢,否则一定是名次靠前的那个人赢,问经过n轮淘汰赛,最终获胜的那个人的最低名次是多少。二分最低名次,倒着模拟整个过程,每一轮比赛每个人将自己能打败的最强对手打败,检查最后是否能复原即可。#include#include#include#include#

2016-06-03 21:20:02 543

原创 【Poj3420】Quad Tiling 状压DP 矩阵快速幂

北京的夜晚是如此的无聊QAQ。。。把这段时间主教练找的模拟赛的题都回忆一下(虽然我做的都只有水题QAQ比如这一道)。。。经典的状压动归,我记得当年还有一道升级版的k=12345更爽。。。主要思路就是把状态压缩状态转移方程搞出来之后矩阵加速懒得写搜索的后果是系数矩阵我手写了整整半个小时QAQ#include#include#include#include#include#i

2016-06-03 21:07:10 324

原创 【Poj2825】Perfect Permutation 构造

ORZ 。。。UOJ群里面的各位大爷。。。当时关注这道题主要是因为准备Pkusc的考试。。。然而只会爆搜心塞了我一个星期QAQ这道题找规律的困难点在于存再多解,并且解的数目非常非常多所以搜起来肉眼基本找不出规律但是如果知道解答验证起来还是非常容易。。。当n=4k+2或4k+3时无解当n=4k时,构造数列:2k+1, [4k ~ 3k+2], [3k ~ 2k+2], [2k ~

2016-06-03 20:55:12 538

原创 【BZOJ1717】产奶的模式 后缀数组

无脑后缀数组大法好QAQ还是在height数组上做文章,等价于找序列中【连续K-1个height值中的最小值】的最大值,滑动窗口维护更新即可。第一次发现pair如此好♂用/************************************************************** Problem: 1717 User: cqyzhb Lang

2016-06-01 20:33:15 353

原创 【BZOJ2251】外星联络 后缀数组

题目大意是找出一个字符串中所有出现次数大于1的字串并且按字典序输出出现次数height数组上乱搞。。。为了防止统计重复,我们统计时可以统计从sa[i]开始的字串,也就是长度Len>=height[i]+1的字串,这样可以保证不重复。/************************************************************** Problem: 2

2016-06-01 19:59:14 308

原创 【BZOJ4104】【Thusc2015】解密运算

这些XJB算法的题竟然是小夏令营题想想就好可怕TAT(你萌不知道什么是XJB算法???)讲道理这道题的标程虽然奇短无比但是想法还是蛮有启发意义的。。。我试着口胡一下原理QAQ先考虑无元素重复的情况:首先会得到N+1个序列的按字典序排列的最后一个值对于每一个序列,为了表达方便,我们扯一个三元组出来

2016-06-01 15:56:28 1271

原创 【POJ3164】Command Network 最小树形图 朱刘算法

板子题不解释。。。所谓最小树形图,直白一点的叫法就是“有向图最小生成树”,就是给定一个起点,在一张带权有向图中找一个边集的子集,使得从起点可以到达所有点(有向图哦),并且边集权值和最小。主要思想就是为每个点找一条最小入边,如果不成环就是答案,如果成环就把环缩成一个点,并把{(【指向属于该环的点】的边)的权值}减去【(该点的最小入边)的权值】(你萌一定没有看懂),重复该过程直到不成环。证

2016-06-01 11:21:02 354

原创 【BZOJ4103】【Thusc2015】异或运算 可持久Trie

现在再来切是不是有点晚QAQ题目大意是给定两个正整数序列。规定矩阵(异或运算),每个询问求某个子矩阵内第k大的值。其中。注意到N和Q比较小,所以就是把序列B建成可持久Trie,然后同时跑A中的若干个数。。。如果想不清楚可以先考虑当N=1,也就是A是一个数的情况,然后再考虑如何合并。/**************************************************

2016-06-01 11:08:08 400

原创 【BZOJ4405】挑战NPC 带花树模板 一般图最大匹配

这段时间被主教练找的各种poj英文题虐的头昏脑涨也没时间来更新博客QAQ好不容易找了时间来学带花树QAQ#include#include#include#include#include#include#include#includeusing namespace std;#define MAXN 2005#define MAXM 200005int N,M,Q,hea

2016-05-31 21:10:48 262

原创 【BZOJ4592】【Shoi2015】脑洞治疗仪 线段树

第一眼看成了一个裸的01弱智线段树,然后发现弱智的是自己。。。主要就是如果好脑洞不够用了就尽量往前面补这一个操作。。。其实还是不难。。。我们在线段树遍历的时候优先往前面补,如果这个区间不够补就分别检查两个子区间,可以证明这样的操作还是log级别的(反正我不会233),然后就是最长连续区间的套路辣/***********************************************

2016-05-24 09:41:28 573

原创 【BZOJ4236】JOIOJI

来自PoPoQQQ大爷的题目以及题解。。。传送门事实证明虽然常数吓人,但是善于利用各种STL还是能带来很大的方便,比如这道题。我们记表示前i个字符中J、O、I分别出现的次数,那么一个从j+1到i的字串满足条件的充要条件是,化简得,所以我们开一个map,int>,记录这两个差值第一次出现的位置,一边扫一边求以该点作为结尾的答案即可。/*************************

2016-05-20 09:10:01 1041

原创 【组合计数问题小总结】

鉴于自己每次见到有关组合计数(求方案数之类)的题都要跪,所以专门开个网页记录总结一下。。。不定期更新【BZOJ1079】记忆化搜索,由于每一种颜色可以涂得次数比较小,所以可以将涂的次数相同的颜色看成一个等价类,记忆化搜索转移即可。

2016-05-18 17:02:01 576

原创 【BZOJ1091】【Scoi2003】切割多边形 计算几何 状压DP

计算几何的题一次就能A我真的是感动上苍QAQ首先由于是凸多边形显然每道边都要切一次,重点是按照什么样的顺序切,注意到一个切了若干刀的图形,如果把切割的顺序换一下,图形不变,并且边很少,不难想到状压DP。一共256个状态,从低到高转移的时候计算这一次要切多长,我写的是直线带参数的那个式子P=A+t*B,感觉这样算线段长方便一些QAQ/***************************

2016-05-17 08:38:54 368

原创 【BZOJ4544】椭圆上的整点 数学

圆上的整点那道题稍稍修改一下就好了。。。不过听说有很神奇的积性函数做法%%%#全程LL慢如狗系列/************************************************************** Problem: 4544 User: RicardoWang Language: C++ Result: Accepted T

2016-05-16 21:43:46 745

原创 【BZOJ4597】【Shoi2016】随机序列 线段树

应该是我有史以来见过的最简单的期望题。。。。。。暂时没有之一手推两下就可以发现长度为n的序列的答案是其中,那么我们拿一个带单点修改区间乘法区间求和的线段树来维护就好了。/************************************************************** Problem: 4597 User: RicardoWang Lang

2016-05-16 21:41:34 644

原创 bestcoder # 83

仿佛也没有什么可以说的。。。6:57匆匆回家打开电脑登上网页发现第一道题已经A了30+了,匆匆看完题然后脑推了一下发现就是数列中的最大值,果断A完发现已经是100+了。。然后秉承着“从易到难”的原则我去开了第二题(FLAG)后来的故事大家都知道了首先没有看见k的限制果断WA加了一维过后发现时间过不去了。。。然而我根本没有想到树状数组优化最小值。。。发现状态在k一定的情况下状

2016-05-15 15:32:39 243

原创 【BZOJ4372】烁烁的游戏 动态树分治

讲道理我第一次看到动态树分治以为和那个动态树LCT有关QAQ然而正确的读法是【动态(树分治)】这就很尴尬了。题目大意就是给定一棵树,每个点初始权值是0,维护两个操作,一是将和某一个点距离不超过d的点的权值都加上v,二是查询某两个点之间的权值。首先用点分治建出新的树结构,利用标记永久化的思想为每个点建立一棵线段树记录距离这个点距离为d的点的权值之和,统计的时候再求一下和即可。唯一

2016-05-12 23:46:14 1252

原创 APIO2015酱油记

有关比赛的感受都水空间里了。。。这里说一说题目。一开比赛还是从T1开始读的题的,读到方案数三个字就开始有点方,怕又是什么莫名其妙的计数题(事实证明真的是这样),匆忙打了个暴力水上去,然后开始想离散后递推的写法,本来如果区间都不相交的情况就拿前缀和非常好处理,但写了一半才意识到相交的情况很麻烦(相当于这一个离散块内部就不均匀了),然后脑壳卡了没有想到这就是一个组合数,只得放弃。然后去做的T3

2016-05-10 13:31:34 374

原创 【BZOJ4534】基础排序算法练习题

#以后看见这种题目名字2B的我直接绕道走#%%%策爷#讲道理这种论文题我都没脸写题解主要工作分为两部分,一部分是在(n^2+m)log(n)内预处理完所有操作,用一个序列代表所有可以被成功排序的序列,另一部分是qnlog(n)处理每个询问#大家快去%%%吧!/************************************************************

2016-05-04 22:10:30 1943

原创 【BZOJ4540】【Hnoi2016】序列 线段树

Claris劲啊!CA劲啊!%%%两位线段树做法传送门在这里和这里逆向题解时间到:首先将询问按照终点排序,并且一边从到遍历,不妨设当前遍历到了点,对于之前的每个点,我们维护两个值和。其中表示从这个点到之间A的最小值,而,表示从我们遍历第一个点到当前这个点的所有时刻下的所有历史版本和。(事实上。)不(很)难发现对于每一个询问,当且仅当时,有。也就是说,如果我们把询问全

2016-05-04 11:35:33 3021

原创 【BZOJ3926】【Zjoi2015】诸神眷顾的幻想乡 后缀自动机

%%%陈老师%%%简单来讲就是Trie上的后缀自动机,因为叶子节点总数不超过20,说以我们从每一个叶子节点出发做DFS,一边走一边把扫到的点甩进后缀自动机,这样后缀自动机里面的点不会超过4000000个,统计出本质不同的即可。个人感觉Trie上写后缀自动机上的写法十分像树上的可持久化线段树的写法(SMG。。。先插入父亲再插入儿子/****************************

2016-05-02 23:10:08 473

原创 【BZOJ3998】【TJOI2015】 弦论 后缀自动机

%%%陈老师%%%神奇的后缀自动机。。。看陈老师的WC讲稿PPT真的是每一页都有无穷无尽的信息量%%%搭配15年某(两位?)神犇的的集训队论文一起食用味道更好哟%%%这种照抄黄学长板子我自己都没怎么搞清楚的东西就不放题解了。。。/************************************************************** Problem:

2016-05-02 18:31:59 389

原创 【BZOJ4576】【BZOJ4580】【Usaco2016 Open】262144 贪心

XJB贪心做法的奇妙威力。。。源程序只用改一下数组大小的双倍经验!人生第一个(暂时的)RK1截图留念。题目大意:给定一个长度为n(n例如给定一个序列: 1,1,1,2   我们可以先将第二个1和第三个1合并替换成2 。序列变成:1,2,2。再将两个二合并,序列变成1,3.由此我们得到最大值3.当然我们也可以将第一个1和第二个1合并,序列变成2,1,2.然而这样我们就不能再合并了

2016-05-02 15:20:32 818

原创 【BZOJ2648】SYJ摆棋子 KD-Tree

KD-Tree这样缩写看起来有一种莫名的喜感23333建树的时候和k远点对那个“最远+欧几里得KD-Tree”距离没什么区别,但是查询的时候“最近+曼哈顿KD-Tree”还是有一些区别首先,KDT上的一个节点代表一个矩形方块,当我们做估价函数的时候,如果被查询点的某一维夹在矩形方块的某一维之间,那么这一维的估价值就是0,而不是到这一维两个边界的距离的较小值。因为我们的估价函数实际上是假设这

2016-05-02 12:25:27 402

原创 【BZOJ2229】最小割【BZOJ4519】不同的最小割

同一个板子懒得写两篇了。。。主要思路就是说n个点的无向图中最多有n-1个不同的最小割,更详细一点说,当我们对跑一次网络流,得到(S,T)两个点集,只需要分别在两个点集内部选点跑最大流即可。也就是说如果我们从S,T中再任意各选一个点跑最大流,这个最大流一定会出现在我们用分治跑的最大流之中。这样,我们求一个图中任意两个点的最小割的时间复杂度就从n^2次最大流变成了n次最大流。还有一个坑

2016-05-02 10:54:34 559

原创 【BZOJ4582】【Usaco2016 open】Diamond Collector 贪心

我必须承认做这题的主要目的是练习英文。。。题目大意:给出n个大小不同的钻石和两个盒子,每个钻石可以放进某个盒子或者不放,但不能同时放入两个盒子,并且满足每个盒子中最大钻石和最小钻石的尺寸值不超过K,求两个盒子加起来最多一共可以放入多少颗钻石。比较裸的排序后贪心,先由小到大排序,O(n)预处理出从i开始放最多可以放几颗到一个盒子,再找两个不相交的最大区间求和即可。

2016-05-01 23:01:27 1554

原创 【BZOJ】4552 排序

讲道理省选场上出现这种bc#76 原题的行为真的不厚道。。。。一是因为规模这么大一比赛很少有人不知道,二是人家题解就摆在网上的。。。丫样例都不改难不成把多组数据改成一组数据也叫改编?(23333主要思路就是二分猜答案之后,将原序列改成01序列(小于等于mid的变成0,否则变成1)用线段树维护排序操作。题解传送门/***********************************

2016-05-01 22:34:32 1419

原创 【BZOJ4574】【Zjoi2016】线段树 dp

辣鸡卡常题。。。30s的题bzoj上30124ms跑出来。。。好嘛我承认我只是把某位神犇的博客的代码抄了一遍,这里是传送门下面是就着AC代码逆向yy题解的时间首先题目要求是每个位置的期望乘以的值,那么其实就是让我们求出在所有个操作序列下,第i个位置的种可能值的和再取模。我们注意到当操作完之后,第i个位置的值一定是最开始给定的n个数值之一,那么我们可以原序列排序并且离散成1~n(不用并且

2016-05-01 13:36:29 3671

原创 bestcoder#82回顾

最终rank仿佛是4(in div2)???然而unranked所以并没有卵用T1水。。。给定一个整数,看n=x^2-y^2是否有整数解。。。不难发现只要是大于等于3的奇数或者大于等于8的4的倍数都可以T2水。。。满足条件的数不到十万个,搜索出来lowerbound即可,但是最大的一个要暴longlong所以要特判输出一个20位的字符串(4*10)(7*10)T3开始不水。。。要写一个

2016-04-30 22:22:17 446

原创 【BZOJ4519】【Sdoi2016】游戏 线段树

第一次接触到这么神奇的线段树。首先树的形态不改变所以数链剖分+线段树建树。对于线段树上的每一个点,我们保证其最多保存一条直线,如果存在第二条直线,那么两条直线“占据空间”较小的一个一定可以下传到它的某个儿子,而这个节点只存占据空间较大的一个即可。查询的时候要用到永久化(好像是叫这个奇怪的名字)思想,一边向下查一边比较存放在当前节点的直线能否更新最小值。 /*************

2016-04-28 21:48:57 605

原创 【BZOJ4520】【Cqoi2016】K远点对 K-DTree

所以说CQ冷门模板默写大会真的不是吹的科科,话说一天到晚给BZOJ贡献双倍经验真的大丈夫吗K-D Tree裸题,主要结构其实是一棵二叉搜索树,交替以横坐标和纵坐标作为第一关键字,把中位数当成根递归构建树,这样每一个节点代表原图的一个矩形区间,当且仅当这个矩形的四个顶点离查询点的距离的最大值大于小根堆的堆顶时才继续向下搜索。其实第一反应丫就是强剪枝对不对!#include#include

2016-04-28 10:00:14 341

原创 【BZOJ4513】【Sdoi2016】储能表

听说标解是个神数位DP什么的。。。讲道理我是辣鸡我不会。所以说异或运算真的是个神奇的东西,打一张表出来仿佛各处都藏着奇葩的规律,因为有k的限制,所以我们的目的是将整个序列化成若干个等差序列的和,并且每个等差序列从k处断开(因为负数不计入计算),不难发现存在很多个长边为(2^i),短边小于等于长边的矩形,其中每一条长边都是一个打散的等差数列,我们每次从子矩形中拿出最大的一个,计算一个再乘以一共有

2016-04-27 21:18:58 1187

原创 【BZOJ4500】矩阵 DFS

一开始的想法是转化成一个n+m个未知数k个方程的方程组然后甩高斯消元法,但写完发现一是要TLE(经优化可以解决该问题),二是方程是否存在一组整数解不好判断(因为不知道线性无关的方程数量和未知数数量的大小关系0),交上去花样WA后来发现是自己想多了,方程的想法没问题,但注意到一个方程只有两个未知数,因此我们将每个未知数当成一个点,一个方程当成一条边,边的权值就是这个方程的值,每扫到一个没有被标记

2016-04-27 19:10:35 424

原创 【BZOJ4516】【Sdoi2016】生成魔咒 后缀数组 线段树

ZJOI2015陈老师幻想乡的简化(阉割)版,所以可以不用Trie上后缀自动机那么高大上的东西。。。首先不难想象出O(n^4)以及O(n^2)的做法,一种是每穷举一个字串再暴力检查是否已经出现,一种是在第一种的基础上Hash优化。这两种都没有什么卵用我们就不提了。首先我们将数字串反向读入,那么每一个加入的前缀对应反串的一个后缀,我们每加入一个字母,相当于有 该字母开始的后缀和目前已经加

2016-04-26 19:59:16 450

原创 【BZOJ4517】【Sdoi2016】排列计数 线性逆元 错位排列

首先真诚地感谢BZ某大神为我们解锁正确的备考姿势。一语惊醒梦中人。回到题目。。。不难看出一答案ans=D[n-m]*C(m,n);,其中D是错位排序数,也就是n个数全排列中,满足ai!=i的排列的个数,具体证明涉及到容斥原理。存在递推公式。为了计算C,我们可以将n! mod p以及 (n!) ^ -1 mod p 全部预处理出来,两个操作均存在线性递推。然后答案就可以在O(1)内求解了

2016-04-25 23:55:02 383

原创 【BZOJ3143】【Hnoi2013】 游走 期望DP 高斯消元

卧槽这题BZOJ上的数据用了dcmp就会WA不讲道理。。。裸的才能A。。。除了第一个点以外,每个点到达的期望次数是与它相连的点的期望次数除以度数之和,一条边的期望次数是他非n端点(因为到n就不再走出来了)的期望次数除以度数之和,排序后赋值即可。#include#include#include#include#include#include#include#i

2016-04-25 17:58:01 450

空空如也

空空如也

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

TA关注的人

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