自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Cold_Chair的博客

一位蒟蒻的事故记录

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

原创 【NOIP2017提高A组集训10.28】图

Description:有一个n个点A+B条边的无向连通图,有一变量x,每条边的权值都是一个关于x的简单多项式,其中有A条边的权值是k+x,另外B条边的权值是k-x,如果只保留权值形如k+x的边,那么这个图仍是一个连通图,如果只保留权值形如k-x的边,这个图也依然是一个连通图。 给出q组询问,每组询问给出x的值,问此时这个无向连通图的最小生成树权值是多少。1<=n,q<=100000 , n-1<

2017-10-30 20:25:33 399

原创 【NOIP2017提高A组集训10.28】三元组

Description:有X+Y+Z个三元组(x[i],y[i],z[i]),请你从每个三元组中挑数,并满足以下条件: 1、每个三元组中可以且仅可以选择一个数(即x[i],y[i],z[i]中的一个) 2、选择x[i]的三元组个数恰好为X 3、选择y[i]的三元组个数恰好为Y 4、选择z[i]的三元组个数恰好为Z问选出的数的和最大是多少 问选出的数的和最大是多少.1<=X+Y+Z<=500

2017-10-30 20:03:37 395

原创 【NOIP2017提高A组集训10.28】序列操作

Description:一开始有n个非负整数hi,接下来会进行m次操作,第i次操作给出一个数c[i],要求你选出c[i]个大于零的数并将它们减去1。 问最多可以进行多少轮操作后无法操作(即没有c[i]个大于零的数) 1<=n,m<=1000000题解:对于一个数据结构学傻的人来说,一上来就会上什么平衡树之类的东西。每次去c个,显然取当前最大的c个会优。 但是你发现如果对最大的c个数-1,也许相

2017-10-30 19:51:04 462

原创 【NOIP2017提高A组集训10.21】Dark

Description:LichKing 希望收集邪恶的黑暗力量,并依靠它称霸世界。 世间的黑暗力量被描述成一个长度为N 的非负整数序列{Ai},每次它可以选择这个序列中的两个相邻的正整数,让他们的值同时减一并获得一点邪恶力量,直到不存在满足条件的数。 然而你不希望他能够得逞,所以你会使得他收集的能量尽可能少。 1<=n<=1e5,1<=∑ni=1ai\sum_{i=1}^n a_i<=5e6

2017-10-27 19:20:11 374

原创 【NOIP2017提高A组模拟10.8】Lost My Music

