%zsy %lqs 随感
今天是cj的大毒瘤zsy(对对,您说的都对,题目不难的啦,是我太菜啦)出题。
我校选手lqs仍然坚持高水平的发挥,wzy神犇却不在状态。
面对T1sb题(其实干了2h)和T3的原题(我&lqs&wzy当初一起花了1.5h切了的not that hard problem),果断3h写完230分开始颓b站(大力哥出狱啦,鬼畜真心爽啊)。
随后当了一把星际选手,眼瞎般的交错了代码。呜呜呜。。。
省选前考试的状态一点也没有,感觉只会写水题(还写不对),被wzy&lqs&nickluo&...爆踩。
我不想退役啊。。。看来要更认真才行了。
不然以后就不一定能踩lqs了,那多不爽啊。。。
左:lqs,右:xy
20190311


20190312


主要记一下T1吧,$f_{i,j}=f_{i,j}+\sum_{k=0}^{j-1} f_{i-1,k}*(k+1)$
考虑$f_{i,j}-f_{i,j-1}=f_{i-1,j}+(j-1)*f_{i-1,j-1}$,即$f_{i,j}=f_{i-1,j}+f_{i,j-1}+(j-1)*f_{i-1,j-1}$
不难认为这是一个平面数路径问题,斜边边权为j,开始计数
不难发现走的斜边个数相同的情况对应的NE lattice path的计数系数是一样的
于是分治fft一下,利用第一类斯特林数的O(nlogn)做法,我们也可以做到O(nlogn)。
#include<bits/stdc++.h>
using namespace std;
const int N=,mod=;
int n,m,ans,a[N],b[N],S[N],r[N],fac[N],ifac[N];
inline int pw(int a,int b){int r=;for(;b;b>>=,a=1ll*a*a%mod)if(b&)r=1ll*r*a%mod;return r;}
inline int C(int a,int b){return 1ll*fac[a]*ifac[b]%mod*ifac[a-b]%mod;}
inline void ntt(int n,int *a,int f)
{
int l=;while((<<l)<n)l++;
for(int i=;i<n;i++)r[i]=r[i>>]>>|(i&)<<(l-);
for(int i=;i<n;i++)if(i<r[i])swap(a[i],a[r[i]]);
for(int i=;i<n;i<<=)
{
int wn=pw(,(mod-)/(i<<));
if(f==-)wn=pw(wn,mod-);
for(int j=;j<n;j+=(i<<))for(int k=,w=;k<i;k++,w=1ll*w*wn%mod){int u=a[j+k],v=1ll*a[j+k+i]*w%mod;a[j+k]=(u+v)%mod;a[j+k+i]=(u+mod-v)%mod;}
}
if(f==-)for(int i=,iv=pw(n,mod-);i<n;i++)a[i]=1ll*a[i]*iv%mod;
}
void sol(int n)
{
if(n==){S[]=;S[]=;return;}
if(n&){sol(n-);for(int i=n;i;i--)S[i]=(S[i-]+1ll*(n-)*S[i])%mod;return;}
sol(n>>);n>>=;
for(int i=,p=;i<=n;i++)a[i]=1ll*p*ifac[i]%mod,p=1ll*p*n%mod;
for(int i=;i<=n;i++)b[i]=1ll*fac[n-i]*S[n-i]%mod;
n++;int nn=;while(nn<(n<<))nn<<=;
for(int i=n;i<nn;i++)a[i]=b[i]=;
ntt(nn,a,);ntt(nn,b,);
for(int i=;i<nn;i++)a[i]=1ll*a[i]*b[i]%mod;
ntt(nn,a,-);reverse(a,a+n);
for(int i=;i<n;i++)a[i]=1ll*a[i]*ifac[i]%mod;
for(int i=n;i<nn;i++)S[i]=a[i]=;
ntt(nn,S,);ntt(nn,a,);
for(int i=;i<nn;i++)S[i]=1ll*S[i]*a[i]%mod;
ntt(nn,S,-);
}
int main()
{
freopen("color.in","r",stdin);
freopen("color.out","w",stdout);
scanf("%d%d",&n,&m);n--;m--;
if(!n||!m){puts("");return ;}
for(int i=fac[]=;i<=n+m;i++)fac[i]=1ll*fac[i-]*i%mod;
ifac[n+m]=pw(fac[n+m],mod-);
for(int i=n+m;i;i--)ifac[i-]=1ll*ifac[i]*i%mod;
n++;sol(n);n--;
for(int i=;i<=n;i++)ans=(ans+1ll*C(n+m-i,n)*S[n+-i])%mod;
printf("%d\n",ans);
return ;
}
再次%zsy,%lqs。奶一口zsy和lqs省队稳啦。
(决定啦,像lqs这样又假又强的人后天我xy一定要认真地踩他一次,23333,xy加油啦。)
Upd1:zsy果然稳 orz HN队长!~
Upd2:lqs tql, 所以踩lqs的计划一直咕咕咕~
Upd3:在JSOI2019R2中终于比lqs高一点了(开心!),所以lqs似乎被我送出队了。。。
(不过一共4个名额,我校内rk3应该不怪我吧QwQ)~
Upd4:据说。。。lqs应该可能有希望进队?如果学长们进国家队的话。。。
Upd5:lqs进队了,因为FizzyDavid进国家队了。。。
%zsy %lqs 随感的更多相关文章
- Java与面向对象之随感(2)
我们知道Java语言的一大特性就是相比于c语言和c++语言,其更加安全.那么Java安全性的一个重要保证就是它取消了指针,并且坚决反对数组的出界(c++对当数组超出上限但是还进行读写操作时允许的!), ...
- Onezero团队第三次站立会议随感
>首先这是一个关于Android的小应用APP(记账本) >在Java基础薄弱的基础上尝试Android开发,让我感觉力不从心. >说实话本迭代周在程序设计,确实让我头疼,不知道怎么 ...
- zsy后台管理系统-架构设计
Zsy框架总体架构设计 1.Mysql数据库,存储所有表的数据. 2.Zsy-基础项目(Zsy-Model,Zsy-Dao,Zsy-Service,Zsy-Web),基于SSM框架.项目功能包含基本的 ...
- 随感一:android handler传值更改ui
handler+looper传值更改activity的UI 博客开了一段时间,一直想写点自己的学习经验及体会,等着以后长时间不用再要用到的时候直接拿过来上手.想了想,之前用到handler, 看了几篇 ...
- 初转java随感(一)程序=数据结构+算法
大学刚学编程的时候,有一句很经典的话程序=数据结构+算法 今天有了进一步认识. 场景: 1.当前局面 (1)有现成的封装好的分页组件 返回结果是page.类型为:Page.包括 page 分页信息,d ...
- yii学习随感
最近我们公司信易网络在用yii开发一个项目自己临时学习了一下yii 把学习感悟和大家一起分享一下 Yii Framework是一个基于组件.用于开发大型 Web 应用的高性能 PHP 框架.Yii提供 ...
- [转载]转载一篇好文章作为Java与面向对象之随感(3)
关于对象与引用之间的一些基本概念. 初学Java时,在很长一段时间里,总觉得基本概念很模糊.后来才知道,在许多Java书中,把对象和对象的引用混为一谈.可是,如果我分不清对象与对象引用, 那实在没法很 ...
- Java与面向对象之随感(1)
大一下学期上完了c++课程,当时自我感觉很良好,认为对面向对象编程已经是身经百战了,但是上了院里HuangYu老师的Java课之后,才发现自己对于面向对象的编程风格的理解只在皮毛,着实惭愧不已. 假设 ...
- Java随感
创新项目要用java,而我只大概会C++,只能靠自学咯~~~随时将一些重要的概念做笔记在这里吧>_< 1.一个源文件中只能有一个public类,一个源文件可以有多个非public类 2.所 ...
随机推荐
- [crypto][ipsec] 简述ESP协议的sequence number机制
预备 首先提及一个概念叫重放攻击,对应的机制叫做:anti-replay https://en.wikipedia.org/wiki/Anti-replay IPsec协议的anti-replay特性 ...
- Spring AOP功能和目标
1.AOP的作用 在OOP中,正是这种分散在各处且与对象核心功能无关的代码(横切代码)的存在,使得模块复用难度增加.AOP则将封装好的对象剖开,找出其中对多个对象产生影响的公共行为,并将其封装为一个可 ...
- oracle_dataGuard_11G
[李红]--切记_从库只安装实例_不需要 dbca 创建数据库 但是 netca 创建监听看个人喜欢,我反正是创建了.[DataGuard_主数据库的参数配置]1.启用 force logging 功 ...
- Python_tkinter(4)_上传文件
1.上传单个文件 import tkinter as tk from tkinter import filedialog def upload_file(): selectFile = tk.file ...
- 多线程之Executors基本使用
Executors几种创建方式 https://www.cnblogs.com/yasong/p/9318522.html 线程池数如何设置 https://blog.csdn.net/u013276 ...
- oracle两种分页查询
第一种: SELECT * FROM (SELECT A.*, ROWNUM RN FROM (SELECT * FROM table_name) A ) ; 第二种: SELECT * FROM ( ...
- esp32固件烧录
正常使用IO0置空即可.烧录时需要en引脚接高电平,IO0接地,使用乐鑫的烧录工具烧录即可.注意如果启用wifi,供电一定要不小于500ma,普通的usb转ttl模块无法满足wifi启动的,被坑的好惨 ...
- 发现了一个比较有意思的url参数
今天登录阿里云发现需要二次验证了,手机号不是我的很麻烦,然后就看到有个手机app快捷登录的方式,点进去一看,链接地址是这样的http://qd.alibaba.com/onekey.htm?spm=0 ...
- 支持向量机(SVM)
SVM 简介 SVM:Support Vector Machine , 支持向量机, 是一种分类算法. 同Logistic 分类方法目的一样,SVM 试图想寻找分割线或面,将平面或空间里的样本点一分为 ...
- 使用python写的一个代码统计程序
# encoding="utf-8" """ 统计代码行数 """ import sys import os def c ...