自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(89)
  • 收藏
  • 关注

原创 bzoj3771 Triple(生成函数+容斥+FFT)

Description我们讲一个悲伤的故事。从前有一个贫穷的樵夫在河边砍柴。这时候河里出现了一个水神,夺过了他的斧头,说:“这把斧头,是不是你的?”樵夫一看:“是啊是啊!”水神把斧头扔在一边,又拿起一个东西问:“这把斧头,是不是你的?”樵夫看不清楚,但又怕真的是自己的斧头,只好又答:“是啊是啊!”水神又把手上的东西扔在一边,拿起第三个东西问:“这把斧头,是不是你的?”樵夫还是看...

2018-02-28 21:29:54 620

原创 bzoj2194 快速傅立叶之二

Description请计算C[k]=sigma(a[i]*b[i-k]) 其中 k < = i < n ,并且有 n < = 10 ^ 5。 a,b中的元素均为小于等于100的非负整数。 Input第一行一个整数N,接下来N行,第i+2..i+N-1行,每行两个数,依次表示a[i],b[i] (0 < = i < N)。Output输出N行,每行一个整数,第i行输出...

2018-02-28 18:55:31 217

原创 真·奥义·随意的hu测(18.2.28)

今天的hu测真心随意,也没有好好写代码T1,T3真心难 大家就当看着玩吧T1 题解: 对于一个良好数列,我们考虑按数值从小到大加入数列中的元素若当前加入的元素中最大值为x,若数列中一个区间内的数大于x,则那些位置出现空缺,且空缺两端都是x,我们称这类区域为待补区域对于一个良好数列,在上述加入元素过程中出现过的任一数列,我们称之为准良好数列由准良好数列从...

2018-02-28 17:23:29 226

原创 真·奥义·随意的hu测 T2.线段(拓扑)

题外话: 这道题其实已经想到正解了,但是在维护答案的细节上出了问题 看来还是考虑的不全面,不能从特殊情况推出一般的规律 还是不能偷懒,一定要用多样化的数据测试自己算法 也算是一个教训吧,dada们比你高明到不知哪里去了,力求完美吧分析: 直觉是一个图论xxx与yyy相交:a[x]<b[y]a[x]<b[y]a[x]a[y]>b[x]a[y]>...

2018-02-28 16:18:07 212

原创 bzoj4568 [Scoi2016]幸运数字(LCA+线性基)

题目链接分析: 学长说这叫:树上线性基有多重做法 (1)树链剖分+线性基合并(2)LCA+倍增+线性基合并(3)点分治+线性基合并后两个是lognlognlogn级的,第一种是log2nlog2nlog^2n级的就代码复杂度来说,当然是选择第二种方法啦每个结点维护向上跳2i2i2^i步经过的数字的线性基 线性基的合并直接暴力即可 最后的统计答案就是普通的线性基求异或和最...

2018-02-27 20:18:54 265

原创 bzoj2728 [HNOI2012]与非(并查集+数位dp)

题目链接分析: 看一下括号里的算法,就感到深深的绝望。。。首先我们要找到NAND的一些性质:!a=a NAND a a&b=!(a NAND b)有了&和!,其余的位运算就都可以表示了 也就是说:NAND可以代替所有的位运算那么这样就能表示所有的数了吗?不然NAND还有一个重要的性质: 如果a[1]~a[n]所有数的第i位和第j位相同,...

2018-02-27 17:29:12 252

原创 bzoj2844 albus就是要第一个出场(线性基【询问排名)

题目链接分析: 这道题是hdu3949的逆运算(可能题面有点难懂)既然我们能够知道排名是第k的数是多少 就可以直接二分,变成判定性问题当然,这道题还有其他解法:因为是子集异或和,可以考虑用线性基解决 把每一个数看成是一个向量,求出线性基 线性基是一个极小集:能够张成原空间的最小线性不相关向量集 那么任何一个异或和都可以用线性基得到但是题目中会计算重复的数值,而线性基是...

2018-02-27 15:02:39 392

原创 bzoj3105 [cqoi2013]新Nim游戏

题目链接分析: 普通的Nim游戏,最后的Nim和(异或和)如果等于0,那么先手必败 但是在这个新游戏中,我们可以暗箱操作一下: 显然,我们希望在第一步完成后, 剩下的石子集的任何一个子集的Nim和都不是0那么题目就变成了: 选出一个最大子集,使得子集中的元素异或起来不为0 (其实这种说法不是很严谨,应该是任意一个子集的Nim和都不为0)显然,每种数量的石子堆一定只能保留一个...

