自定义博客皮肤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的博客

一位蒟蒻的事故记录

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

原创 51nod 1643 小Q的家庭作业

Description:定义 f(n) 表示 1 到 n 这 n 个数,同 n 的最大公约数的和。 例如 f(1)=1,f(2)=3,f(3)=5,f(6)=15 ,比如 n=6 时 1,2,3,4,5,6 同 6 的最大公约数分别为 1,2,3,2,1,6 ,它们的和是 15 。 小Q遇到了一个问题,Nod老师要求他回家计算 g(n)=∑d|nf(d) 这个函数模 1000000007 的值,

2017-08-26 18:01:15 491

原创 【NOIP2017提高A组模拟8.25】影子

Description: 1<=n<=10^5题解:首先对于这种树上路径问题是很容易想到点分治的,细节比较复杂,也许需要一个set,常数爆炸。 比较联赛的做法是并查集。 先将点按权值从大到小排序。 依次枚举每个点,将它和与它相邻且权值大于它的点合并成一棵树。 每次合并,新树的直径的端点一定是原来两棵树中的两条直径的四个端点中的两个,这个易证。 直径上的最小值不一定是当前的点,但是这没有关

2017-08-25 16:10:12 488

原创 【NOIP2017提高A组模拟8.25】夜莺与玫瑰

Description: 1<=T<=10000,1<=n<=4000题解:好久没有比赛时切这么恶心的数论题了。显然的想法是枚举直线的斜率,再把这条直线塞到矩形里,平行于坐标轴的直线特判一下就行了。枚举斜率就是枚举个i,j,斜率就是j/i,保证(gcd(i, j) =1)就不会重复,斜率为负的是一样的,最后乘一个2即可。最后一个问题这条直线能塞到多少个地方。可以这么想:这条直线占了一个i*j的矩形

2017-08-25 14:05:58 1217

原创 【NOIP2017提高A组模拟8.24】提米树

Description: 1<=n<=100000题解:按dfs序dp。 设fif_i表示以dfs序中的第i个为叶子节点,能提供最多的决心。 盗一发题解图: 显然绿色节点会由橙色节点转移而来。 说具体的,就是dfs序上相邻的两个叶子节点x,y,y->lca路径上的点会由x->lca路径上的点转移而来。 暴力转移是O(n2)O(n^2)。 假设我们转移y->lca路径上的点时从上往下

2017-08-24 20:39:56 487

原创 【NOIP2017提高A组模拟8.24】早苗

Description: 2<=m<=100,2<=m<=n<=1e16题解:n这么大,这种题一看就是矩阵乘法的嘛。设fi,jf_{i,j}表示现在长度为i,后j种神风互不相同的方案数。 第一种转移就是当前选的神风和前面的j种都不同,显然有fi+1,j+1+=fi,j∗(m−j)f_{i+1,j+1} += f_{i, j} * (m - j)。 第二种转移就是当前选的神风和前面的j种中的一种

2017-08-24 20:16:28 455

原创 哈夫曼树学习小记

B组又现我不会的神奇东西了……定义:现在有n个元素,每个元素有一个值。 你需要把这n个元素放在一棵二叉树的叶子节点上,规定每个元素的代价为它所在叶子节点的深度乘上它的值,哈夫曼树就是使总代价最小的这样一棵树。运用:据说哈夫曼树是一棵最佳判定树,什么意思呢?举一个实例来看看。问题:给出一群学生的成绩,要你判断每个学生的成绩情况(不同分数段有不同的评价)。解法:这是一道信息学入门题,一贯的做法是打一坨

2017-08-24 15:37:22 2159

原创 【NOIP2017提高A组模拟8.23】密码

Description:题解:这肯定是数位dp,十分显然。 首先对n个串建一个AC自动机,这样我们就可以表示出当前dp的状态了。 设fi,j,k,0/1f_{i ,j, k,0/1}表示从高往低已经确定了前i个位,匹配数为j,包含当前第i位的后缀走到了AC自动机的第j位,是否顶满。 转移就相当于在AC自动机通过fail跳,预处理一下就行了。 可以维护一个数组表示在AC自动机上的第i个点,这个

2017-08-23 18:40:21 439

原创 【NOIP2017提高A组模拟8.22】密码

