【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。这题就做完了。

 1 #include<cstdio>
 2 #define Mod 1000000007
 3 int n,E;
 4 int f[501][124751];
 5 int fra[501],inv[501];
 6 inline int Min(int x,int y){return x<y?x:y;}
 7 inline int Mo(int x){return x>=Mod?x-Mod:(x<-Mod?x+(Mod<<1):(x<0?x+Mod:x));}
 8 void init(){
 9     f[1][0]=1;
10     for(int i=2,s,t;i<=500;++i){
11         f[i][0]=1; s=i*(i-1)/2; t=(i-1)*(i-2)/2;
12         for(int j=1;j<=s;++j)
13             f[i][j]=Mo(f[i][j-1]+(j<=t?f[i-1][j]:f[i-1][t])-(j>=i?f[i-1][j-i]:0));
14     }
15     fra[1]=inv[1]=1;
16     for(int i=2;i<=500;++i) fra[i]=1ll*fra[i-1]*i%Mod;
17     for(int i=2;i<=500;++i) fra[i]=1ll*fra[i]*fra[i]%Mod;
18     for(int i=2;i<=500;++i) inv[i]=1ll*(Mod-Mod/i)*inv[Mod%i]%Mod;
19     for(int i=2;i<=500;++i) inv[i]=1ll*inv[i-1]*inv[i]%Mod;
20     for(int i=2;i<=500;++i) inv[i]=1ll*inv[i]*inv[i]%Mod;
21 }
22 int main(){
23     freopen("perm.in","r",stdin);
24     freopen("perm.out","w",stdout);
25     init();
26     int T; scanf("%d",&T);
27     while(T--){
28         scanf("%d%d",&n,&E);
29         long long ans=0;
30         for(int i=1;i<=n;++i)
31             ans=Mo(ans+1ll*(n-i+1)*inv[i]%Mod*f[i][Min(E,i*(i-1)/2)]%Mod);
32         ans=1ll*ans*fra[n]%Mod;
33         printf("%d\n",ans);
34     }
35     return 0;
36 }

原文地址:https://www.cnblogs.com/PinkRabbit/p/8449336.html

时间: 2024-08-29 16:39:30

【FCS NOI2018】福建省冬摸鱼笔记 day2的相关文章

【FCS NOI2018】福建省冬摸鱼笔记 day1

省冬的第一天. 带了本子,笔,一本<算法导论>就去了.惊讶于为什么同学不带本子记笔记. 他们说:"都学过了.",果然这才是巨神吧. 第一天:数论,讲师:zzx 前几页的课件挺水,瞎记了点笔记.后面直接就讲了两道题,我就没想出来,真的菜. 然后学了波原根,又听不太懂. 莫比乌斯反演,又听不太懂.然而我自己瞎推式子好像就能反演出来,没想法XD. 杜教筛,又听不太懂. 线性代数,zzx干脆不讲了,没想法.反正也不是数论范畴. 第一天的早晨就这么过去了,@qrc去AMC10了,没想

【FCS NOI2018】福建省冬摸鱼笔记 day3

第三天. 计算几何,讲师:叶芃(péng). dalao们日常不记笔记.@ghostfly233说他都知道了,就盼着自适应辛普森积分. 我计算几何基础不好--然而还是没怎么讲实现,感觉没听什么东西进去. 不过还是记了一些公式. 同时@ghostfly233在后面打农药. 然后讲到了有关圆的东西.讲完了,下课了.辛普森有兴趣的同学回去自己看看吧. 辛普森:??? @ghostfly233非常难受. 中午划水. 下午有一题和早上的有关. T1半平面交+面积,简单题,我半平面交写错了,只有80. T2

【FCS NOI2018】福建省冬摸鱼笔记 day6【FJOI 2018】福建省选混分滚蛋记 day1

记录一下day6发生的事情吧. 7:30 到达附中求索杯,被人膜,掉RP. 7:50 进考场,6楼的最后一排的最左边的位置,世界上最角落的地方,没有任何想法. 发现电脑时间和别人不一样,赶快调了一下. 8:00 等待发题. 8:03 题发了,为什么要迟发呢.=) 8:05-9:30 冥思苦想T1什么鬼东西.中间看了看T2T3是啥. 9:30-10:30 对T3的水震惊之余,把T3切掉了,顺便在准考证背面写了题解,准备给同学看看,以便带出去交流. 10:50-12:00 思考T2骗分,T2又是DN

