【JZOJ 5358】【NOIP2017提高A组模拟9.12】BBQ
来源:互联网 发布:快乐大本营知乎 编辑:程序博客网 时间:2024/06/06 07:38
Description
给出序列a,b,求
ans%=1e9+7
Solution
看到C公式,应该就要想到在网格上Dp走,
这题就是这样,
相当从每个
这个随便DP嘛
复杂度:
Code
#include <cstdio>#include <algorithm>#define fo(i,a,b) for(int i=a;i<=b;i++)#define fod(i,a,b) for(int i=a;i>=b;i--)#define min(q,w) ((q)>(w)?(w):(q))#define max(q,w) ((q)<(w)?(w):(q))using namespace std;typedef long long LL;const int N=4050,mo=1e9+7;int read(int &n){ char ch=' ';int q=0,w=1; for(;(ch!='-')&&((ch<'0')||(ch>'9'));ch=getchar()); if(ch=='-')w=-1,ch=getchar(); for(;ch>='0' && ch<='9';ch=getchar())q=q*10+ch-48;n=q*w;return n;}int n,m1,m2;int a[N*50][2];LL ans;LL f[N][N];LL jc[N*2],jcn[N*2];LL C(int n,int m){return jc[m]*jcn[n]%mo*jcn[m-n]%mo;}LL ksm(LL q,int w){ LL ans=1; for(;w;w>>=1,q=q*q%mo)if(w&1)ans=ans*q%mo; return ans;}int main(){ read(n); fo(i,1,n)read(a[i][0]),read(a[i][1]),m1=max(m1,a[i][0]),m2=max(m2,a[i][1]); fo(i,1,n)f[m1-a[i][0]][m2-a[i][1]]++; jc[0]=1; fo(i,1,m1*2+m2*2)jc[i]=jc[i-1]*(LL)i%mo; jcn[m1*2+m2*2]=ksm(jc[m1*2+m2*2],mo-2); fod(i,m1*2+m2*2-1,0)jcn[i]=jcn[i+1]*(LL)(i+1LL)%mo; fo(i,0,m1*2)fo(j,0,m2*2) { if(i)f[i][j]=f[i][j]+f[i-1][j]; if(j)f[i][j]=(f[i][j]+f[i][j-1])%mo; } ans=0; fo(i,1,n)ans=(ans+f[a[i][0]+m1][a[i][1]+m2]-C(a[i][0]*2,a[i][0]*2+a[i][1]*2))%mo; ans=ans*(500000004LL)%mo; printf("%lld\n",(ans+mo)%mo); return 0;}
阅读全文
0 0
- 【JZOJ 5358】【NOIP2017提高A组模拟9.12】BBQ
- JZOJ5358. 【NOIP2017提高A组模拟9.12】BBQ
- [JZOJ5358]【NOIP2017提高A组模拟9.12】BBQ
- JZOJ5358. 【NOIP2017提高A组模拟9.12】BBQ
- JZOJ5358【NOIP2017提高A组模拟9.12】BBQ
- 【jzoj5358】【NOIP2017提高A组模拟9.12】【BBQ】
- 5358. 【NOIP2017提高A组模拟9.12】BBQ
- 【JZOJ 4931】【NOIP2017提高组模拟12.24】A
- 【JZOJ 4931】【NOIP2017提高组模拟12.24】A
- JZOJ 5195. 【NOIP2017提高组模拟7.3】A
- JZOJ 100026. 【NOIP2017提高A组模拟7.7】图
- JZOJ 100030. 【NOIP2017提高A组模拟7.8】为了爱情
- jzoj. 100031. 【NOIP2017提高A组模拟7.9】外星密码
- JZOJ 100035【NOIP2017提高A组模拟7.10】区间
- JZOJ 100036 【NOIP2017提高A组模拟7.10】随机
- JZOJ 100037【NOIP2017提高A组模拟7.11】后缀数组
- JZOJ 100035. 【NOIP2017提高A组模拟7.10】区间
- JZOJ 100041. 【NOIP2017提高A组模拟7.12】列车调度
- AndroidStudio常用快捷键搜集整理
- 关于valuestack
- LeetCode 139. Word Break (Medium)
- 关于左侧菜单栏,点击二级菜单栏展开
- poj1321 DFS
- 【JZOJ 5358】【NOIP2017提高A组模拟9.12】BBQ
- 防火墙搭建及NET机制
- 搜索引擎【渗透神器系列】
- ECJSON格式化工具
- IPython notebook(Jupyter notebook)指定IP和端口运行
- [python]leetcode(72). Edit Distance AND (583). Delete Operation for Two Strings
- JAVA反射机制详解
- Tomcat启动过程原理详解
- java语言基础(88)——多线程(实现多线程的四种方式)