2018-02-27 09:21:00 242

原创 hdu3949 XOR(线性基【第k大)

题目链接分析: 求第k大:把k二进制拆分,如果k的第i位上是1,ans^=b[i]这是什么道理呢? 异或消元最后得到的是一组基 给出n个数能够异或出来的值,都是这些基线性组合形成的数方便起见,我们把矩阵消成对角线型(比较好理解) 这样1只会出现在对角线上 cntcntcnt:对角线上有多少个1 显然我们能得到1<<cnt1<<cnt1cnt=ncnt...

2018-02-27 08:40:50 2613

原创 bzoj2115 [Wc2011] Xor(图论+线性基)

题目链接分析: 首先有一个小技巧,是本题的关键: 任意一条111到nnn的路径的异或和,都可以由任意一条111到nnn路径的异或和与图中的一些环的异或和来组合得到这个怎么理解呢 ? 我们可以找到一条主干线 而路上有环都可以归结成一下情况: 权值就是一条单路径(1->n)+所有环 一遍dfs把ta们求出来就可以了 复杂度O(n+m) 求出线性基,里面存...

2018-02-27 07:16:41 241

原创 正月十一hu测 T1.divide(线性基)

【问题描述】 给出n个不超过m的非负整数,将数划分成两个集合,记为1号集合和2号集合。x1为1号集合中所有数的异或和,x2为2号集合中所有数的异或和。 在最大化x1+x2的前提下,最小化x1。 【输入格式】 第一行n 第二行n个非负整数 【输出格式】 一行两个数,第一个数是x1,第二个数是x2 【样例输入】 7 1 1 2 2 2 3 3 【样例输出】 ...

2018-02-26 20:03:35 358

原创 bzoj2460 [BeiJing2011]元素(贪心+线性基)

题目链接分析: 看到有异或和,就可以往线性基上考虑 然而写出线性基之后,在统计答案上卡了如果直接按照线性基:for (int i=30;i>=0;i--) if (b[i]) ans+=v[b[i]];这样统计出的答案保证了编号的异或值最大,与题设不符,非常不符原来这道题的核心是贪心啊 我们按照v排序 从大到小插入元素维护线性基 因为...

2018-02-26 18:36:15 218

原创 线性基(不得不填坑orz)

