自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

不来也不去的一只失忆蝴蝶

曾迷途才怕追不上满街赶路人

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

原创 [HAOI2017]供给侧改革

题目描述做法lcp长度不超过t,这个概率为1-(1-1/2^t)^(n^2)。 t可以取40。 离线扫描,把询问挂在右端点。 每一个位置把从它开始后长度为40的字符串丢入trie中。 可以在trie的每一个结点保留当前子树中位置最大的两个。 然后可以线段树维护一发。 每次区间max标记可以考虑暴力,均摊复杂度是对的。 你可能不知道我在说什么因为我说的很不详细。#include<cstd

2017-06-10 17:22:57 947

原创 [HAOI2017]新型城市化

题目大意一副图告诉你那些点之间没有连边,并保证整幅图可以被划分为至多两个团。 请你找出每一对没有连边的点,使得它们连边后,图中最大团的大小会变大。模型转化因为原图要被分成至多两个团,其补图一定是二分图。 最大团大小等同于最大独立集大小,因此和最大匹配挂钩。 求哪些边一定在最大匹配上。做法先做最大匹配算法。 一定在最大匹配上的边一定是匹配边(显然)。 然后考虑三种情况会使得匹配边u->v不一

2017-06-10 16:53:13 1125

原创 [JZOJ5131][SDOI省队集训2017]距离

题目描述点分治询问拆成四条到根的询问。 bfs一遍,处理出可持久化点分树。 查询直接查。#include<cstdio>#include<algorithm>#include<cmath>#define fo(i,a,b) for(i=a;i<=b;i++)#define fd(i,a,b) for(i=a;i>=b;i--)using namespace std;typedef l

2017-06-09 22:18:30 390

原创 [JZOJ5137][SDOI省队集训2017][bzoj4842]养猫

题目大意ls是一个特别堕落的小朋友,对于n个连续的小时,他将要么睡觉要么打隔膜,一个小时内他不能既睡觉也打隔膜 ,因此一个小时内他只能选择睡觉或者打隔膜,当然他也必须选择睡觉或打隔膜,对于每一个小时,他选择睡觉或 打隔膜的愉悦值是不同的,对于第i个小时,睡觉的愉悦值为si,打隔膜的愉悦值为ei,同时又有一个奥妙重重的 规定:对于任意一段连续的k小时,ls必须至少有t1时间在睡觉,t2时间在打隔

2017-06-09 22:16:27 1185

原创 [JZOJ5136][SDOI省队集训2017]重排

题目大意做法按拓扑序倒序做。 设出边个数为k。 没有自环可以考虑k^2从大到小枚举权值v然后two pointer来计算P(v)表示>=v的概率,最后前缀相减即可。 注意不要写成k^2带log。 这里很麻烦。 有自环可以考虑二分+判定。 具体见代码。#include<cstdio>#include<algorithm>#include<cmath>#define fo(i,a,b)

2017-06-09 22:12:37 527

原创 [JZOJ5134][SDOI省队集训2017]三元组

