博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AGC001 E BBQ Hard
阅读量:4669 次
发布时间:2019-06-09

本文共 1455 字,大约阅读时间需要 4 分钟。

原问题等价于求

for i=1;i<n;i++

  for j=i+1;j<=n;j++ do ans=ans+C(a[i]+a[j]+b[i]+b[j],a[i]+a[j])

显然这个式子是n^2的很不资瓷

我们发现a[i],b[i]都很小所以考虑组合性质优化

我们发现这个式子其实相当于求从(-ai,-bi)走到(aj,bj)的路径条数

直观的我们考虑建立超级源点S和超级汇点T

S向所有第三象限的点连边,T向所有第一象限的点连边求路径条数

所以我们可以dp出对于每一个(i,j)作为终点的方案数

然后dp[-a[i]][-b[i]]++,表示有一条从S过来的路径

答案就是枚举每一个i代表的点对(a[i],b[i])作为终点的方案数之和

注意减去自己到自己的方案数

代码如下:

#include
#define Mod 1000000007#define N 500005#define int long long#define invv (Mod+1)/2using namespace std;int n,fac[N],inv[N],a[N],b[N],dp[4005][4005];inline int ksm(int x,int y){
int ans1=1;while (y){
if (y&1) ans1=1ll*ans1*x%Mod;y>>=1;x=1ll*x*x%Mod; }return ans1;}inline int C(int n,int m){
return 1ll*fac[n]*inv[m]%Mod*inv[n-m]%Mod;}signed main(){ scanf("%lld",&n);fac[0]=1; for (int i=1;i<=n;i++) scanf("%lld%lld",&a[i],&b[i]); for (int i=1;i<=8000;i++) fac[i]=1ll*fac[i-1]*i%Mod; inv[8000]=ksm(fac[8000],Mod-2); for (int i=7999;~i;i--) inv[i]=1ll*inv[i+1]*(i+1)%Mod; for (int i=1;i<=n;i++) dp[2000-a[i]][2000-b[i]]++; for (int i=0;i<=4000;i++){ for (int j=0;j<=4000;j++){ if (i) dp[i][j]=1ll*(dp[i][j]+dp[i-1][j])%Mod; if (j) dp[i][j]=1ll*(dp[i][j-1]+dp[i][j])%Mod; } }int ans=0; for (int i=1;i<=n;i++){ ans=1ll*(ans+dp[a[i]+2000][b[i]+2000])%Mod; ans=1ll*(ans-C(2*(a[i]+b[i]),2*a[i])+Mod)%Mod; } printf("%lld\n",1ll*ans*invv%Mod); return 0;}

 

转载于:https://www.cnblogs.com/ckr1225/p/9489499.html

你可能感兴趣的文章
Centos7安装Mysql
查看>>
Hadoop伪分布安装配置
查看>>
idhttp.post方式 调用datasnap rest 远程方法(转咏南兄)
查看>>
jQuery包裹节点用法完整示例
查看>>
EL表达式中,param和requestScope的区别
查看>>
AngularJs angular.element
查看>>
利用HUtool读取Excel内容
查看>>
浅析libuv源码-node事件轮询解析(1)
查看>>
JS——try catch throw
查看>>
Python 学习2
查看>>
在Recyclerview使用GlideAPP加载大量图片导致内存溢出(oom)
查看>>
js代码格式化工具(格式化、压缩、加密压缩)
查看>>
HTML特殊符号
查看>>
【vijos P1914】【codevs 3904】[NOIP2014 普及组T4]子矩阵(dfs+状压dp)
查看>>
MySQL 处理海量数据时一些优化查询速度方法
查看>>
ubuntu 安装nginx 并开启目录浏览功能
查看>>
leetcode[94]Binary Tree Inorder Traversal
查看>>
nginx的addition模块在响应的前后报文添加内容与变量的运行原理
查看>>
Sql日期时间格式转换
查看>>
Winform中ComcoBox控件设置选定项
查看>>