参见原文aiaia_i表示一个标量,而aiai\mathbf{a}_i表示一个向量概述基(basis)是线性代数中的一个概念,ta是描述刻画向量空间的基本工具 而在现行的 OI 题目中,通常在利用基在异或空间中的一些特殊性质来解决题目,而这一类题目所涉及的知识点被称作「线性基」预备知识下面是一些线性代数的基本知识,以便更好的理解基的概念向量空间(vector ...

2018-02-26 16:44:39 704

原创 正月十一hu测 T2.阴影(计算几何【线面交点)

分析: 30%还是比较好搞的,用相似三角形把点投影到xoy平面上,二维凸包即可因为不会坐标系旋转,所以剩下的70%我用了一个三维凸包 先把点投射到地面上 用投影点和光源做一个三维凸包 S=3∗VhS=3∗VhS={3*V \over h} (h就是点光源到地面的距离)这里xue微说一下,三维投影时需要用到的:直线和平面的交点首先我们需要把面的方向确定 (根据右手定则...

2018-02-26 14:20:31 268

原创 hdu4573 Throw the Stones(动态三维凸包)

题目链接分析: 显然我们需要求出凸包 朴素的求法会在一开始读入所有点,并预处理使得前四个点不共面 然而这道题由于有输入顺序,我们只能在读入的时候暗箱操作 边读入边维护凸包 (dalao说这就是动态凸包)每加入一个石子 若在凸包里,体积增量为 0, 若在外面我们可以发现,算法维护凸包删面的过程中,这个面和这个点构成的四面体就是体积增量的一部分, 所以我们只需要在删每个面的过程...

2018-02-25 21:02:35 414

原创 初十hu测 T3.deep(点分治)

分析:部分分写一个链剖线段树中维护信息: sumsumsum:区间和(“(”赋值为1,“)”赋值为-1) lmxlmxlmx:从左端开始的区间最大值 rmxrmxrmx:从右端开始的区间最大值 lmnlmnlmn:从左端开始的区间最小值 rmnrmnrmn:从右端开始的区间最小值 LLL:未匹配的左括号 RRR:未匹配的右括号简单看一下核心代码:...

2018-02-25 19:26:55 165

原创 初十hu测 T2.long(hash)

分析: 考场上只写了O(n2)O(n2)O(n^2)的算法 勉强加了一点小优化(区间长度从当前局部最优解开始枚举)首先我们肯定是要把点按横坐标排序 枚举区间中出现的颜色种类(状态压缩) 没有出现的颜色不能再区间内,这些点把区间可以出现的位置划分成了若干小段,每段内部只有我们枚举的颜色之后题解是这样描述的: 不是很明白怎么赋hash值#include<cstd...

2018-02-25 15:52:12 270

原创 初十hu测 T1.max(最大子矩阵启发)

分析: 先看一下正解: 然而我用了另一种方法: 枚举上下两行(确定了子矩阵的上下范围) 之后处理出每一列两个数的min值 以下讨论都基于这个min值(实际上就是把同一列上的两个数绑定了)因为我们只关心是否存在,不关心子矩阵到底长什么样 (存在即合理) 因此对于一个min值X,只要存在比ta大元素,X就可以作为子矩阵的价值 我们只要找到这些min值之中的第二大即可...

2018-02-25 14:17:57 198

原创 hdu3007 Buried memory(最小圆覆盖)

题目链接分析: 经典算法之最小圆覆盖tip就是练练手,感觉增量法挺神奇#include<bits/stdc++.h>#define LD long doubleusing namespace std;const double eps=1e-8;const double Pi=acos(-1.0);struct node{ double x,y;...

2018-02-24 20:01:20 327

原创 bzoj1337 最小圆覆盖

Description给出平面上N个点,N<=10^5.请求出一个半径最小的圆覆盖住所有的点 Input第一行给出数字N,现在N行,每行两个实数x,y表示其坐标.Output输出最小半径,输出保留三位小数. Sample Input4 1 0 0 1 0 -1 -1 0 Sample Output1.000 分析: 经典算法之最小圆覆盖#include<...

2018-02-24 19:04:03 240

原创 最小圆覆盖(经典算法【三点定圆)

刚刚学了一些基础的三维计算几何 接触到了增量法——一种看似暴力,实际睿智的算法 下面就是增量法在另一类问题上的展现算法原文问题描述 给定n个点,用一个最小的圆把这些点全部覆盖,求这个圆的圆心半径算法① 将所有点随机排布(这样可以保证算法的复杂度)② 初始随意找到两点,设为P1,P2P1,P2P_1,P_2,以P1P2P1P2P_1P_2为直径得到初始圆,设.........

2018-02-24 17:39:29 33579 16

原创 hdu4266 The Worm in the Apple(三维凸包)

题目链接分析: 求出凸包后,取询问点到各面的最短距离即可#include<bits/stdc++.h>using namespace std;const double eps=1e-8;const int N=1005;struct node{ double x,y,z; node (double xx=0,double yy=0,double ...

2018-02-24 15:01:40 232

原创 hdu4273 Rescue(三维凸包)

题目连接分析: 三维凸包重心到表面的最短距离求出凸包重心后,O(n)求出重心到凸包各面的距离,取最小值即可一开始不大理解:向凸包上一面做垂线,垂足可能不在这个面上,怎么破? 实际上,如果出现这样的状况,那么这个面上的垂线一定不是最优解 #include<bits/stdc++.h>using namespace std;const int N=110;c...

2018-02-24 11:18:01 212

原创 UVALive4589 Asteroids(三维凸包【凸包重心)

题目连接题意:求两凸包重心的最短距离分析: 三维凸包模板很显然,最优放置方法就是贴住两个行星的某两个面,而最近距离为各自重心到这两个面的距离 换句话说,我们可以独立求出两颗星球的“重心到各面的最短距离”,再相加即可如何求重心呢? 因为行星是均匀的,可以先随便找一个点,连接该点和各个面,得到若干三棱锥 把每个三棱锥等价成一个质点,再求这些质点的重心 质点的重心是质点坐标按质...

2018-02-24 09:56:57 261

原创 hdu3662 3D Convex Hull(三维凸包【三维计算几何基本操作)

题目连接分析: 三维凸包模板瞧好了基本操作 三维和二维简直不是一个级别的。。。orz#include<bits/stdc++.h>using namespace std;const double eps=1e-8;const int N=503;struct node{ double x,y,z; node (double xx=0,do...

2018-02-23 21:16:48 1854 2

原创 打瞌睡hu测(2.23)

T1T2分析: 考场上我想了一个奇技淫巧,竟然过了40% 考虑一棵树,以每个点为根记录距离ta最远的叶节点的距离(dis) 找到这棵树中dis值最大的结点,暂且称这个结点为此树的重心根据贪心的想法,我们直接把重心设置为黑色 但是重心有可能存在某一子结点XXX,使得dis[X]+w(重心,X)>mdis[X]+w(重心,X)>mdis[X]+w(重心,X)>m...

2018-02-23 17:39:20 195

原创 打瞌睡hu测 T1.Tour(floyed+乱搞|网络流)

分析: 一开始想到了网络流 但是建不出图来,问题就在于:每个点每个边都可以经过多次,我们如果简单的把流量设为INF,按照最小割的想法无法得到最优解然而看了一下段某的代码,真的用网络流实现了: 建图: 之后直接用最小费用最大流解决即可感觉不是很科学啊。。。 一开始怎么也想不明白,这样的图怎么能跑出正确答案呢? 方便起见,我就举了一个简单的例子:example:2...

2018-02-23 16:21:02 167

原创 三维凸包

和二维凸包类似,给定一堆三维空间中的点,包含ta们的最小凸多面体称为这些点的凸包三维凸包的求法很多:暴力法枚举三个点组成的有向三角形(实际上是一个半平面),判断是否所有点都在这个三角形的同侧 复杂度:O(n4)O(n4)O(n^4)卷包裹法该算法的思想是先找到一条肯定在凸包上的边PiPjPiPjP_iP_j, 想象一张纸紧贴这条边,向左旋转,直到碰到一个点PkPkP...

2018-02-22 21:25:21 8738 4

原创 元月初七hu测 T3.秩序(dp)

Description秩序带来美感,秩序带来高效。 在高度发达的三体世界,秩序的意义非常明显。 为了追求秩序,一些事物会被规范化,同时失去了它原有的性质,变得不 那么自然。 为了便于管理,三体世界的奶牛们工作完后都需要排队去食堂打饭。 一共有 m种食物,每头奶牛固定只吃一种食物。现在,n头奶牛排好队来 食堂就餐,食堂工作人员每次可以放进来队伍前端任意数量的奶牛,然后给它们做...

2018-02-22 20:10:37 223

原创 元月初七hu测 T1.折线统计(dp+树状数组)

Description二维平面上有n个点(xi, yi),现在这些点中取若干点构成一个集合S,对它们按照x坐标排序,顺次连接,将会构成一些连续上升、下降的折线,设其数量为f(S)。如下图中,1->2,2->3,3->5,5->6(数字为下图中从左到右的点编号),将折线分为了 4部分,每部分连续上升、下降。 现给定k,求满足 f(S) = k的S集合个数。I...

2018-02-22 19:37:34 264

原创 bzoj3924 [Zjoi2015]幻想乡战略游戏(树链剖分)

Description 傲娇少女幽香正在玩一个非常有趣的战略类游戏,本来这个游戏的地图其实还不算太大,幽香还能管得过来,但是不知道为什么现在的网游厂商把游戏的地图越做越大,以至于幽香一眼根本看不过来,更别说和别人打仗了。 在打仗之前,幽香现在面临一个非常基本的管理问题需要解决。 整个地图是一个树结构,一共有n块空地,这些空地被n-1条带权边连接起来,使得每两个点之间有...

2018-02-22 09:56:12 318

原创 hdu3404(Nim积)

题目链接题目大意: 一个二维矩阵上,有若干个亮着的灯泡 每次选择一个矩阵(右上角的灯泡必须是亮的),改变四个角灯泡的状态分析: 论文:《从“k倍动态减法游戏”出发探究一类组合游戏问题》这道题就是Nim积的运用啦 但是看不懂啊直接献上代码:#include<cstdio>#include<cstring>#include<iostream...

2018-02-13 14:25:35 765

原创 bzoj3772 精神污染(dfs序+主席树)

Description兵库县位于日本列岛的中央位置,北临日本海,南面濑户内海直通太平洋,中央部位是森林和山地,与拥有关西机场的大阪府比邻而居,是关西地区面积最大的县,是集经济和文化于一体的一大地区,是日本西部门户,海陆空交通设施发达。濑户内海沿岸气候温暖,多晴天,有日本少见的贸易良港神户港所在的神户市和曾是豪族城邑“城下町”的姬路市等大城市,还有以疗养地而闻名的六甲山地等。兵库县官方也大力发展旅...

2018-02-13 10:38:58 305

原创 hdu5343 MZL's Circle Zhou(SAM+dp)

题目链接分析: 这道题是今天hu测T3的精简版 (先来搞简单一点的,hu测的题目太难了。。。)题意:给定两个长度不超过a,b(1 <= |a|,|b| <= 90000) x为a的连续子串,b为y的连续子串(x和y均可以是空串) 问x+y形成的不同串的个数?这时候出现了一个问题对于一个合法解,有可能中间存在一段即是A的子串,又是B的子串 那么此合法解就有多...

2018-02-12 20:31:07 296

原创 年底hu测(2.12)之T1(倍增)

分析: 大佬表示是一道水题,然而考试的时候并没有认真看过。。。打了个暴力就跑去搞T2了 (结果T2这么难,mdzz)首先,如果第一个位置和最后一个位置初始没有棋子,我们就必须花费代价放上棋子因为操作二限制iii到jjj之间的所有位置均未被摆放旗子, 因此每次摆放棋子就会把区间划分成更小的两个子问题然后我就很naive的分类讨论区间长度是偶数还是奇数小数据过了,但是大数...

2018-02-12 16:14:47 189

原创 poj3710 Christmas Game(树上删边游戏+tarjan缩点)

题目链接分析: 知识储备很多东西,不知道原理,是根本没法搞的 但是知道原理了之后,问题就简单多了我们把题目给出的仙人掌结构,利用tarjan缩点 变成一个简单一点的树形结构 (遵循原则:奇数边的环等价成一条边,偶数边的环等价成一个点)树上结点的SG值为(ta的所有子节点的SG值加1)的异或和 dfs一遍,计算SG值即可tip注意奇环时需要加一条边不停狂WA的...

2018-02-12 14:11:48 539

原创 树上删边游戏及其拓展(公平博弈:克朗原理+费森原理)

参考资料问题描述在某一棵树上删除一条边,同时删去所有在删除后不再与根相连的部分 双方轮流操作,无法再进行删除者判定为失败 一个游戏中有多棵树,我们把ta们的根都放在地板上,方便之后的处理在此,我们讨论的将是公平游戏,即双方都可以删除任意的树边 我们称这个游戏为:Green Hachenbush(树上公平删边游戏)之所以强调是公平博弈,是因为还有另一种删边游戏,是不公平的,...

2018-02-11 20:39:22 4294 1

原创 bzoj2653 middle(主席树+二分)

题目链接分析: 可以发现所有满足条件的中位数是具有单调性的 也就是说,如果M'<MM′<MM′MMM为合法的中位数,那么M'M′M′也为合法的中位数 那么我们就可以考虑二分答案了根据题目中对中位数的定义: 如果序列长度为奇数,中位数即为最中间的那个数, 如果序列长度为偶数,那么中位数为中间的两个数更靠后的那个数假设我们已经二分出答案mid,现在要判定M是否为合法的...

2018-02-11 17:50:44 285

原创 poj2348 Euclid's Game(博弈)

题目链接分析: 一开始我直接记搜 但是题目中连数据范围都没给,铁定RE实际上这道题我们还是要分情况讨论一下: 设(x,y)(x,y)(x,y)中x>yx>yx>yx−y<yx−y<yx-yxxx中减去一个yyy 如果(y,x−y)(y,x−y)(y,x-y)是必败态,那么(x,y)(x,y)(x,y)就是必胜态x−y>yx−y>yx-y>...

2018-02-11 15:15:04 255

原创 poj3480 John(用SJ定理解决Anti_SG游戏)

题目链接分析: 题目限制和Nim游戏一样 但是拿到最后一个M&M的人输这类特殊的游戏就叫做Anti_SGAnti-SG游戏决策集合为空的操作者胜 其余规则与SG游戏一致这种游戏有一个特殊的解决工具:SJ定理 我们先来看一下SJ定理的内容SJ定理对于任意一个Anti-SG游戏,如果定义所有子游戏的SG值为0时游戏结束,先手必胜的条件: 1....

2018-02-11 11:21:03 369

空空如也

空空如也

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

TA关注的人

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