题目大意求∑ai=1∑bj=1∑ck=1[(i,j)=1][(i,k)=1][(j,k)=1]\sum_{i=1}^a\sum_{j=1}^b\sum_{k=1}^c[(i,j)=1][(i,k)=1][(j,k)=1]推式子首先假设a<=b<=c。 第一步转化为 ∑ai=1∑bj=1,(j,i)=1∑ck=1,(k,i)=1[(j,k)=1]\sum_{i=1}^a\sum_{j=1,(j,i

2017-06-09 21:24:28 771

原创 [JZOJ5133][SDOI省队集训2017]重建

题目描述傻逼题预处理每个图里经过k条边的最短路。 然后可以用单调栈求出一些关键的c值使得某副图改变最短路经过的边数。 接着顺序扫这些关键点,解方程即可。#include<cstdio>#include<algorithm>#include<cmath>#define fo(i,a,b) for(i=a;i<=b;i++)#define fd(i,a,b) for(i=a;i>=b;i--

2017-06-03 22:34:53 624

原创 [JZOJ5132][SDOI省队集训2017]子序列

题目大意字符集为9的字符串。 若干次询问区间本质不同的子序列个数。考虑暴力子序列要求本质不同。 假如每个位置向后每种字符的第一个位置连单向边。 设置一个虚点向区间每种字符第一个位置连单向边。 那么就是这个虚点出发有多少走法。 用另一种形式,你设f[i,j]表示最后走到了i,是从区间j第一次出现的位置开始走的,有多少走法。 你考虑i左移一格如何更新,发现 对于新的i,有f[i][a[i]

2017-06-03 22:31:16 891

原创 [JZOJ5130][51nod1446][SDOI省队集训2017]苹果树

题目描述有N个点(N<=40)标记为0,1,2,…N-1,每个点i有个价值val[i],如果val[i]=-1那么这个点被定义为bad,否则如果val[i] >=0那么这个点为定义为good。现在给这N个点间连上N-1条边,使它们构成一个生成树,定义树中的点为great点当且仅当这个点本身是good点且与其相邻的点中至少有另一个good点。树的价值等于树中所有great点的价值和。定义限制价值树是指

2017-06-02 21:16:24 846

原创 [JZOJ5129][SDOI省队集训2017]字符串

题目大意从n个字符串中依次选出一个子串拼接,求本质不同的数量。SAM我们尽量长化前面的。 于是倒着做,对每个串都要建SAM。 只需要处理开头是某个字符的方案数,SAM的一个节点没有该转移边即可。 大概就这样,懒得写清楚了。#include<cstdio>#include<algorithm>#include<cstring>#define fo(i,a,b) for(i=a;i<=b;i

2017-06-02 21:11:04 658

原创 [bzoj4931][SDOI省队集训2017]塔

题目描述DP感觉这是一种套路题,自己见得太少了…… 首先,假如我们定了塔与塔间的相对顺序,就可以知道相邻至少长度的和s,于是得到t=L-s-1,那么答案容易发现是一堆组合数相加得到Cnt+nC_{t+n}^n s是n^2级别,可以考虑dp弄出方案数。 考虑从大到小插入,设f[i,j,k]表示已经插入了n~i,目前s为j,有k段。 现在有k段,我们可以把两段用i合并成一段,段数-1,对j的贡献

2017-06-01 16:51:35 618

原创 [bzoj4930][SDOI省队集训2017]棋盘

题目大意n*n的网格里有障碍或空位,你要往里面放棋子。只能在空位里放棋子,每个空位至多放1个。 如果两个棋子位于同一行或同一列,且它们之间没有障碍,那么就会产生1的费用。 若干询问如果放k个棋子最小费用是多少。网络流把障碍与障碍之间抽出来叫段。 那么自然有横段和竖段。 同一个段内如果有t个棋子,产生t*(t-1)/2的费用。 于是可以根据这个建费用流图。 可以动态加边来优化。#inclu

2017-06-01 16:43:47 526

原创 [bzoj4928][SDOI省队集训2017]dierti

题目描述对于一棵有根树,定义一个点u 的k− 子树为u 的子树中距离u 不超过k 的部分。注意,假如u 的子树中不存在距离u 为k 的点,则u 的k−子树是不存在的。 定义两棵子树是相同的,当且仅当不考虑点的标号时,他们的形态是相同的(儿子的顺序也需要考虑)。给定一棵n 个点,点的标号在[1,n],以1 为根的有根树。问最大的k,使得存在两个点u ̸= v,满足u 的k− 子树与v 的k− 子树相

2017-05-31 20:34:01 844

原创 [bzoj4927][SDOI省队集训2017]diyiti

题目大意在一个长度为n的数列中找出六个数,使得可以把它们分成四组,每组的和均相等。求方案数。XJB做只有1+1+1+3或1+1+2+2两种拆分。 先预处理two[x]表示找出两个数和为x的方案数,以及one[x]表示有多少数是x。 对于1+1+1+3,枚举那个1是x,首先有一个C3one[x]C_{one[x]}^3。 对于那个3,我们先枚举一个ai,然后对应方案数是two[x-a[i]]。

2017-05-31 20:26:16 769

原创 [bzoj4893/bzoj4895]项链分赃,一个强大的脑洞

试证明一条n个珠宝的项链,每个珠宝有一个颜色,一共m种颜色。每种颜色均有偶数个珠宝。 现在切若干刀分成若干段,将一些段给A另一些给B。 使A和B每种颜色获得的珠宝数相同。 试证明至多m刀即可。地球问题基本是参考原题解的。 假设地球是一个完美的球体,而且气温和气压的变化是连续的,那么地球上一定存在一对相对的点气温和气压都相等。 我们来考虑证明吧。 假设你和你的女朋友都绕赤道走了半圈,且时刻

2017-05-26 22:32:53 1946 4

原创 [bzoj3711]Druzyny

题目描述体育课上,n个小朋友排成一行(从1到n编号),老师想把他们分成若干组,每一组都包含编号连续的一段小朋友,每个小朋友属于且仅属于一个组。 第i个小朋友希望它所在的组的人数不多于d[i],不少于c[i],否则他就会不满意。 在所有小朋友都满意的前提下,求可以分成的组的数目的最大值,以及有多少种分组方案能达到最大值。神题我们考虑DP。 f[i]表示将前i个人分组的最大值,-1表示不可能,g[

2017-05-26 16:55:35 872

原创 [bzoj4147]Euclidean Nim

题目描述Euclid和Pythagoras在玩取石子游戏,一开始有n颗石子。 Euclid为先手,他们按如下规则轮流操作: ·若为Euclid操作,如果n题解太强了 http://blog.csdn.net/PoPoQQQ/article/details/46549901#include<cstdio>#include<algorithm>#define fo(i,a,b) for(i=a

2017-05-24 10:51:59 411

原创 [bzoj4878]挑战NP-Hard

题目描述天才大学生quailty热衷于解决NP-Hard问题,你如果AC 了这道题,就可以成为他真正的粉丝。图染色问题:给定 无向图G和一个正整数k。对于图中的每个点,选择一个在[1,k]之间的整数作为其颜色。你需要保证对于每条边, 其两端点的颜色均不相同。简单k路径问题:给定无向图G和一个正整数k。请找到一条经过了恰好k条边的简单路径 。即,你需要找到一个长度为k+1的序列v_1,v_2,…

2017-05-20 09:13:59 665

原创 [bzoj4832]抵制克苏恩

题目描述小Q同学现在沉迷炉石传说不能自拔。他发现一张名为克苏恩的牌很不公平。如果你不玩炉石传说,不必担心,小Q 同学会告诉你所有相关的细节。炉石传说是这样的一个游戏,每个玩家拥有一个 30 点血量的英雄,并且可以用牌 召唤至多 7 个随从帮助玩家攻击对手,其中每个随从也拥有自己的血量和攻击力。小Q同学有很多次游戏失败都是 因为对手使用了克苏恩这张牌,所以他想找到一些方法来抵御克苏恩。他去求助职

2017-05-20 09:08:48 655

原创 [bzoj4835]遗忘之树

题目描述定义任意两点之间存在唯一路径的无向图是树。对于一棵n个点的树,如果删掉某个点u之后每个连通块的大小均不 超过n/2,那么称u为这棵树的重心。现在有一棵n个点的树T,利用过程P来构造一个n个点的有向图G,初始G没有边 。现在对T调用过程P,P的内容如下: 1:删去u,对每个连通块递归调用过程P; 2:对每个连通块,如果它的标号最小的重心为v,那么在图G中连一条u到v的有向边。 3:现

2017-05-20 09:06:59 437

原创 [bzoj4881]线段游戏

题目描述quailty和tangjz正在玩一个关于线段的游戏。在平面上有n条线段,编号依次为1到n。其中第i条线段的两端点坐 标分别为(0,i)和(1,p_i),其中p_1,p_2,…,p_n构成了1到n的一个排列。quailty先手,他可以选择一些互不相交 的线段,将它们拿走,当然他也可以一条线段也不选。然后tangjz必须拿走所有剩下的线段,若有两条线段相交, 那么他就输了,否则他就赢了。

2017-05-20 09:02:28 847

原创 [bzoj4874]筐子放球

题目描述小N最近在研究NP完全问题,小O看小N研究得热火朝天,便给他出了一道这样的题目: 有 n 个球,用整数 1 到 n 编号。还有 m 个筐子,用整数1到m编号。 每个球只能放进特定的两个筐子之一,第 i 个球可以放进的筐子记为 Ai 和 Bi 。 每个球都必须放进一个筐子中。 如果一个筐子内有奇数个球,那么我们称这样的筐子为半空的。 求半空的筐子最少有多少个。 小N看到题目后瞬间没

2017-05-20 08:50:27 601

原创 [51nod 1851]俄罗斯方块

题目描述给一个黑白图,每次能将某些区域的格子黑白反转,至于某些区域的意思嘛,就是俄罗斯方块形状的区域咯(可水平翻转、上下翻转、旋转) 求能否将图变成全白结论51nod的题解写得比较好。 这里懒得写了。#include<cstdio>#include<algorithm>#define fo(i,a,b) for(i=a;i<=b;i++)using namespace std;int s

2017-05-20 08:36:26 548

原创 [bzoj4033]树上染色

题目描述有一棵点数为N的树,树边有边权。给你一个在0~N之内的正整数K,你要在这棵树中选择K个点,将其染成黑色,并 将其他的N-K个点染成白色。将所有点染色后,你会获得黑点两两之间的距离加上白点两两之间距离的和的收益。 问收益最大值是多少。DP首先贡献很恶心,但我们可以这样考虑,只考虑每条边的贡献。 设f[i,j]表示以i为根的子树中染黑了j个点的最大贡献,这里只考虑了子树中每条边以及i的父亲

2017-05-04 22:11:47 793

原创 字符串匹配

题目描述对于一个字符集大小为C的字符串P,我们可以将任意两种字符在P中的位置进行互换,例如P=abcba,我们交换a,b就变为bacab,交换a,d就变为dbcbd,交换可以进行任意次。若交换后P变为了字符串Q,则我们称Q与P是匹配的。 现在给定两个字符集大小为C的字符串S,T,请你求出S中有多少个连续子串与T是匹配的。水题一个字符串可以这样表示,一个位置首次出现某个字符标为0,否则标为与最近一个

2017-05-04 15:47:10 679

原创 绝版题

题目描述所谓的考试,就一定有一道绝版题使得男人沉默女人流泪,而不有理有据的绝版题怎么称得上绝版呢? 火车国一开始只有一座城市,也就是1号城市。不过火车国的领土是在不断变化的,经常会新添加一个城市,那么小火车就会用一条铁路把它和某个老城市连接起来。 偶尔火车国会发生自然灾害,那么小火车就得找到一个合适的城市指挥赈灾,这个城市满足所有城市到其距离乘以城市人口的和最小,如果有不止一个最小的城市时小火车

2017-05-04 15:45:02 482

原创 叶片

题目描述一个圆形涡轮上有N 个叶片均匀围成一圈,按顺时针1 到N 标号,其中有一些叶片损坏了。现在要把损坏的叶片给拆下来,但是为了使涡轮正常工作,它的重心还应该落在中心上。求最少还要再拆下几个叶片才能实现目标。贪心设n=p^xq^y 按n/p和n/q为循环写出若干矩阵。 每个矩阵内只能只取横或只取竖。 贪心计算。 (我的程序有点水啊?)#include<cstdio>#include<al

2017-05-04 15:41:39 681

原创 最小边权和

题目描述有一张n个点m条边的有向图,每条边有一个互不相同的边权w,有q个询问,要求你从点a经过不超过c条边到点b,要求经过的边权递增并和尽量小,求出最小的边权和,如果没有合法方案则输出-1。水题按边权从小到大加入做floyd即可。#include<cstdio>#include<algorithm>#define fo(i,a,b) for(i=a;i<=b;i++)using namespa

2017-05-04 15:39:21 1890

原创 数列

题目描述有一个长度为n 的排列,现在有一些位置的数已经模糊不清了,你只知道这个排列的逆序对个数是K,你能计算出总共有多少可能的排列吗?折半很经典的meet in the middle 不说了,记住有各种精妙实现压复杂度。#include<cstdio>#include<algorithm>#include<map>#define fo(i,a,b) for(i=a;i<=b;i++)usi

2017-05-04 15:36:42 556

原创 游戏

题目描述YJC最近写了一篇关于游戏的论文。CJY看他那么喜欢游戏,决定出一道题考考他。 CJY给出了一种两个人玩的游戏。定义游戏规则如下:给一张n个点,m条边的有向无环图,每条边有颜色ci。在图上放了q颗石子,每颗石子在一个点上。每次操作时,选择一个有出边且点上有石子的点x,从点上取走一颗石子,然后选择一个颜色集合S,如果x的某条出边i的颜色 ,则在边i的终点上放上一颗石子。双方轮流操作,不能操作

2017-05-04 15:33:27 636

原创 子串

题目描述SA题朴素大概要个很高的复杂度。 想一个高端一点的暴力,可以只枚举两个后缀,对于这两个后缀任意前缀之间lcp可以列出数学式子,这个式子与这两个后缀的长度以及它们的lcp长度有关。 接下来我们知道lcp等于一段区间height的最小值。 因此写个sa,然后根据height建立笛卡尔树。 接着递归维护需要维护的信息,每次以一个点为lcp值统计答案。 式子因为忘了怎么推就不推啦!#inc

2017-05-04 15:29:17 436

原创 [bzoj3498]Cakes

题目描述N个点m条边,每个点有一个点权a。 对于任意一个三元环(i,j,k)(i<j<k)(i,j,k)(i<j<k),它的贡献 为max(ai,aj,ak) 求所有三元环的贡献和。 N<100000,,m<250000。瞎做我们都知道一个定理就是一个图,枚举不比一个点度数小的点只有根号m个。 因此我们可以以度数来定义优先级,度数大优先级高,相同度数编号越大优先级越高。 对于一个三元环

2017-05-04 15:12:17 817

原创 GDOI2017旅游记

DAY 0上车睡觉,因为颓废颓到头痛。 晚上也是颓废,我随便推了一下减rp的gal。 板子没看就睡觉了。DAY 1看题。 t1好迷,跳。 t2好长,翻到加粗好像看懂了,一看输入格式又开始怀疑。然后成为和题面软磨硬泡的选手。最后感受到出题人深深的恶意。好像不是很会,先跳。 t3没看懂,先跳。 t4吓坏了,跳。 回去看t1,好像可以模拟题意。那要用个判断匹配的算法,当时的模型是要判断以A串

2017-05-03 21:36:54 1678 3

原创 大声的喊——NOI2017,我来了!

转眼间已过一年,没有辜负努力,没有留下遗憾。 WerKeyTom_FTD,继续加油!

2017-05-03 18:43:26 3311

原创 GDOI冲刺训练模拟赛第四套总结

DAY 1一看t1知道是sa后算一算 t2是原题 t3看起来像折半 t4是原题 然后瞬间产生了要切三题的念头。 接着刚t1,先写了暴力发现式子不对,然后改,接着改sa,这里写了好久,这题还是很不可调的。 写了最暴力的暴力拍,没什么问题。 t2很好写,不是很会拍。 t3先没管,然后跳去写t4了。 发现t4的做法有问题,最后还是写了暴力,没时间写t3。 回去检查,发现了t2是原题改了

2017-04-27 10:18:55 523

原创 [bzoj4035]数组游戏

题目描述有一个长度为N的数组,甲乙两人在上面进行这样一个游戏:首先,数组上有一些格子是白的,有一些是黑的。然 后两人轮流进行操作。每次操作选择一个白色的格子,假设它的下标为x。接着,选择一个大小在1~n/x之间的整数 k,然后将下标为x、2x、…、kx的格子都进行颜色翻转。不能操作的人输。现在甲(先手)有一些询问。每次他 会给你一个数组的初始状态,你要求出对于这种初始状态他是否有必胜策略。好题

2017-04-25 22:12:49 1122

原创 [UOJ #21]缩进优化

题目大意找到合适的x来最小化 ∑ni=1⌊aix⌋+ai%x\sum_{i=1}^n\lfloor\frac{a_i}{x}\rfloor+a_i\% x解法把模给拆了 ∑ni=1ai+∑ni=1⌊aix⌋∗(1−x)\sum_{i=1}^na_i+\sum_{i=1}^n\lfloor\frac{a_i}{x}\rfloor*(1-x) 维护桶的前缀和,枚举x和⌊aix⌋\lfloor\fr

2017-04-23 15:17:53 632

原创 [bzoj4671]异或图

题目描述定义两个结点数相同的图 G1 与图 G2 的异或为一个新的图 G, 其中如果 (u, v) 在 G1 与 G2 中的出现次数之和为 1, 那么边 (u, v) 在 G 中, 否则这条边不在 G 中. 现在给定 s 个结点数相同的图 G1…s, 设 S = {G1, G2, … , Gs}, 请问 S 有多少个子集的异 或为一个连通图?斯特林反演用贝尔数的时间来枚举子集划分。 规定被划

2017-04-22 15:31:42 1687 2

原创 GDOI冲刺训练模拟赛第三套总结

前言经过上两轮的试验,这次的策略差不多是上两轮的综合。DAY 1HNOI的题,但我虽然看过题面,也没有看过题解,而且也不是所有题都看过。 t4看到就吓死了,弃。 t3也吓死了,弃,不过可以写个40分暴力,然后发现过不了样例,读了一会儿后先弃。 t2推了一下,好像可以单调栈+主席树,感觉不是很难,思路和我出过的一道题很像。 t1那些操作看着挺猎奇,知道实质后就是LCT模板题,应该比较无脑。

2017-04-22 09:40:47 396

原创 [bzoj4827]gift

题目描述FFT首先可以看做第二个+c,这个c可以为负数。 把第二个倍长。 拆式子容易发现。 需要求出∑n−1i=0∑n−1j=0a[i]∗b[i+j]\sum_{i=0}^{n-1}\sum_{j=0}^{n-1}a[i]*b[i+j] 的最小值 求出这个剩余部分是关于c的二次函数,用初中数学知识求解。 这个玩意怎么求》考虑把b翻转。 设c[2n−j]=∑n−1i=0∑n−1j=0a[

2017-04-21 15:32:20 772

空空如也

空空如也

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

TA关注的人

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