随笔分类 -  题解

摘要:设a[i,j]=0/1表示格子的颜色,由题意,f(i,j)=a[i,j]^a[i+1,j]^a[i,j+1]^a[i+1,j+1]=1。 对于约束a[x,y]=c(x 1,y 1), ^^f(i,j)(11,y 1)这样的约束……可以和假设的a[1,1]绑定…… 再对于a[1,1]=c这样的……就没 阅读全文
posted @ 2019-06-12 07:57 nosta 阅读(132) 评论(0) 推荐(0)
摘要:由Lucas定理,C(n,m)%P=C(n%p,m%p) C(n/p,m/p)可知C(n,m)为奇数的充要条件是(n&m)=m。 考虑到ai using namespace std; const int N=233335; const int mod=1000000007; int n,a[N],p 阅读全文
posted @ 2019-06-10 23:13 nosta 阅读(183) 评论(0) 推荐(0)
摘要:倍长数组$T$。 若从$x$出发,依次标记完所有物品的代价为$n 1+\max_{i=x}^{x+n 1}\{T_i (i x)\}$,如果某个物品$y$被跳过一次才取到,则取到$y$时的增加的代价/固有时间$n$,而减少的代价/等待时间却不会超过$n$,因为$y$在绕一周之后能够被标记到,总不会减 阅读全文
posted @ 2019-06-10 21:34 nosta 阅读(259) 评论(0) 推荐(0)
摘要:树上路径带修第k大问题,没有强制在线。 ~~主体~~思想:l[x]为点x的dfs序,r[x]为子树x中最后一个节点的dfs序,sum[i]为dfs序为1~i的节点的某种和,d为x,y的lca,则路径x~y的和=sum[l[x]]+sum[l[y]] sum[l[d]] sum[l[fa[d]]]。单 阅读全文
posted @ 2019-06-10 17:28 nosta 阅读(236) 评论(0) 推荐(0)
摘要:显然,随机产生的n个节点二叉树共有n!中结构,且出现每种结构的概率相同,因此之需求所有方案的不方便度之和即可。 让边的编号为儿子节点的编号。考虑边i(i∈[2,n])在所有情况下产生的贡献?( 很重要的方法 ) 枚举点i的子树大小t(t∈[1,n i+1]),对应的每张方案边i都有t(n t)的贡献 阅读全文
posted @ 2019-06-10 14:07 nosta 阅读(119) 评论(0) 推荐(0)
摘要:用并查集合并相同的点,答案为9 10^{并查集的块数 1}。 由“区间对区间的”可以联想到线段树优化之类的方法,换成倍增会更简单~ ~~~cpp include define ll long long using namespace std; const int N=1e5+10; const in 阅读全文
posted @ 2019-06-10 12:40 nosta 阅读(127) 评论(0) 推荐(0)
摘要:令1为树根,T=Σd[i],sum[x]是子树x中的d之和,dis[x]是节点x的带权深度。 对于节点x的儿子y,边长为w,如果y比x更优,则(T sum[y])\ w sum[y]\ w=T/2。 换句话说,若存在sum[y] T/2,显然y更优,且y只存在一个(对于x);若存在sum[y]=T/ 阅读全文
posted @ 2019-06-10 11:31 nosta 阅读(313) 评论(0) 推荐(0)
摘要:推式子 $$ f(n)=\sum_{i=0}^n\sum_{j=0}^iS(i,j)\times 2^j\times (j!)\\ =\sum_{i=0}^n\sum_{j=0}^nS(i,j)\times 2^j\times (j!)=\sum_{i=0}^n2^i\times (i!)\sum_ 阅读全文
posted @ 2019-06-08 21:51 nosta 阅读(198) 评论(0) 推荐(0)
摘要:热闹度$p$子图中最小的度数,尴尬度$q$独立集大小,之间的约束 $$ \begin{aligned} \lfloor n/(p+1)\rfloor\le q &\rightarrow \lceil(n p 1+1)/(p+1)\rceil\le q\\ &\rightarrow \lceil(n 阅读全文
posted @ 2019-06-08 16:10 nosta 阅读(313) 评论(0) 推荐(0)
摘要:分析 阶梯NIM模型:共有m+1堆石子,石子总数不超过n m,求必胜的,即奇数堆石子数目异或和非零的局面数。补集转化,答案C(n,m) 奇数堆石子数目异或和位0的局面数。 可以想到按位dp,设f[i,j]表示已经考虑了前i位(异或和0),石子和为j的方案数;转移时考虑下一位出现的被统计1的个数k,k 阅读全文
posted @ 2019-06-05 21:26 nosta 阅读(228) 评论(0) 推荐(0)
摘要:problem 求满足$\sum_i[p_i=\max_{j=1}^i p_j]=a$,$\sum_i[p_i=\max_{j=i}^n p_j]=b$的1到n的排列p的个数。 solution 设f[i,j]为从大到小地向序列中加入i个数,形成了j个前缀最大值的情况,转移有 $$ \begin{a 阅读全文
posted @ 2019-06-04 13:22 nosta 阅读(116) 评论(0) 推荐(0)
摘要:和BZOJ5331贞鱼是同一题。 可以套上带权二分,$f[i]=\min_{j\in[0,i)} f[j]+w[j,i] c$,其中$w[j,i]=\frac{s[i,i] s[i,j] s[j,i]+s[j,j]}2$,显然满足四边形不等式,进而方程具有决策单调性。 一开始在luogu上了几次结果 阅读全文
posted @ 2019-06-03 15:41 nosta 阅读(173) 评论(0) 推荐(0)
摘要:例题 长度为n的正整数序列分为m段,求每段和的方差乘以m^2的最小值。——《SDOI2016 征途》 例题 solve(fake) 设分为$m$段每段长度为$x_i$,此时的答案为 $$ m^2\frac{\sum_i(x_i \bar x)^2}{m}=m\sum_ix_i^2 2m\bar x\ 阅读全文
posted @ 2019-06-03 11:01 nosta 阅读(314) 评论(0) 推荐(0)
摘要:大佬每天给出的伤害是固有的,设dp[i,j]表述使得前i天结束时我的自信为j最少做水题的天数。D=max(i dp[i,j])就是总共拿来给伤害的最大天数。打伤害一类是固定的伤害1,一类是积累伤害打出(最多用两次)。不妨暴力搜索积累伤害的情形c(d,f),即我们用了d天积累了f的伤害。 若D =hp 阅读全文
posted @ 2019-05-31 11:39 nosta 阅读(212) 评论(0) 推荐(0)
摘要:神题啊!~~干了一年才AC~~ 首先由于各个操作的时间严格上升,因此在某此操作中,还没被删除的云朵是可以是为永久存在的;这样,又由于云的运动速度大小相同,即周期都为2len,将云的左端点一个周期的往返运动画在T(ime) P(osition)图象上,类似下图中的蓝线;而红线即为云朵右端的图像。 (图 阅读全文
posted @ 2019-05-27 20:48 nosta 阅读(319) 评论(0) 推荐(0)
摘要:之前遇到的题完全无印象,倒是本地有一份题解,略作修改放上来。 [NOI2006]神奇口袋 题目 一个口袋中先放有$a_i\;(1\le a_i,\;1\le i\le t)$个$i$颜色的球。若在第$i$次从中取到的球色为$C_i$,则要向口袋中放入$d$个与之同色的求,取到的球也要放回。每个球被取 阅读全文
posted @ 2019-05-25 18:15 nosta 阅读(237) 评论(0) 推荐(0)
摘要:设f\[x\]为从x跑到1的最小花费,基本转移如下 $$ \left\{ \begin{aligned} f[1]&=0\\ f "x]&=\min_{dep[x] dep[y]\le l[x]} f[y]+p[x" +q[x]\\ &=p[x]dep[x]+q[x]+\min_{dep[x] de 阅读全文
posted @ 2019-05-24 16:58 nosta 阅读(260) 评论(0) 推荐(0)
摘要:贼有意思的一道题。考虑把费用给转化一下,观察 如果定义叶节点的状态 {{A,0},{B,1}},非叶节点的状态 {{nA =nB,0},{nA define ls (x 1; int key=!(1&(set (dep i))); //相异有贡献 if(l 1,len=r l+1; lq[dep]= 阅读全文
posted @ 2019-05-23 22:31 nosta 阅读(320) 评论(0) 推荐(0)
摘要:考虑任意一种划给大头的方案,两端的都给了大头(bel=1)的边产生难受值,剩下n k个果子分给m 1个头,当m 1=1时,两端都给了这个小头也产生难受值;而m 1 1的情况要好看的多,贪心的,因为未划分的果子构成一个森林,重新计算这些果子在所在树中的深度,把果子按深度排序,前m 1个个分别划分,剩下 阅读全文
posted @ 2019-05-23 17:04 nosta 阅读(250) 评论(0) 推荐(0)
摘要:好久没更新博客了…… 说说本题,预处理出所有的dis[x]表示1至x的长度,询问(v,p)的答案为min_{minLev(x,v) p} dis[x]。建立关于lev从大到小的kruskal重构树,则minlev(x,v)=val[lca(x,v)]。 换句话说,任意在重构树v的某个祖先d有val[ 阅读全文
posted @ 2019-05-23 15:48 nosta 阅读(191) 评论(0) 推荐(0)