【FCS NOI2018】福建省冬摸鱼笔记 day2
第二天。
同学还是不带本子记笔记。dalao。
第二天:图论,讲师:@ExfJoe
全程划水,前面都讲水算法【虽然我可能已经忘记了】什么最短路,Tarjan,最小生成树,2SAT,差分约束啥的,我现在肯定写不出来啦。
后面题目也还挺好,可能是听的比较懂的一天吧。不过也很有挑战性。
中午划水
还以为下午的题目会和上午有关系,事实证明我想太多。
T1想了个错误分块,写了n久挂了,不想调,正解主席树。
T2简单数学题,瞎推式子就完了,后悔没有去做啊。
T3毒瘤模拟题,什么切比雪夫,什么曼哈顿,什么奇偶分开,反正不想做。
爆零选手很难受。
【T2】
题面:对两个排列定义函数\(F(P_1,P_2)=\sum_{l=1}^{n}\sum_{r=l}^{n}f_{E}(P_1[l\cdots r],P_2[l\cdots r])\)。而\(f_{E}(a,b)\)表示\(a,b\)离散后顺序是否一样,且\(a,b\)的逆序对数是否不超过\(E\),例如\(f_{1}([2,1,3],[6,3,8])=1\),\(f_{30}([2,1,3],[3,2,1])=0\),\(f_{0}([1,3,2],[1,3,2])=0\)。
求出当\(P_1,P_2\)取遍所有\(1\sim n\)的全排列时,\(F(P_1,P_2)\)的和。
题解:分开考虑每一个\([l\cdots r]\)的贡献,瞎推式子瞎计算,得到答案:\(\sum_{i=1}^{n}(n-i+1)f(i,E)(\frac{n!}{i!})^2\),\(f(i,j)\)表示长度为\(i\),逆序对数不超过\(j\)的全排列数量。
\(f(i,j)\)可以\(O(n^3)\)预处理DP。这题就做完了。
#include<cstdio>
#define Mod 1000000007
int n,E;
int f[][];
int fra[],inv[];
inline int Min(int x,int y){return x<y?x:y;}
inline int Mo(int x){return x>=Mod?x-Mod:(x<-Mod?x+(Mod<<):(x<?x+Mod:x));}
void init(){
f[][]=;
for(int i=,s,t;i<=;++i){
f[i][]=; s=i*(i-)/; t=(i-)*(i-)/;
for(int j=;j<=s;++j)
f[i][j]=Mo(f[i][j-]+(j<=t?f[i-][j]:f[i-][t])-(j>=i?f[i-][j-i]:));
}
fra[]=inv[]=;
for(int i=;i<=;++i) fra[i]=1ll*fra[i-]*i%Mod;
for(int i=;i<=;++i) fra[i]=1ll*fra[i]*fra[i]%Mod;
for(int i=;i<=;++i) inv[i]=1ll*(Mod-Mod/i)*inv[Mod%i]%Mod;
for(int i=;i<=;++i) inv[i]=1ll*inv[i-]*inv[i]%Mod;
for(int i=;i<=;++i) inv[i]=1ll*inv[i]*inv[i]%Mod;
}
int main(){
freopen("perm.in","r",stdin);
freopen("perm.out","w",stdout);
init();
int T; scanf("%d",&T);
while(T--){
scanf("%d%d",&n,&E);
long long ans=;
for(int i=;i<=n;++i)
ans=Mo(ans+1ll*(n-i+)*inv[i]%Mod*f[i][Min(E,i*(i-)/)]%Mod);
ans=1ll*ans*fra[n]%Mod;
printf("%d\n",ans);
}
return ;
}
【FCS NOI2018】福建省冬摸鱼笔记 day2的更多相关文章
- 【FCS NOI2018】福建省冬摸鱼笔记 day1
省冬的第一天. 带了本子,笔,一本<算法导论>就去了.惊讶于为什么同学不带本子记笔记. 他们说:“都学过了.”,果然这才是巨神吧. 第一天:数论,讲师:zzx 前几页的课件挺水,瞎记了点笔 ...
- 【FCS NOI2018】福建省冬摸鱼笔记 day6【FJOI 2018】福建省选混分滚蛋记 day1
记录一下day6发生的事情吧. 7:30 到达附中求索碑,被人膜,掉RP. 7:50 进考场,6楼的最后一排的最左边的位置,世界上最角落的地方,没有任何想法. 发现电脑时间和别人不一样,赶快调了一下. ...
- 【FCS NOI2018】福建省冬摸鱼笔记 day3
第三天. 计算几何,讲师:叶芃(péng). dalao们日常不记笔记.@ghostfly233说他都知道了,就盼着自适应辛普森积分. 我计算几何基础不好……然而还是没怎么讲实现,感觉没听什么东西进去 ...
- 【FCS NOI2018】福建省冬摸鱼笔记 day5
第五天,也是讲课的最后一天. 数据结构专题,讲师:杨志灿 他的blog我似乎找不到了……以前肯定是在百度博客里面.但是现在百度博客消失了. PPT做的很有感觉,说了很多实用的技巧. 我觉得其实是收获最 ...
- 【FCS NOI2018】福建省冬摸鱼笔记 day4
第四天. 动态规划专题,讲师:闫神 讲了一些DP优化技巧,然而思想难度好大啊……根本没想到能优化那地步,连DP方程都没有呢. 不过有几题我还是想明白了. 讲了单调队列,决策单调性,四边形不等式,斜率优 ...
- Hash 日常摸鱼笔记
本篇文章是Hash在信息学竞赛中的应用的学习笔记,分多次更新(已经有很多坑了) 一维递推 首先是Rabin-Karp,对于一个长度为\(m\)的串\(S\) \(f(S)=\sum_{i=1}^{m} ...
- 可持久化Treap 赛前摸鱼笔记
1.基本结构 随机化工具 unsigned int SEED = 19260817; //+1s inline int Rand(){ SEED=SEED*1103515245+12345; retu ...
- [摸鱼]cdq分治 && 学习笔记
待我玩会游戏整理下思绪(分明是想摸鱼 cdq分治是一种用于降维和处理对不同子区间有贡献的离线分治算法 对于常见的操作查询题目而言,时间总是有序的,而cdq分治则是耗费\(O(logq)\)的代价使动态 ...
- HNOI2018 摸鱼记
HNOI2018 摸鱼记 今天我又来记流水账啦 Day 0 颓废的一天. 我,球爷和杜教在颓膜膜.io ych看起来在搓碧蓝 鬼知道哥达鸭干了什么 学习氛围只局限在机房的一角 后来全体Oier开会,5 ...
随机推荐
- xml 类详解
- HDU 6166 Senior Pan(二进制分组+最短路)
题意 给出一个\(n\)个点\(m\)条边的有向图\((n,m<=100000)\),从中选择\(k\)个点\((k<=n)\),问这k个点两两之间的最短路最小值是多少? 思路 直接的想法 ...
- [BZOJ4556][Tjoi2016&Heoi2016]字符串 后缀数组+主席树
4556: [Tjoi2016&Heoi2016]字符串 Time Limit: 20 Sec Memory Limit: 128 MB Description 佳媛姐姐过生日的时候,她的小 ...
- PHP是什么?
PHP是什么? PHP是一门后端动态解释型计算机高级语言,一般用来编写或者生成动态网页,主要负责数据的处理与渲染.(这里是指用PHP嵌入网页里面的形式,现在可以直接用一些JS的框架去渲染网页数据了,P ...
- BZOJ 4520: [Cqoi2016]K远点对
4520: [Cqoi2016]K远点对 Time Limit: 30 Sec Memory Limit: 512 MBSubmit: 638 Solved: 340[Submit][Status ...
- nginx之编译安装
一.认识nginx 常用的web服务有Apache.IIS(windows系统).Lighttpd.Tomcat.Nginx等.Nginx是一个开源的,支持高性能.高并发的www服务和代理服务软件.它 ...
- 【bzoj4542】 Hnoi2016—大数
http://www.lydsy.com/JudgeOnline/problem.php?id=4542 (题目链接) 题意 给出一个素数$P$,一个数串$S$,$m$个询问,每次询问区间$[l,r] ...
- 【bzoj3209】 花神的数论题
http://www.lydsy.com/JudgeOnline/problem.php?id=3209 (题目链接) 题意 ${sum(i)}$表示${i}$的二进制表示中${1}$的个数.求${\ ...
- 《Linux内核分析》期末总结及学习心得
[洪韶武 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 ] 一.学习心得 本学 ...
- android:ellipsize属性的含义
android:ellipsize属性的含义http://blog.csdn.net/uyu2yiyi/article/details/6316310 跑马灯效果:http://www.liu-may ...