Description: 1<=n<=1e1000, 1 <= p <= 1e9, 1 <= k <= 1e9题解:题目要求: ∑ni=1∑ij=1[Cji含有的p的幂次>=k]\sum_{i = 1} ^n \sum_{j = 1} ^ i [C_{i}^j 含有的p的幂次 >= k] 我们知道有库默尔定理,这是这道题的基础。 库默尔定理: [Cji+j含有的p的幂次=i+j在p进制下的

2017-08-22 22:40:45 545

原创 库默尔定理学习小记

A组又出现了逆天的数竞定理,随便口胡一下。定理:有两个正整数n,m,Cnn+mC_{n +m}^n含p的幂次等于m+n在p进制下的进位数。简略证明:Cnn+mC_{n +m}^n含p的幂次 =∑∞i=1⌊n+mpi⌋−∑∞i=1⌊npi⌋−∑∞i=1⌊mpi⌋= \sum_{i = 1}^{∞}{\lfloor {n +m\over p^i}\rfloor} - \sum_{i = 1}^{∞}

2017-08-22 22:25:40 3412 1

原创 卡特兰数学习小记

卡特兰数:卡特兰数的第n项记作h(n)。 其中h(0) = 1, h(1) = 1, h(2) = 2. 我理解的是:h(n)表示包含n对括号的合法括号序列的数目。一些比较鬼的性质:h(n)=Cn2n−Cn+12n=Cn2nn+1h(n) = C_{2n}^{n} - C_{2n}^{n + 1} = {C_{2n}^{n} \over {n +1}} h(n)=∑n−1k=0h(k)∗h(n

2017-08-20 20:14:01 457

原创 【清华集训2017模拟】Sequence

Description : 1<=n<=3e4,1<=m<=1e5题解:做的第一道整体二分题。整体二分的套路: 二分一个答案,对于每个询问求出答案,再把询问分成两部分,第一个部分是答案< mid的,第二个部分是答案大于mid的,至于=mid的,这个询问不一定是mid,先把答案记一下,根据实际情况而决定分到哪个部分。这题首先得把[x, y]的限制具体化,用一棵主席树预处理[x..y]限制对应的a值

2017-08-18 22:05:41 651

原创 【清华集训2017模拟】ces

Description: 1<=n<=1e5,1<=q<=m<=2e5题解:首先把用tajan把桥边全部找出来,桥边会把图分成若干个双联通分量。 把每个双联通分量并成一个点,桥边作为边,这会构成一棵树。显然,对于每个询问加k条边最多能去掉多少条桥边,就是用k条简单路径去覆盖这棵树,最多能覆盖多少条边。有一个很优的贪心,把k按1-q做,每次找到树的直径,答案加上直径的长度,把直径压成一个点,继续做

2017-08-18 21:51:11 600

原创 二维最小乘积生成树

最近【清华集训】里怒现三维最小乘积生成树,我太弱了~~(暴%镇中lyc神犇)。 由于本蒟蒻不懂三维计算几何,所以先来玩一下二维的。现在没有时间去找例题做,先把思路放在这,到时候再补。裸题描述:给你n个二元组[x,y],要你从中选k个二元组,使得∑x∗∑y\sum x *\sum y最小。我们把每一种选法得出的∑x\sum x 和∑y\sum y看作二维平面中的点(∑x\sum x ,∑y\sum

2017-08-15 22:17:03 772

原创 【GDOI2018模拟8.12】区间第k小

Description:Data Constraint:题解:对于w=100000,相当于没有w这个限制,直接主席树即可。 对于非强制在线的,可以考虑莫队算法,对值域分块,维护每个块小于等于w的数的个数,查询时暴力过去,直到发现答案在当前这个块里,停下来,再暴力,一次是O(n√\sqrt n)。 但是现在强制在线了,how to do it?还是可以暴力分块的。 对序列也分块。 设c[i][

2017-08-15 21:32:56 434

原创 【GDOI2018模拟8.12】求和

Description: 1<=n<=10^10,k = 1、40题解:一看就是反演题,立马进行简单变形: 原式=∑kx=1∑nd=1fx(d)∗∑ni=1∑nj=1[gcd(i,j)=d]\sum_{x = 1}^k \sum_{d = 1}^n f_x(d) *\sum_{i = 1}^n \sum_{j = 1}^n [gcd(i, j) = d] =∑kx=1∑nd=1fx(d)∗∑⌊

2017-08-15 15:49:25 411

原创 【GDOI2018模拟8.11】质数

Description: 1<=n<=10^12题解:看到这种题就会想这是不是反演题。 如果它是一道反演题,那它必须要有gcd来,题目中没有gcd,所以能不能变换出gcd呢。 实际上2f(x)=[gcd(i,j)=1]∗[i∗j=x]2^{f(x)} = [gcd(i, j) = 1] *[i *j = x],即考虑每一个p^q是给i还是给j。 Ans=∑ni=1∑j|i[gcd(j,ij)

2017-08-11 19:04:13 523

原创 【NOIP2017模拟8.8A组】Competing Souls

Description:某日,竞赛班的学生来到了一家糖果店。 店里卖着M袋糖果,第i袋糖果里装有i颗糖,价格为i¥。 有N个学生对这些糖果产生了兴趣,于是迅速站成一排,且将他们编号为1到N。其中第i个学生带着a[i]¥。每一轮,他们按顺序买糖果(每一轮每个人只会买一袋)。由于体内的竞争之魂与超乎常人的不服输精神,当前学生买的这袋糖果一定会比上一个人多(当然,第一次可以

2017-08-08 16:47:28 579

原创 【NOIP2017模拟8.8A组】Trip

题目大意:给出一个有n个互不相同元素,有m个询问,每次给出l,r, 询问∑ri=l[a[i]>max(al..i−1)]or[a[i]>max(ai+1..r)]\sum_{i = l}^r [a[i] > max_(a_{l..i-1})] or [a[i] >max_(a_{i+1..r})]。 1<=n<=10^6题解:建一棵笛卡儿树,根的a是最大的。 根据笛卡儿树的性质可得: 1.

2017-08-08 16:31:36 376

原创 笛卡儿树学习小记

定义:笛卡儿树是一种比较偏门的二叉树数据结构,树上的每个点有一个key、value,key是序号,value是值。对于一个点x,满足它的左子树的key都小于它,右子树的key都大于它,也就是说,笛卡儿树是和splay一样的二叉搜索树。并且它还具有堆的性质,对于一个点x,满足它的子孙节点的key都大于(或小于)它。用法:一般是把一个序列建成笛卡儿树,利用笛卡儿树的性质乱搞。 下一篇博客会讲一道例题。

2017-08-08 16:15:04 493

原创 【NOIP2017模拟A组模拟8.5】带权排序

Description: n<=105,0<=li<=ri<=109,0<=si<=109n<=10^5,0<=li<=ri<=10^9,0<=si<=10^9题解:E[f(i)] = ∑ri=lsi∗E[pi]\sum_{i = l}^r s_i * E[p_i] 正着考虑是不太容易的

2017-08-05 21:28:53 606

原创 【NOIP2017模拟A组模拟8.5】序列问题

Description: 1<=n<=500000题解:这种题马上想到的就是分治。对于区间[x..y],将它分成三部分: m = (x +y)/2 1.左右端点都在[x..m]里的。 2.左右端点都在[m + 1..y]里的。 3.左右端点在m的两旁。前两个递归处理,考虑第三个怎么求,这是分治的常规套路。先考虑区间[m + 1..y](右区间),以m+1为左端点,从左往右枚举右端点,min

2017-08-05 21:03:27 683

原创 【HNOI2016模拟4.1】神奇的字符串

Description: (1<=n<=109,1<=m<=105)(1<=n<=10^9, 1<=m<=10^5)题解:这道题是真的复杂。直接考虑不太好想。 我们可以考虑每个s所能影响的开头是哪些。First:我们假设把j按照c[j]的大小排了序(0<=jSecond:s_i = 0,和排好序后的p ~ (n - 1)相反。 s_i = 1,和排好序后的0~(p - 1)相反。这是一个有序的

2017-08-04 21:41:42 703 1

原创 【JSOI2016】最佳团队

Description: (1<=n<=2500)题解:看到这个什么比值最大,立马想到了二分答案。 然后就变成了一个树上背包问题,直接暴力合并背包即可。 暴力合并不是O(n3)O(n^3)的吗? 记录一下子树的大小,背包时的上界设为这个,就降成O(n2)O(n^2)。 感性证明: 你可以想象两个点只会在它们的lca处合并。Code:#include <cstdio>#include <

2017-08-04 21:31:55 445

空空如也

空空如也

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

TA关注的人

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