自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

世界

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

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

原创 BZOJ 4296 PA2015 Mistrzostwa

题目大意:给定一张无向图,求一个点集最大的诱导子图使得: 1.每个点的度数都≥d\geq d 2.诱导子图连通将所有度数不足dd的点都加入队列 每次取出队头,将队头相邻的点度数减掉1,如果减掉后度数变成了d-1那么将这个点加入队列 输出剩余点的最大连通快即可#include <cstdio>#include <cstring>#include <iostream>#include <a

2015-10-09 12:42:40 1186

原创 HDU 4694 Important Sisters Lengauer_Tarjan算法

题目大意:给定一张nn个点mm条边的有向图,保证nn号点可以到达所有点,求nn号节点到每个点的必经点的编号之和数据是错的,存在nn号点无法到达的点,这些点输出00求Dominator Tree的Lengauer-Tarjan算法,具体做法自己百度我不赘述了#include <vector>#include <cstdio>#include <cstring>#include <iostream

2015-10-08 20:38:22 1958

原创 BZOJ 4278 ONTAK2015 Tasowanie 后缀数组

题目大意:给定两个数字串,要求归并成一个且字典序最小某奶牛题? 维护两个指针表示两个字符串各合并到了什么位置 那么这两个后缀中字典序较小者先取 用后缀数组快速比较谁字典序小 时间复杂度O((n+m)log(n+m)) 又是卡时过…… 《标解到底是啥系列》#include <cstdio>#include <cstring>#include <iostream>#include <a

2015-09-28 19:04:49 2282 2

原创 BZOJ 4277 ONTAK2015 Cięcie

题目大意:给定一个数字串,要求分成三段A,B,CA,B,C,满足A,B,CA,B,C都不含前导零且p|A,q|B,r|Cp|A,q|B,r|C “不含前导零”这个条件只是在增加细节,我们无视他 首先枚举AA和BB的分界线,设分界线两侧的部分分别是LL和RR,那么记录cnticnt_i表示L≡0(mod p)L≡0(mod\ p)且R≡i(mod q)R≡i(mod\ q)的(L,R)(L,R)的

2015-09-28 17:30:41 1467 3

原创 BZOJ 4276 ONTAK2015 Bajtman i Okrągły Robin 费用流+线段树优化构图

题目大意:给定n个带权区间和1W个点,求最大权匹配考虑直接连边,边数为O(n2)O(n^2)级别,难以承受 线段树优化构图,边数O(nlogn)O(nlogn) 方法是建一棵线段树,父亲节点向子节点连流量为INF边权为0的边 然后一个区间向对应的loglog个节点连边即可 然而慢得没进排行榜233 标解是啥QwQ#include <cstdio>#include <cstring>#i

2015-09-28 15:52:23 2129 4

原创 BZOJ 4269 再见Xor 高斯消元

题目大意:给定nn个数,求能异或出来的最大值和次大值是谁往BZ上传傻逼题…… 高斯消元求线性基,都异或起来是最大值,再异或一下最小的线性基就是次大值#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#define M 100100using namespace std;int n,a[M]

2015-09-23 15:13:39 2235 1

原创 BZOJ 4264 小C找朋友

