自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

L_0_Forever_LF的专栏

曾是一个OIer

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

原创 BZOJ4017: 小Q的无敌异或

对于第一问求所有区间异或和的和,将二进制位拆位考虑,对于每一位,就是求有多少个区间这一位有奇数个1,这个东西可以dp[i][0/1]表示i为右端点的区间,有偶数/奇数个1的左端点个数 对于第二问求区间和的异或和 先拆位,二进制第k位为1相当于和在Mod 2k+1Mod\ 2^{k+1}下>=2k>=2^k 一种做法是用∑ri=la[i]=sum[r]−sum[l−1]\sum_{i=l}^r

2018-01-24 13:32:55 770

原创 BZOJ2330: [SCOI2011]糖果

发现自己学了假的差分约束qaq 有几种关系 x=y/x>y/x>=yx=y/x>y/x>=y 分别对应x>=y,x=y/x−1>=y/x>=yx>=y,x=y/x>=y所有关系都是形如x+c>=yx+c>=y的形式,要求总数最小,可以把关系变成x>=y−cx>=y-c的形式,把x,y看成到x,y的最长路,发现就是一条y连向x,权为−c-c的边,此时因为对于每个x,取得值是满足所有不等式x

2018-01-23 17:18:41 321

原创 Lydsy12月月赛

A 题解的结论不会证呀… 所以我没做= =B 考虑一种比较暴力的做法,dp线段树的节点 f[i][0/1],g[i][0/1]表示i节点匹配/未匹配,的最大匹配数/最大匹配下的方案数f[i][0/1],g[i][0/1]表示i节点匹配/未匹配,的最大匹配数/最大匹配下的方案数 可以发现因为是线段树的结构,区间长度相同的节点dp值是相同的 记忆化一下就过了code:#in

2018-01-23 11:24:15 261

原创 BZOJ3812: 主旋律

cls在wc讲的神题,无限Orz直接求原图强联通的生成子图个数不好求,考虑用总方案数减不是强联通的方案数 如果原图不是强联通,缩点后一定是一个点数>1的DAG 有一个比较暴力的做法,即枚举每个强联通分量,将它缩点 令f[S]表示枚举了S内的强联通分量DAG的个数,cnt[S]表示S内的边数f[S]表示枚举了S内的强联通分量DAG的个数,cnt[S]表示S内的边数 由于一个DAG一定有出

2018-01-22 20:34:18 465

原创 2018“Splay杯”GDKOI模拟赛Round 1

