2016.09.03【初中部 NOIP提高组 】模拟赛C题解
来源:互联网 发布:最新的网络用语 编辑:程序博客网 时间:2024/05/16 00:26
随意翻车,2333,怪我没仔细听以前的时间戳内容。
T1:
并查集是行不通的,公共祖先,压缩下就没了。所以另找方法:
这道题有LCA的方法,但目前适合我们的只有一个名叫时间戳的方法。
记录每个点X的第一次访问时间st[x]和最后一次访问时间ed[x],若y在以X为根的子树中,则一定有st[x]<st[y]<ed[y]<ed[x]。
可能很多人不明白最后一次访问时间,即他的儿子(包括儿子的儿子)中第一次访问时间的最大值。
<span style="font-size:14px;">procedure dg(ans:longint);var j:longint;begin j:=num[ans]; while j<>0 do begin if bz[d[j]]=0 then begin bz[d[j]]:=1; inc(ans1); st[d[j]]:=ans1; dg(d[j]); en[d[j]]:=ans1; end; j:=pre[j]; end;end;</span>请用邻接表,不谢!
T2:
第二题暴力O(n^2)过不了。由于以前做过差不多的题目,所以改题也快了许多!
对于一个A[i],我们可以对b[i]进行分类讨论,即分成两大类:a[i]≥b[j],a[i]<b[j]。因为这两种的运算都是完全不相同的,一个是前者减后者,一个是后者减前者。
即我们求出了a[i]≥b[j],j的值,答案则为a[i]*j-∑b[1~j],前提是有序!前提是有序,前提是有序,重要的事说三遍!前缀和实现!
J的效率最多为O(n),所以有的同学说二分是多余的
AC咯!等等!题目题目算的是(x-y)^2,如果前最和是根本实现不了的,试着拆分!不错
(x-y)^2=a^2+b^2-2ab,经过巧妙的拆分后,弄个平方和前缀和就可以了!
不过这么做也会错,因为a^2要多乘个个数。
再说下概率问题:对于一个a[i],比赛场次为(n-1)!,最后又要/n!,不就是除个N就可以了???????
所以前n位中奇数位之和=后n位中偶数位之和 且
前n位中偶数位之和=后n位中奇数位之和
即算出前面选奇数个数的方案和∑f[(n+1) div 2,1-maxn*(n+1) div 2]^2,偶数也是。
为什么可以这样,因为我们是选i个,而不是前i个,况且也可以理解为交换位置,即(n+1) div 2个 奇数都移到前面去。反之。注意:不要双重(c++除外),直接单重,乘起来就好,因为同为乘法。
为什么要平方,因为我们枚举是前N位,而题目要求的数列是2*n,两个的方案数为n^2。以上同这么理解。
效率600ms+,不过可以尽量减少mod的次数可优化!
- 2016.09.03【初中部 NOIP提高组 】模拟赛C题解
- 2016.09.03【初中部 NOIP提高组 】模拟赛C题解
- 2016.09.03【初中部 NOIP提高组 】模拟赛C题解
- 2016.09.10【初中部 NOIP提高组 】模拟赛C题解
- 2016.09.10【初中部 NOIP提高组 】模拟赛C题解
- 2016.09.17【初中部 NOIP提高组 】模拟赛C题解
- 2016.09.10【初中部 NOIP提高组 】模拟赛C题解
- 2016.09.15【初中部 NOIP提高组 】模拟赛C题解
- 2016.09.24【初中部 NOIP提高组 】模拟赛C题解
- 2016.12.03【初中部 NOIP提高C组】模拟赛题解
- 2016.12.03【初中部 NOIP提高C组】模拟赛题解
- 2016.07.13【初中部 NOIP提高组 】模拟赛C题解
- 2016.07.14【初中部 NOIP提高组 】模拟赛C题解
- 2016.08.11【初中部 NOIP提高组 】模拟赛C题解
- 2016.08.11【初中部 NOIP提高组 】模拟赛C题解
- 2016.08.12【初中部 NOIP提高组 】模拟赛C题解
- 2016.08.12【初中部 NOIP提高组 】模拟赛C题解
- 2016.08.13【初中部 NOIP提高组 】模拟赛C题解
- <leetcode>381. Insert Delete GetRandom O(1) - Duplicates allowed
- C/C++文件操作fopen/fscanf/ fprintf/ fclose简单使用方法
- Java API IP类简单介绍
- 阿斯顿发送到发送到费
- ucos_ii中的任务(2)
- 2016.09.03【初中部 NOIP提高组 】模拟赛C题解
- 简单的识别网络instar
- hdu-5868 Different Circle Permutation 矩阵快速幂 + 欧拉函数 + polya计数定理
- 修改linux最大文件句柄数
- 质数
- JS中Array方法中常用方法一:Array.isArray():
- NYOJ 21 三个水杯(BFS)
- React Native环境配置 —— window版
- char与byte的区别