【FCS NOI2018】福建省冬摸鱼笔记 day4

第四天. 动态规划专题,讲师:闫神 讲了一些DP优化技巧,然而思想难度好大啊--根本没想到能优化那地步,连DP方程都没有呢. 不过有几题我还是想明白了. 讲了单调队列,决策单调性,四边形不等式,斜率优化,甚至有DP套DP,然而就是双重DP,什么背包+数位罢了. 轮廓线DP,插头DP都有点难写啊--不过也是状压DP的一大内容 .还有概率DP,期望DP,非常恐怖. 中午划水. 下午的题比较良心.T1不知道写了什么写挂了,T2就很好AC,T3毒瘤题. [T1] 题面:m个青蛙,它们可以跳无限远,但是第

[日常摸鱼]Uva11178Morley&#39;s Theorem-几何

题意:给一个$\Delta ABC$,分别做三个角的三等分线相交成$\Delta DEF$,求出$D,E,F$的坐标. 直接根据题意模拟 #include<cstdio> #include<cmath> #include<algorithm> using namespace std; struct Point { double x,y; Point(double x1=0,double y1=0){x=x1;y=y1;} }; typedef Point Vector;

转:用 Python 一键分析你的上网行为, 看是在认真工作还是摸鱼

简介 想看看你最近一年都在干嘛?看看你平时上网是在摸鱼还是认真工作?想写年度汇报总结,但是苦于没有数据?现在,它来了. 这是一个能让你了解自己的浏览历史的Chrome浏览历史记录分析程序,当然了,他仅适用于Chrome浏览器或者以Chrome为内核的浏览器. 在该页面中你将可以查看有关自己在过去的时间里所访问浏览的域名.URL以及忙碌天数的前十排名以及相关的数据图表. 部分截图 代码思路 1. 目录结构 首先,我们先看一下整体目录结构 Code ├─ app_callback.py 回调函数,实

摸鱼鬼混的英文怎么说 ?

摸鱼鬼混的英文怎么说 (引用来源.世界公民文化中心) 如果你是老板,你会"hire"哪种员工? 以下这两种人stepford worker(糊涂死忠型)和clocksucker(摸鱼鬼混型)的人,想想身边的同事,你是不是觉得似曾相识? Stepford Worker Stepford一词来自于小说 The Stepford Wives,也有被制作成同名电影,中国台湾译为<超完美娇妻>,由妮可基嫚(Nicole Kidman)主演.故事描述纽约市郊区一个小镇里,有一群完美的贤

操作系统课程设计摸鱼全纪录

读了几年,都没留下什么东西方便学弟学妹借鉴.感觉这个大三上学期的操作系统课程设计恰好在寒假,大概是最后一次机会了,写点东西. 首先老师要求用的是: ubuntu-18.04 fuse-2.7.0 这种事情当然是使用虚拟机啦!下载并安装VMware,然后下载并安装ubuntu-18.04,拷贝老师给的fuse-2.7.0进去解压.找找看怎么安装. 看了一圈,发现有个README是看得懂的,里面有很多话,我相信来看我博客的人也是摸鱼混及格的,那当然只关心下面的: 那么打开一个Terminal,输入对

FFT 深夜摸鱼小笔记

本次笔记学习自算法导论 FFT核心:系数表示→(单位复数根)点值表示→(插值)系数表示 关于单位复数根 n次单位复数根\(ω\)为满足\(ω^n=1\)的复数 n次单位复数根恰好有n个,表示为\(ω_k,k=0,1,...n-1\) 由欧拉公式\(e^{iθ}=cosΘ+isinΘ\),得\(ω_k=e^{i2πk/n}\) 主n次单位根\(ω_n=e^{2πi/n}\),其他n次单位复数根都是\(ω_n\)的幂次,表示为\(ω_n^k,k=0,1,...n-1\) \(ω_n^n=ω_n^0\