题目大意:给定一张无向图,求有多少对点(x,y)(x≠y)(x,y)(x\neq y)满足对于任意一点z(z≠x,z≠y)z(z≠x,z≠y)满足边(x,z)(x,z)和边(y,z)(y,z)要么都存在,要么都不存在对于一个点xx我们搞出与这个点相邻的点的集合Adj(x)Adj(x) 那么如果(x,y)(x,y)之间没有边那么点对(x,y)(x,y)满足条件等价于Adj(x)=Adj(y)Adj(

2015-09-22 17:38:16 1518

原创 BZOJ 4260 Codechef REBXOR 可持久化Trie树

题目大意:给定一个长度为nn的序列,求1≤l1≤r1<l2≤r2≤n1\leq l_1\leq r_1<l_2\leq r_2\leq n使得(⊕r1i=l1ai)+(⊕r2i=l2ai)(\oplus_{i=l_1}^{r_1}a_i)+(\oplus_{i=l_2}^{r_2}a_i)最大,输出这个最大值傻逼题…… 求前缀和,问题转化成了求0≤l1<r1≤l2<r2≤n0\leq l_1< r

2015-09-22 17:08:18 2312

原创 BZOJ 1494 NOI2007 生成树计数 状压DP+矩阵乘法

题目大意:给定n(n≤1015)n(n\leq 10^{15})个点,编号差不超过k(k≤5)k(k\leq 5)的点之间有连边,问生成树个数 将kk个点的连通性用最小表示法压成状态,那么最多有5252种状态 计算出每个状态的生成树个数,作为初始行向量AA 对于每种状态考虑新加入一个点并向这kk个点连边,每种连法可以转移到哪些状态,得到转移矩阵BB 那么答案就是A∗Bn[A*B^n[所有点都

2015-09-16 19:54:03 2302

原创 BZOJ 1187 HNOI2007 神奇游乐园 插头DP

题目大意:给定一个四联通的网格图,每个点有个权值,求一个长度至少为4的简单环使得环上权值和最大 插头DP,具体自己讨论吧这题没啥可说的 注意(1,2)−>(0,0)(1,2)->(0,0)的状态要转移到答案上而不能转移到DP数组里#include <vector>#include <cstdio>#include <cstring>#include <iostream>#include

2015-09-15 19:56:32 2115

原创 codeforces #576E Painting Edges 分治+并查集

题目大意:给定一张nn个点mm条边的无向图,每条边有一个颜色(初始为无色),qq次操作,每次将一条边染为kk种颜色之一,要求染完后对于任意i=1...ki=1...k,当只有颜色为ii的边存在的时候这张图是一个二分图,如果不满足条件就不进行修改,对于每次修改输出是否成功这显然是一个动态二分图问题,分治并查集解法戳这里 但是这道题我们并不知道每条边的具体存在时间 因此我们这样: 假设每次修改都生

2015-09-15 15:00:13 1892

原创 BZOJ 2502 清理雪道 最小流

题目大意:给定一张拓扑图,求最少的链(可重复)使之覆盖所有的边 《妈妈我终于会最小流了系列 》 最小流做法如下: 建出可行流的模型,设原先的源汇为SSSS和TTTT,新加入的源汇为SS和TT 跑可行流,若SS的某条出边不满流则无解 删除SS和TT的所有连边,设TT−SSTT-SS这条边的流量为x1x_1,删除这条边 链接S−>TTS->TT和SS−>TSS->T,跑最大流,设最大流为

2015-09-15 14:39:46 2526

原创 BZOJ 3306 树 Link-Cut-Tree+set

题目大意:给定一棵有根树,每个点有个权值,要求维护换根、单点修改、查询子树最小值闲得我写了发LCT…… (这段时间咋净写LCT了。。。每个节点开一个multiset记录一下所有虚边连接的子树的最小值 然后切换虚边的时候把原来的实边连接的子树扔进multiset,把新的实边连接的子树从multiset里删除就行了 时间复杂度O(nlog2n)O(nlog^2n)#include <set>#i

2015-09-06 20:54:43 1872

原创 BZOJ 2788 Poi2012 Festival 差分约束+Tarjan+Floyd

题目大意:给定nn个正整数变量和m1+m2m1+m2个限制条件,每个形如xi+1=yix_i+1=y_i或xi<=yix_i<=y_i,求这些变量最多能有多少个不同的取值首先我们可以根据差分约束建图,Floyd跑最短路,判断是否无解 然后Tarjan缩点,显然不同强连通分量之间互不影响 一个强连通分量内的最多取值个数等于强连通分量两两之间最短路的最大值+1+1证明: 由于边权只有{0,1,−1

2015-09-06 19:37:23 2384

原创 BZOJ 1453 Wc2005 Dface双面棋盘 Link-Cut-Tree

题目大意:给定一张网格图,每个点有黑色和白色,同色相邻的点之间连边,每次反转一个点的颜色并输出黑色和白色的联通块个数 《论科技不发达的危害》 这显然是个动态图问题,由于不强制在线,我们用Link-Cut-Tree维护边删除时间的最大生成树就可以了 时间复杂度O((n2+m)logn)O((n^2+m)logn) 常数巨大#include <queue>#include <cstdio>#

2015-09-06 18:02:47 2205

原创 BZOJ 4248 AAQQZ

历时5days我终于TM把这道傻逼题A掉了题目大意:给定一个字符串,要求选择一个区间sort一下,使得到的新字符串的最长回文子串最长 n≤3000n\leq3000,字符集大小≤3000\leq3000题解戳这里多学日语有益于身体健康,实在想AC这道题的加我QQ私聊吧,这题乱七八糟的细节实在太多。。。 我正在准备埋了出题人…… (翻译:这样就真的绝对能AC了!要是AC不了,把我拖到树底下埋了也

2015-09-05 16:10:00 1812 1

原创 BZOJ 2908 又是nand Link-Cut-Tree

题目大意:给定一棵树,每个点有一个权值,多次修改某个点的权值或询问从某个点xx到另一个点yy的路径上的0 nand ax nand...nand ay0\ nand\ a_x\ nand...nand\ a_ynand操作不支持交换律和结合律,不过由于每一位独立,我们可以记录ai,ja_{i,j}表示第ii位初始为jj的时候一路nand过来的结果 然后用LCT维护一下即可 时间复杂度O(nlog2

2015-08-31 10:17:49 1816

原创 BZOJ 2503 相框 并查集

题目大意:给定一张无向图,每次可以进行以下两种操作: 1.将一个点分裂成一些点,原先这个点连接的每条边任选一个新点进行连接 2.将两个度数为1的点合并为1个点 求将这个图变成一个环的最小操作次数首先我们考虑拆 由于终态每个点度数最多为2,因此我们将每个度数大于2的点都拆成一些度数为2的点,如果有零头,留下一个度数为1的点 由欧拉通路的相关结论可知,按照这种拆法,一个有k(k>=2)k(k>

2015-08-27 17:35:50 1628

原创 BZOJ 2669 cqoi2012 局部极小值 状压DP+容斥原理

题目大意:给定一个n∗mn*m的矩阵,标记出其中的局部极小值,要求填入1...n∗m1...n*m,求方案数《多年的心头大恨终于切掉了系列》 考虑将数字从小到大一个一个填进去 由于局部极小值最多88个,我们可以状压DP 令fi,jf_{i,j}表示已经填完了前ii个数,局部极小值的填充状态为jj的方案数 预处理出cntjcnt_j表示填充状态为jj时共有多少位置是可以填充的(包括已填充的局部

2015-08-27 15:46:15 5121 1

原创 BZOJ 2302 HAOI2011 Problem c 动态规划

题目大意:给定nn个人和nn个位置,要求生成一个序列aia_i,然后第1...n1...n个人依次走到第a1...na_{1...n}个位置,如果那个位置已经有人了就走到下一个位置,直到找到一个空位,坐下。如果找完第nn个座位还是没有找到就称这个序列不合法 现在已经确定了一些aia_i,求合法序列的数量一个序列合法等价于编号≤i\leq i的人至少有ii个 然后就可以DP辣。。。 令fi,jf

2015-08-26 20:51:26 2107

原创 BZOJ 3107 CQOI2013 二进制a+b 构造

题目大意:给定nn位二进制数a,b,ca,b,c,要求重组三个数的各个位,使得a′+b′=c′a'+b'=c'且最小化c′c'一个构造题咋这么多人写DP……不考虑位数限制,显然答案只与三个数中11的个数有关 令x=cnta,y=cntb,z=cntcx=cnt_a,y=cnt_b,z=cnt_c,其中cntxcnt_x代表xx中11的个数 不妨令x≥yx\geq y 以下用x=10,y=5x=

2015-08-26 17:21:32 2338 5

原创 BZOJ 2654 tree 二分答案+Kruskal

题目大意:给定一张带权无向图,每条边有一个颜色(黑色/白色),求一棵生成树满足有needneed条白色边且权值和最小 二分一个xx,然后将所有白边权值加上xx,跑两遍Kruskal,第一遍白边排在前面,第二遍黑边排在前面,这样可以求出当前白边数量的最大最小值 如果needneed在最大最小值之间那么直接输出结果,否则如果小于最小值就增大xx,大于最大值就减小xx 然而我并不会证明正确性。。。#

2015-08-25 17:46:09 2116

原创 BZOJ 2725 Violet 6 故乡的梦 堆优化Dijkstra+线段树

题目大意:给定一张带权无向图和起点SS、终点TT,每次询问如果某条边被删掉那么从SS到TT的最短路是多少 数据范围2∗1052*10^5 注意样例错了 第二个输出应该是66不是55首先搞出从SS到TT的任意一条最短路 然后对于一条边(x,y)(x,y),如果不在最短路径上,预处理出SS到xx的最短路以及何时离开选定的最短路径S′S',以及yy到TT的最短路以及何时进入选定的最短路径T′T' 然

2015-08-21 21:04:58 3440

原创 BZOJ 4236~4247 题解

BZOJ 4236 JOIOJI f[i][0..2]f[i][0..2]表示前i个字符中′J′/′O′/′I′'J'/'O'/'I'的个数 将二元组<f[i][0]−f[i][1],f[i][1]−f[i][2]><f[i][0]-f[i][1],f[i][1]-f[i][2]>扔进map,记录一下最早出现的时间 对于每个位置去map里面查一下即可 时间复杂度O(nlogn)O(nlogn

2015-08-20 16:00:20 4677 5

原创 BZOJ 4245 ONTAK2015 OR-XOR

题目大意:给定一个长度为nn的序列,要求分成mm段,使得每段异或和的或值最小 求出前缀异或和后从大到小按位确定,如果某一位上有至少mm个数是0且第nn个数是0,那么这一位就可以是0,同时将所有是1的数字标记为不可选 时间复杂度O(nlogai)(nloga_i)#include <cstdio>#include <cstring>#include <iostream>#include <a

2015-08-20 15:05:48 2166

原创 NOI2015 题解

D1T1 程序自动分析 题目大意:给定10910^9个变量和nn个等于/不等于的关系,判断能否存在一组解满足所有关系并查集傻逼题,NOIP小孩都会做 离散化一下,然后把相等的都用并查集并起来,判断每对不等关系是不是在同一并查集中就行了代码没拷回来,懒得再写一遍了D2T2 软件包管理器 题目大意:给定一棵有根树,每个点有黑白两种颜色,初始都为白色,每次进行以下两种操作: 1.将某个点所在的子树

2015-08-10 18:45:58 8250 5

原创 NOI2015酱油记

这么一想我好像破掉了两个flag。。。 一个是Ag滚粗的flag……(Wc、Ctsc、Apio都是Ag滚粗 另一个是二试被翻的flag……(NOIP,省选,Ctsc,各种二试被艹DAY -1报到日 从长春坐一晚上火车到北京然后坐高铁到杭州。。。 一下车一股热气真爽~ 下了车看到好多人……黄学长居然和我们一趟线? 黄学长:“傻逼题做不出来怎么办” 我:“……” 我:“反正你把该拿到的分

2015-08-02 04:07:42 9077 7

原创 小型策略类竞技游戏:完美世界(The Perfect World)重制计划

= = 先说一下这个游戏是我在高一的寒假时期写的……当时刚熟悉C的一些语法然后就抱着“试试”的心态写了一发这个东西。。。现在回想起来整整26KB的代码真的是噩梦啊。。。 这个游戏最早是小区的人以广场上的地砖为地图一群人聚在一起石头剪子布玩的游戏。。。后来某个坑比队友跟我说“你要不要写个程序出来”。。。然后我就写了一坨这东西。。。 当时的代码难看得真是要死。。。而且似乎有不少BUG? 记住别乱

2015-08-02 00:07:03 2998 2

原创 POJ 3495 Bitwise XOR of Arithmetic Progression 数论

题目大意:给定x,y,zx,y,z,求x⊕(x+z)⊕(x+2z)⊕...⊕(x+kz)x\oplus(x+z)\oplus(x+2z)\oplus...\oplus(x+kz),其中y−z<x+kz≤yy-z<x+kz\leq y困扰了我多年的心腹大患终于干掉了。。。由于异或操作中每一位彼此独立,我们可以一位一位做 对于第ii位,这一位的值为(⌊x2i⌋+⌊x+z2i⌋+⌊x+2z2i⌋+...

2015-07-12 22:04:26 2103

原创 BZOJ 4116 Wf2015 Tours Tarjan

题目大意:给定一张nn个点mm条边的无向图,你需要选择一个颜色种类数kk,然后用这kk种颜色给每条边染色,要求对于图中任意一个简单环,每种颜色的边的数量都相同,求所有可行的kk考虑将边集EE拆成一些子集{E1,E2,E3,..}\{E_1,E_2,E_3,..\},满足任意一个简单环可以被拆成一些子集的和,且不存在两个子集合并后仍满足条件,那么答案就是gcd{|E1|,|E2|,|E3|,..}\g

2015-07-12 14:16:07 2339

原创 BZOJ 4184 shallot 分治+高斯消元

题目大意:给定一个可重集合,每个时刻加入一个数或删除一个数,每次操作后询问子集的最大异或和每个数存在的时间都是一些区间 按照时间分治,维护线性基,时间复杂度O(nlognlogai)O(n\log n\log a_i) 然而数据范围是50W,出题人在想什么。。。。#include <map>#include <vector>#include <cstdio>#include <cstrin

2015-07-11 17:58:12 2496 2

原创 BZOJ 2927 POI1999 多边形之战 博弈论

题目大意:给定一个凸多边形的三角剖分,其中一个三角形被涂成了黑色,每次可以割一刀割下一个三角形,割下黑色三角形的人胜利,求是否先手必胜这傻逼题我想了50min。。。50min!把这个图转对偶图之后会变成一棵树。。。 问题转化成了给定一棵树有一个黑色节点每次删除一个叶节点,删除黑色节点的人胜利 如果黑色节点初始就是一个叶节点,那么先手必胜 否则当一个人面临一个黑色节点连接两个白色节点的状态时必败

2015-07-10 19:56:59 1682

原创 BZOJ 4176 Lucas的数论 莫比乌斯反演

题目大意:给定n(n≤109)n(n\leq10^9),求∑ni=1∑nj=1d(ij)\sum_{i=1}^n\sum_{j=1}^nd(ij)推错式子害死人。。。 由d|ijd|ij等价于dgcd(i,d)|j\frac d{\gcd(i,d)}|j可得 ∑ni=1∑nj=1d(ij)\sum_{i=1}^n\sum_{j=1}^nd(ij) =∑ni=1∑n2d=1⌊n∗gcd(i,d)

2015-07-10 18:20:57 3659

原创 BZOJ 3899 仙人掌树的同构 仙人掌同构+KMP算法

题目大意:给定一棵仙人掌,求有多少自同构仙人掌同构问题= = 曾经出过一个判断两个仙人掌是否同构的题,感觉和这个题很类似首先假设这是一棵树,考虑怎么做我们首先找到树的重心(如果有两个就在中间加一个点变成一个) 然后把树Hash 对于一棵树 如果某一哈希值的子树有kk个 就把答案乘上一个k!k!现在变成了仙人掌,那么我把每个环变成一个红点连向环上的所有点,然后把原先环上的边拆除,可以得到一棵树,

2015-07-10 14:01:14 2698 2

原创 BZOJ 3864 Hero meet devil DP套DP

题目大意:给定一个长度为n(n≤15)n(n\leq 15)的基因序列SS,求对于每个i(0≤i≤n)i(0\leq i\leq n)有多少长度为m(m≤1000)m(m\leq1000)的基因串TT满足SS与TT的LCSLCS为ii考虑LCSLCS怎么求 fi,jf_{i,j}表示TT的前ii位和SS的前jj位的LCSLCS 我们发现每一行之和上一行的状态有关那么在这个问题中,我们令fi,jf

2015-07-10 09:30:50 3012

原创 BZOJ 4174 tty的求助 莫比乌斯反演

题目大意:求∑Nn=1∑Mm=1∑m−1k=0⌊nk+xm⌋ mod 998244353\sum_{n=1}^N\sum_{m=1}^M\sum_{k=0}^{m-1}\lfloor\frac{nk+x}m\rfloor\ mod\ 998244353假设nn和mm都已经确定了,现在要求这坨玩应: ∑m−1k=0⌊nk+xm⌋\sum_{k=0}^{m-1}\lfloor\frac{nk+x}m\

2015-07-09 19:13:24 3666 2

原创 BZOJ 4173 数学 数论

题目大意:给定n,mn,m,求φ(n)∗φ(m)∗∑n%k+m%k≥kφ(k) mod 998244353\varphi(n)*\varphi(m)*\sum_{n\%k+m\%k\geq k}\varphi(k)\ mod\ 998244353 n,m≤1015n,m\leq 10^{15}我是傻逼。。。n%k+m%k≥kn\%k+m\%k\geq k等价于⌊n+mk⌋−⌊nk⌋−⌊mk⌋=1\

2015-07-09 18:19:18 3427

原创 BZOJ 2969 矩形粉刷 期望

题目大意:给定一个W∗HW*H的矩阵,kk次选择两个点并粉刷中间矩形区域,求最终刷到的格子数的期望无论独立与否期望都是可加的,我们可以一个一个格子计算期望,最后加和 然后我们可以计算出一个格子一次被涂到的概率pp,那么1−(1−p)k1-(1-p)^k就是这个格子kk次后被刷到的概率 不知为何跑得奇慢无比。。。。其他人写的都不是O(WH)O(WH)的么- -#include <cmath>#i

2015-07-05 21:14:34 1527

原创 BZOJ 2667 cqoi2012 模拟工厂 贪心

题目大意:现在你有一个工厂,初始生产力为11,每一时刻你可以进行如下操作: 1.将生产力提高1 2.生产一些产品,数量等于当前生产力的数值 现在你有nn个订单,每一份有一个交易时间tt,一个商品数量gg和一个价格mm,可以接或者不接,如果接就要在tt时刻操作之前减少gg的商品数量,然后得到mm的钱 求最大收益跪shanest大爷。。。 由于n≤15n\leq15,爆枚接受哪些订单 每次C

2015-07-04 21:19:26 1979 3

原创 BZOJ 2926 Poi1999 空立方体问题

题目大意:给定一个空间上的n(n≤5000)n(n\leq 5000)个点,你需要输出一个点(x,y,z)(x,y,z),满足: 1.0≤x,y,z≤1060\leq x,y,z\leq 10^6 2.不存在一个点(xi,yi,zi)(x_i,y_i,z_i)满足0<xi<x,0<yi<y,0<zi<z0<x_i<x,0<y_i<y,0<z_i<z 3.在此基础上最大化xyzxyz考虑二维怎么

2015-07-03 15:35:15 1292

空空如也

空空如也

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

TA关注的人

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