自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

neither_nor

alone_wolf

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

原创 BZOJ4836 [Lydsy2017年4月月赛]二元运算

如果只是求x+y=c的对数可以直接fft预处理每个c的答案然后O(1)出解求x-y=c就把底下那个翻转一下然后fft但是他要求在x=y的时候是x-y=c还是考虑预处理每个c的答案然后O(1)出解那么我们就考虑分治,对于权值区间[l,r],对x在[l,mid],y在(mid,r]里的做一次fft,对x在(mid,r],y在[l,mid]里的做一次fft,这样就算出了跨mid的所有数对

2017-04-28 11:00:01 1367

原创 BZOJ4835 [Lydsy2017年4月月赛]遗忘之树

f[x]表示分治树以x为根的子树的情况数f[x]就等于对于每个分治儿子y,f[y]*siz[y]的乘积但是注意到如果有两个重心他要求最小那个所以如果有一个分治子树大小恰好等于本身子树大小/2,那么对于这个子树乘的就是f[y]*siz(y,x),siz(y,x)代表y的分治子树内标号比x大的点的个数因为分支结构的树高是log的,所以sigma 子树大小也是log的(因为sigma 子

2017-04-27 20:31:02 827

原创 BZOJ4872 [Shoi2017]分手是祝愿

YY一下给定一个局面怎么求最少步数,就是可以转换成一个异或方程组,然后令所有变量的和最小我们可以发现把这个异或方程组用矩阵表示出来之后,他的对角线是1,而下三角里全是0……也就是说不需要消元,并且有唯一解那么我们还知道这个矩阵的结构比较特殊(只有在i的约数行第i列才为1),那么我们可以直接预处理每个数的所有约数然后爆解,由调和级数知解出来的复杂度是n log n的那么考虑一下加入了

2017-04-24 15:15:18 1455

原创 BZOJ4868 [Shoi2017]期末考试

YY一下的话感觉代价关于最晚出分时间是一个单峰函数三分最晚的出分时间然后贪心一下算代价就行如果A>B就只用B就行了要不然的话出分时间小于当前限制的都可以随便往后调直到到达限制,那么先尽量用A,调不到限制以内的再用B即可#include#include#include#include#include#include#include#include#include

2017-04-24 15:03:33 954

原创 BZOJ4873 [Shoi2017]寿司餐厅

也是傻逼题,就是想不出来考虑最大权闭合子图,对于长度大于1的区间,区间[i,j]的前置条件就是[i+1,j],[i,j-1]对于单点区间[i,i],另其贡献减去a[i],并且前置条件是权值为m*a[i]*a[i]的点跑最小割就行了#include#include#include#include#include#include#include#include#incl

2017-04-24 14:56:17 1441

原创 BZOJ4870: [Shoi2017]组合数问题

人话题意:从nk个物品里选模k余r个物品,问方案数模P大傻逼题,绝对傻逼题,但是考场上没几个人想出来……太傻逼了f[i][j]表示前i个物品选模p余j个,然后矩乘即可#include#include#include#include#include#include#include#include#include#include#include#include#

2017-04-24 14:50:18 1890

原创 JLOI2017——相逢是问候,离别是祝愿

又是一年春花烂漫省选季,成绩公布,又有六省AB类省队尘埃落定不过逼话还是少说,我也说不出来什么逼话,老老实实写写流水账吧

2017-04-23 17:42:10 3391

原创 BZOJ2323 [ZJOI2011]细胞

代码短的一B考虑有n个分裂完的球,退化丝状物的方案数就是斐波那契数列因为考虑新加进来一个球,可以看成把他加在了最后,这时他一定会和前一个合到一起,那么就是f[i-1],而前一个因为后边有了一个可以和再前一个分开了,就是f[i-2]那答案就是sigma f[每种分割方案的球数]那么假设用f[i]来表示后i位的所有分割方案的矩阵的和的话,那么f[i]=sigma f[j]+cal(i,

2017-04-19 07:03:11 558

原创 BZOJ4827 [Hnoi2017]礼物

假设我们循环移动了x位,并另所有点都加了y,那么这时候的答案就是sigma (a[i+x]-b[i]+y)^2把上式展开,发现除了一项-2*a[i+x]*b[i]外,要么是常数项,要么是关于y的一次函数,都可以预处理然后O(1)算对于-2*a[i+x]*b[i],把b翻转,就是一个卷积的形式,FFT预处理即可那么枚举所有可能的x和y,然后取最小值即可#include#includ

2017-04-17 15:11:54 1606

原创 BZOJ4826 [Hnoi2017]影魔

对每个点i,单调栈求出左边和右边第一个大于i的位置,记为l[i]和r[i]那么(l[i],r[i])会产生p1的贡献左端点为l[i],右端点在[i+1,r-1]的点对都会产生p1的贡献右端点为r[i],左端点在[l+1,i-1]的点对都会产生p2的贡献将点对看成平面上的点,横坐标左端点纵坐标右端点,上述贡献分别对应单点加和线段加查询就是矩形求和用主席树维护即可#incl

2017-04-17 15:08:47 2187 3

原创 BZOJ4825 [Hnoi2017]单旋

HNOID1每道题都已小于2s的差距领先ljss交到BZ上23333论快捷键提交的优越性考虑一次插入了x,x的前驱为pre,后继为nxt,平衡树中排名相邻的两个点一定互为祖先关系,那么如果pre为nxt的祖先,x就插入到了nxt的左儿子,如果nxt为pre的祖先,x就插入到了pre的右儿子考虑把最小值旋到根的操作,最小值没有左子树,最小值的右子树变成了最小值父亲的左子树,根变成了最小值

2017-04-17 15:04:18 1808

原创 BZOJ4813 [Cqoi2017]小Q的棋盘

找以起点为起点的一个最长链,最优一定是在最长链上不走回头路的,所以相当于最长链上的边代价是1,非最长链的边代价是2(因为要走回去),每付出一次代价就可以使访问到的点数+1,那么贪心即可#include#include#include#include#include#include#include#include#include#include#include#includ

2017-04-14 14:16:27 1182

原创 BZOJ4818 [Sdoi2017]序列计数

看数据范围一眼矩乘f[i][j]表示前i个数,和模p余j用任意取的方案减去不取质数的方案即得到至少有一个质数的方案对任取和不取质数分别随便做个转移矩阵快速幂即可#include#include#include#include#include#include#include#include#include#include#include#include#inc

2017-04-11 17:17:00 551 2

原创 BZOJ4817 [Sdoi2017]树点涂色

BZOJ3779重组病毒弱化版注意到染色相当于在LCT上access这个点,一个点到根路径上颜色段数就是LCT上虚边的个数在access的时候同时在线段树上维护一下子树加减即可2操作就算出来两个点到根的答案,再减去LCA到根的答案*2,交界的地方特殊算算第三问就之间线段树询问区间最值就行#include#include#include#include#include#

2017-04-11 17:12:34 488

原创 BZOJ4816 [Sdoi2017]数字表格

我们要求∏i=1n∏j=1mf[gcd(i,j)]\prod\limits_{i=1}^{n}\prod\limits_{j=1}^{m}f[\gcd(i,j)]构造函数g,使得∏i|ng[i]=f[i]\prod\limits_{i|n}g[i]=f[i] 那么要求的就变成了∏i=1n∏j=1m∏d|iandd|jg[d]\prod\limits_{i=1}^{n}\prod\limits_{j

2017-04-11 17:07:21 424

原创 BZOJ4811 [Ynoi2017]由乃的OJ

显然用LCT维护一下经过一条链之后每一位原来是1会变成什么原来是0会变成什么即可这样的话LCT复杂度是n log n * k的,链剖是n log^2 n * k的,都过不了考虑把这个k给去掉,我们直接开两个unsigned long long,v0和v1,v0的每一位代表这一位原来是0的话经过这条链会变成什么,v1的每一位代表这一位原来是1的话经过这条链会变成什么那么考虑信息的合并,假

2017-04-07 15:04:09 1503 2

原创 BZOJ4810 [Ynoi2017]由乃的玉米田

对每个区间维护一下这个区间每个数有没有,用bitset压一下,这个用莫队跑出来,然后就能判加减合不合法了乘的话根号枚举一下就行了#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusing

2017-04-07 11:35:57 1425

原创 BZOJ2956 模积和

∑i=1n∑j=1m[i!=j](n%i)(m%j)\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}[i!=j](n\%i)(m\%j) =∑i=1n∑j=1m(n%i)(m%j)−∑i=1n(n%i)(m%i)=\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}(n\%i)(m\%j)-\sum\limits_{i=1}^{n

2017-04-07 08:44:07 577

原创 BZOJ4048/3928 [Cerc2014] Outer space invaders

容易发现对于距离你最远的那个外星人,你一定是要在某个时间打他一发的,并且这一发可以顺便带走出现时间区间包含了你打这个时间的其他外星人那么我们离散化一下,然后考虑区间DPf[i][j]表示把出现时间>i,消失时间为什么不是出现时间>=i,消失时间那么找到这些外星人里距离最远的,然后枚举在哪个时间打这个外星人,f[i][j]=min(f[i][k]+f[k][j]+d[x]),d[x]

2017-04-02 14:49:58 996 1

原创 BZOJ3717 [PA2014]Pakowanie

显然一定尽量用大的包,不妨把包排序然后考虑状压DP,f[i]表示取状态为i的物品,最少要多少个包,g[i]表示取状态为i的物品,用f[i]个包,最后一个包剩多少地方枚举最后一个加入的物品,判断能不能装进最后一个包里,转移即可这样复杂度是2^n*n的,过不了对于每个状态我们只枚举有1的位,把复杂度降到2^(n+1),就能过了大早上的感觉神志不太清醒,大于小于号打反,sort忘加c

2017-04-02 09:31:01 907

原创 BZOJ2612 [Poi2003]Sums

任取一个物品,假设其体积为V,那么我们可以在模V的意义下做背包,f[i]表示对于模V得i的物品,当体积>=f[i]时能被表示出来那么就可以跑最短路了不妨取体积最小那个,dijkstra的话理论复杂度是(5000*50000)logn,但是跑的飞起事实上我们可以取最大那个,然后令f[i]表示表示对于模V得i的物品,当体积>=f[i]*V时能被表示出来这样的话边权都为0或者1,那么我们

2017-04-01 15:55:23 652

原创 BZOJ3069 [Pa2011]Hard Choice 艰难的选择

删边不好做,我们考虑倒着来,这样变成加边先随便搞个生成树,为了方便不妨按删除时间做最大生成树,这样能保证先加入的一定是父子边,后加入的是非树边那么一次原来的删边操作就相当于把树上一条链上的点都缩起来用并查集维护即可#include#include#include#include#include#include#include#include#include#inc

2017-04-01 11:31:10 695

空空如也

空空如也

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

TA关注的人

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