T1:排序后二分+贪心(其实可以不二分 code:#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#define ll long l

2018-01-22 12:31:14 320

原创 UOJ Easy Round #7

短路 发现路线只会向右或下走,且一定是走到了某一个层环后沿环绕到右下然后用来时相同的花费走回去 枚举走到哪一个环,线性处理出走到这个环的最小花费 dp出左上走到第i层环左上角的最小花费,算贡献时贪心找1~i-1中最小的环code:#include#include#include#include#include#include#include#include#inc

2018-01-19 20:43:07 280

原创 BZOJ1931: [Shoi2007]Permutation 有序的计数

设给定的排列为T,题中所给符号用f(T)表示(懒得打 枚举排列S 枚举S从第i+1位开始比T小,那么S的前i位和T相同,设前i位得到的价值为c,i+1~n位就需要提供f(T)-c的价值 设i+1~n中有k个数没有在T的1~i位出现,则S的i+1~n位只能由这k个数中的f(T)-c个数提供价值,带上一个Cf(T)−ckC_k^{f(T)-c}的系数 那么剩下的k−(f(T)−c)k-(f(T

2018-01-17 21:23:30 296

原创 4424: Cf19E Fairy

如果原图没有奇环显然每条边都可以砍 下面讨论有奇环的情况 显然每个奇环都要砍到,所以砍的边一定在这些奇环的交中 然后有个结论,在交中砍边 1:砍的边一定不能在偶环上 2:只要不在偶环上,就是一个合法的方案证明: 不妨设我们砍的是树边 砍掉之后,设分开的两部分为A,B,如果不考虑这些奇环的非树边,A,B分别是二分图(树是二分图 考虑这些非树边,如果这个图不是二分图,就存在奇环,一

2018-01-16 21:55:42 404

原创 BZOJ3868: The only survival

根据1到i的最短路dis[i],将原图中的点分成k+2层0~k+1,k+1代表>=k 枚举每一层的点数,然后做个n^2的dp算这种分层图连边的方案数,再乘个这种分层的组合数 dp算的时候,如果算0~i-1层的点连向i层的点的连边方案数,用使其距离>=i的方案数减去使其距离>i的方案数就行了复杂度大概是O(CKNn2logn)O(C_N^Kn^2logn)的吧 code:#includ

2018-01-15 22:03:35 451

原创 BZOJ3867: Nice boat

每次区间改成一个数,或者所有>=x的数和一个数x取gcd 和一个数取gcd大概log次就取成1了 又有区间覆盖 线段树维护一下这个区间是不是全部相同,全部相同就一起改否则递归下去暴力改 复杂度大概是nlog^2的?code:#include#include#include#include#include#include#include#include#inclu

2018-01-15 21:45:22 225

原创 BZOJ3866: The Romantic Hero

nf[i][j]表示1~i,异或和为j的方案数,g[i][j]表示i~n,与起来为j的方案数 算答案的时候要去重 比如枚举分界点i,限制i一定在左集合内,就可以不重不漏了code:#include#include#include#include#include#include#include#include#include#include#include#i

2018-01-15 21:40:55 282

原创 BZOJ5118: Fib数列2

这个2比1简单吧..P−−√\sqrt P判一下发现模数是个质数因为有这个公式Fn=15√[(1+5√2)n−(1−5√2)n]Fn=\dfrac{1}{\sqrt5}[(\frac{1+\sqrt5}{2})^n-(\frac{1-\sqrt5}{2})^n] 用二次剩余弄出在模这个质数下的5√\sqrt5,令A=1+5√2,B=1−5√2A=\frac{1+\sqrt5}{2},B=

2018-01-14 16:59:42 406

原创 BZOJ5104: Fib数列

首先我们有Fib数列第n项的通项 Fn=15√[(1+5√2)n−(1−5√2)n]=NFn=\dfrac{1}{\sqrt 5}[(\frac{1+\sqrt5}{2})^n-(\frac{1-\sqrt5}{2})^n]=N 先推一波柿子 (1+5√2)n−(1−5√2)n=5√N=T(\frac{1+\sqrt5}{2})^n-(\frac{1-\sqrt5}{2})^n=\sqrt5

2018-01-14 15:56:43 963

原创 二次剩余学习笔记

两篇比较好的blog,第二篇介绍了一些拓展的东西 http://blog.csdn.net/a_crazy_czy/article/details/51959546 http://blog.miskcoo.com/2014/08/quadratic-residue因为个人数学不好,学这东西很多东西感性的理解就过掉了qaq,这里的笔记并不严谨以下讨论的是模数P为奇素数的情况先定义一个

2018-01-13 16:24:26 2876

原创 BZOJ3864: Hero meet devil

这题吼厉害呀,Orz cls假设我们知道了最终串T,考虑求T和S求LCS的过程,f[i][j]表示串T的前i位和串S的前j位的LCS最长是多少,有f[i][j]=max(f[i−1][j],f[i][j−1],f[i−1][j−1]+1)f[i][j]=max(f[i-1][j],f[i][j-1],f[i-1][j-1]+1) 易证0=f[i][j]−f[i][j−1]=10,我们可以对这

2018-01-13 15:30:48 438

原创 BZOJ3863: The Revenge of the Princess’ Knight

一个环,把他分割成恰好k段,使字典序最大的段最小 可以旋转 这题和code festival 2017 qual B 的F挺像的 不过那题是给你字符,让你随便拼,这题倒着理解是把环上相邻的字符拼在一起直到剩下k段 但是贪心的思想是类似的把一开始的所有字符视作一个串Si,把这n个串和他们在环上前一个串Ti塞进一个multiset,每次取出最大的串Sx(如果有多个最大的串就取出Tx最小的)

2018-01-13 10:18:05 404

原创 BZOJ3862: Little Devil I

肯定是树剖做分析一下3种操作 1:翻转一条链,直接翻 2:翻转与一条链相邻的边 可以发现,与一条链相邻的边中,是与父亲相连的边只有顶端的那一条,这一条可以直接暴力翻转,然后我们重新定义与链相连的边是链上每个点和儿子相邻的边中不在链上的边 考虑链上每个点和儿子的边,按轻重分类,对于轻边,我们也不需要考虑他们,因为查询时遇到的轻边是log条的,我们可以对这个点打标记,查询时暴力查询每条轻边父亲的

2018-01-13 09:54:42 314

原创 BZOJ3677: [Apio2014]连珠线

这题刚了好久的treedp,一直WA比较大的点,不知道哪里错了以为我想法错了看题解结果都说换根好做些不换根很多特殊情况…. 咱觉得咱的想法没问题..,应该是一些细节没考虑好,又想了想一些反例就过去了题解部分: 最终答案选的蓝边一定是若干组相邻的树边,用中间点统计和,考虑什么样的分组是合法的 以下给出一些反例: 不合法的情况很多,但可以根据加点的2种方法,总结成以下的东西:设一组蓝边为

2018-01-12 20:26:24 452

原创 BZOJ3859: Periodic Binary String

我们可以旋转串T,使得l~r等价于0~r-l 根据(r-l)%k可以将T分成T1,T2两部分,问题变成满足0<=a<2|T1|,0<=b<2|T2|0<=a<2^{|T1|},0<=b<2^{|T2|},pa+qb≡x(Mod p)pa+qb≡x (Mod\ p)的解数 也即0<=a<A,0<=b<B0<=a<A,0<=b<B 记A=k1p+ka,B=k2p+kbA=k1p+ka,B=k2p+

2018-01-10 22:11:58 402

原创 BZOJ3861: Tree

因为反正也不知道哪个集合对应哪个,可以先将点集做一个映射,所以我们可以将点集变成{1,2,3,4}{5,6}{7,8,9}类似这样,好看又方便处理每个点集连向的点要么是他前面要么后面,可以f[i][j]表示前i个点集,还有j个点集没有匹配点,图的方案数,因为知道了i和j,前面还有多少个点可供匹配就知道了,没有必要用额外的一维表示然后就可以dp啦转移的话我是每个点集内枚举每个点转移,f[i][j][0

2018-01-10 20:33:53 279

原创 BZOJ3858: Number Transformation

这个结论不明显啊… 这种题还是打表找规律吧结论:如果当前的数是x,进行到第i次操作,若i>x√i>\sqrt x,则之后的每次操作x只会加一个不变的定值x/ix/i证明: 当i>x√i>\sqrt x时,设x=kix=ki,则i>x√,k<x√i>\sqrt x,k<\sqrt x,要使x变成(i+1)的倍数,有一个解是(i+1)k=x+k>x(i+1)k=x+k>x,我们要求新的值最小,但(i

2018-01-09 17:13:45 283

原创 BZOJ3857: Multiplication table

给了一个K进制的乘法表,给0~K一个映射,给出映射后的乘法表要求复原这个映射0和1是很容易知道对应哪个的 对于2~K-1(%dalao发现)有一个规律…,即x的那一行/列的乘积,首位数字有x种…. 然后就AC了… 小心PE..code:#include<set>#include<map>#include<deque>#include<queue>#include<stack>#inc

2018-01-09 17:06:02 291

原创 BZOJ3855: Light

一开始有些灯是灭的有些灯是亮的,每次选一个位置,翻转他四个相邻的灯的状态,他的状态可翻可不翻轮廓线dp 有一个朴素的四进制状态,代表每个位置是否是亮的及操作次数的奇偶 但是4^n*n^2会T 考虑减少状态 注意到当前位置上一行的对应位置,如果是亮的,当前位置一定要操作,而一次操作之后不管上一行是否会翻转当前位置,因为操作时中心格可翻可不翻,他的两种状态都能够到达,所以当一个位置是亮的时候没有

2018-01-07 16:45:23 275

原创 BZOJ3853: GCD Array

对原序列中所有(x,m)=d的ax+v,询问前缀和 对这个修改推一波柿子(以下省略下取整) v∑nx=1(x,m)=d−>v\sum_{x=1}^n(x,m)=d-> v∑n/dx=1(x,m/d)=1−>v\sum_{x=1}^{n/d}(x,m/d)=1-> v∑n/dx=1∑D|(x,M)μ(D)−>v\sum_{x=1}^{n/d}\sum_{D|(x,M)}μ(D)-> v∑D|

2018-01-05 08:02:23 391

原创 BZOJ3851: 2048

显然只有2的幂次对产生2048有用,即20,21,22....2112^0,2^1,2^2....2^{11} f[i][j]表示前i个2的幂次,合并了j个2i2^i的子序列数code:#include<set>#include<map>#include<deque>#include<queue>#include<stack>#include<cmath>#include<ctime>

2018-01-04 22:06:02 255

原创 BZOJ3850: ZCC Loves Codefires

考虑最优的顺序满足什么性质 设两个部件A,B顺序为A在B前面,费用分别是a,b,耗时ta,tb,中间部分费用和S,耗时和T 如果最优顺序中A在B前面(A,B前后的部件显然不需要考虑),则有 ata+Sta+b(ta+T+tb)<btb+Stb+a(tb+T+ta)at_a+St_a+b(t_a+T+t_b)<bt_b+St_b+a(t_b+T+t_a) 得Sta+bta+bT<Stb+a

2018-01-03 14:15:47 323

原创 BZOJ3847: ZCC loves march

每个点如果不考虑被分裂出去,他至多只会被合并一次,维护两个set,每次合并可以暴力找出这一行/列的所有点,并查集资瓷一下合并成一个点,每次分裂可以直接新建一个点代表这个分出去的点code:#include<set>#include<map>#include<deque>#include<queue>#include<stack>#include<cmath>#include<ctime>

2018-01-03 12:29:17 433

原创 BZOJ3846: ZCC loves words

注意到模数5047621=179*173*163 拆成这3个质数算,EXCRT合并 建立AC自动机,在上面dp,套个矩乘 但是发现在i位置匹配一个长度为k的单词j,贡献是(i+k)*prime[j],对于不同的i贡献不同,又因为模数<200,最多只有100+种矩阵,处理出循环节就可以矩乘了code:#include<set>#include<map>#include<deque>#inc

2018-01-03 11:55:46 331

空空如也

空空如也

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

TA关注的人

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