Description: 1<=n<=5∗1055*10^5题解:由于本人太弱,不会什么斜率优化,所以只能这样做了: 设答案为Ans。cv−cudis(u,v)<=ans{c_v-c_u\over dis(u,v)}<=anscv−cudepu−depv<=ans{c_v-c_u\over dep_u-dep_v}<=anscv−cu<=ans∗(depu−depv)c_v-c_u<=ans*(

2017-10-25 20:26:57 543

原创 【NOIP2017提高A组模拟10.8】Star Way To Heaven(欧几里得距离最小生成树Prim做法)

Description: k<=6000,n,m<=10^6题解:直接想找到这样一条路径是很难的。可以考虑二分答案r,对k个star都建一个半径为r的圆,那么对于两个相交的圆把它们弄到一个集合,对上下边界特殊判断,如果说上下边界被弄到了一个集合,即说明,有若干个圆将矩形拦腰折断,分成了两个不连通的部分,则这个答案不合法。其实也可以对n个点进行欧几里得距离最小生成树,当然,边界特盼,什么时候上下边界

2017-10-25 20:02:36 2389

原创 【WinterCamp 2013】楼房重建 && 【NOIP2017提高A组模拟10.8】God Knows

感谢czy的题解。这两题是类似的。转换以后都是这样的: 有一个序列a[1..n],每次询问对a[i-j]之间的元素做一个(递增或递减)单调栈,求单调栈里有多少个元素,或者是还有b[1..n],求做了单调栈以后,单调栈里的元素对应的b的极值。 有修改,为单点修改。做法其实本质是利用线段树的分治思想。假设建的是递减的单调栈,求单调栈里元素的个数。设query(l,r,p)表示在a[l..r]所形成的

2017-10-25 19:32:28 595

原创 51nod 1318 最大公约数与最小公倍数方程组

原题链接.题解:首先分解质因数,gcd就相当于指数的min,lcm就相当于指数的max。于是问题变成了这样: 给出一坨类似于以下的限制: min(a,b) = c max(a,b) = c 问是否有解?以min为例.min(a,b) = c 即(a >= c) and (b >= c) and (a = c or b = c)注意到指数是很小的,c不超过三十。于是可以把x拆成31(0->3

2017-10-23 20:05:33 670 1

原创 2-SAT学习小记

推荐博客:【研究总结】2-sat问题问题描述:现在有n个集合,每个集合里有一些元素。 现在要求从每个集合里选出一个元素,并且两两集合选出的元素有限制…… 记一个集合里最多有k个元素,那么这个问题称作k-sat问题。 k=2即是2-sat问题,是有价值讨论的问题。 当k>=3时,被证明是NP完全问题,是无法在多项式复杂度内求解的。例题引入:poj上的一道裸题。 有n个未知数x,值只能是0或1

2017-10-21 08:14:04 344

原创 51nod 1584 加权约数和

原题链接.题解:必知知识:σ(n)是n的约数和。 若n=∏pqiin=\prod p_i^{q_i} 则σ(n)=∏∑qij=0pjiσ(n)=\prod \sum_{j=0}^{q_i} p_i^j =∏pqi+1i−1pi−1=\prod { p_i^{q_i + 1} - 1\over p_i - 1} 知道了这个就可以线性筛法了,如有不懂得见code。必要结论:σ(i∗j)=∑p|i

2017-10-09 20:44:04 503 2

原创 51nod 1220 约数之和

原题链接.题解:必要结论: σ(i∗j)=∑p|i∑q|jp∗jq(gcd(p,q)=1)σ(i*j)=\sum_{p|i} \sum_{q|j} p *{ j \over q} (gcd(p, q) =1) 证明: ∑p|i∑q|jp∗jq(gcd(p,q)=1)\sum_{p|i} \sum_{q|j} p *{ j \over q} (gcd(p, q) =1) =∑p|i∑q|jp∗

2017-10-09 18:52:37 430

原创 51nod 1223 分数等式的数量

原题链接.题解:Ans=∑ni=1∑i−1j=1i+j | i∗jAns = \sum_{i = 1}^n \sum_{j = 1}^{i-1} i + j ~| ~i * j =∑nd=1∑n/di=1∑i−1j=1d(i+j) | i∗j∗d2(gcd(i,j)=1)=\sum_{d = 1}^n \sum_{i=1}^{n/d} \sum_{j=1}^{i-1}d(i+j)~ | ~i*j*

2017-10-09 12:18:19 323

原创 【NOIP2017提高A组模拟10.7】Confess

Description:小w 隐藏的心绪已经难以再隐藏下去了。 小w 有n + 1(保证n 为偶数) 个心绪,每个都包含了[1,2n] 的一个大小为n 的子集。 现在他要找到隐藏的任意两个心绪,使得他们的交大于等于n/2 。题解:设第i位的1的总数是cic_i 那么显然有∑2ni=1ci=n(n+1)/2\sum_{i=1}^{2n} c_i = n(n+1)/2两集合交的期望是: ∑2ni

2017-10-07 16:17:09 460

原创 【NOIP2017提高A组模拟10.7】Repulsed

Description:小w 心里的火焰就要被熄灭了。 简便起见,假设小w 的内心是一棵n -1 条边,n 个节点的树。 现在你要在每个节点里放一些个灭火器,每个节点可以放任意多个。 接下来每个节点都要被分配给一个至多k 条边远的灭火器,每个灭火器最多能分配给s 个节点。 至少要多少个灭火器才能让小w 彻底死亡呢? n <= 10^5, k <= 20, s <= 10^9题解:贪心题都是

2017-10-07 16:00:18 781

原创 51nod 1323 完美平方

题目链接.异或方程组高斯消元例题。每个元素选与不选设为未知数。同一行同一列搞个方程。至于是完全平方数就分解质因数,对每个质因子建一个方程。答案是2的自由元个数次幂。自由元个数=元的个数-有用方程的条数。其实我到现在才知道高斯消元非三角矩阵的打法,感觉以前学了假的消元。可以用bitset优化,很简单,这里不讲。算法竞赛入门经典这本书里有一道类似的题,打法也是从那里...

2017-10-06 21:59:40 455

原创 51nod 算法马拉松29 C题 美丽的集合

原题链接。这其实是我第一次在算马上交题,但是我太弱了,除了这题,都不会。每次合并两个集合其实就是把一个集合的元素弄到一个集合里去做01背包。竟然有集合合并,那显然要启发式合并了,这样最多提出n log n个元素。但是如果暴力01背包每次的复杂度是10^5,难以接受。注意到这个01背包非常特殊,它只要求是否能够凑成这个体积,所以这是一个布尔值。 于是bitset就可以用了,每次暴力左移,再或上去就行

2017-10-06 19:31:38 421

原创 自然数幂和(差分表法)

问题:求∑ni=1ik\sum_{i = 1}^n i^k (1<=k<=2000) 模数为大于n的质数。题解:这个东西可以证明k次的自然数幂和一定是个k+1次的多项式,对拉格朗日插值法有点帮助。二次项展开: (n+1)k−nk(n+1)^k-n^k =∑k−1i=0Cik∗ni=\sum_{i=0}^{k-1}C_k^i*n^i∑ni=1((i+1)k−ik)=(n+1)k−1\sum_{

2017-10-06 19:14:01 908

原创 自然数幂和(拉格朗日插值法)

今天A组的第一题是这个 Σ(☉▽☉”a题目:∑ni=1ik\sum_{i=1}^n i^k 对一个大于i的质数取模。 1解法:不懂拉格朗日插值法的戳这儿。

2017-10-06 16:30:34 1556

原创 拉格朗日插值法学习小记

此篇博客只是总结,具体详尽的定义证明请自己找论文,PPT。插值函数:假设现在有一个很恶心的函数f(x),它是不规则的。 现在我们要构造出一个函数g(x),它是f(x)的近似函数。想要构造出g,一种方法是从f上找几个点,然后构造g,使得g经过这些点。插值函数有很多种,我所说的是多项式插值。就是用代数多项式做插值函数的插值。 如果确定了k+1个点,那么g(x)是一个k次多项式。根据证明,满足一组合法

2017-10-06 15:58:57 1409

原创 【NOIP2017提高A组模拟10.5】Ping

题目大意:给出一棵n个节点的树,和一些树上的路径,求最少选出多少个点能使得每条路径里都至少有一个选出的点。 1<=n<=10^5题解:这题的经典版就是树是一条单链。初一的贪心做法是按照右端点排序,然后每次选右端点最前的区间的右端点,把覆盖它的区间delete掉,继续做,证明显然。 除去排序的复杂度,可以O(n)扫一遍做到。树上的话就比较6了。 随便选一个点为根,搞出dfs序,把各条路径的lca

2017-10-05 20:22:20 344

空空如也

空空如也

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

TA关注的人

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