【题解】Atcoder AGC#01 E-BBQ Hard
计数题萌萌哒~
这道题其实就是统计 \(\sum_{i=1}^{n}\sum_{j=i+1}^{n}C\binom{a[i] + a[j]}{a[i] + a[j] + b[i] + b[j]}\) 。这个式子不是很好统计,我们可以转化一下:
\((\sum_{i=1}^{n}\sum_{j=i+1}^{n}C\binom{a[i] + a[j]}{a[i] + a[j] + b[i] + b[j]} - \sum_{i = 1}^{n}C\binom{2 * a[i]}{2 * a[i] + 2 * b[i]}) / 2\)
这样的话,我们只需要考虑如何统计前一部分的贡献即可。前一部分的贡献是多少呢?就是平面上所有的点 \((-a[j], -b[j])\) 到达 \((a[i],b[i])\) 的方案数。这个我们可以 \(a[i]^{2}\)的 dp 统计。**启示:有时缩小限制好,有时放宽限制容斥计算大法好哇~~
- #include <bits/stdc++.h>
- using namespace std;
- #define maxn 2500000
- #define mod 1000000007
- #define maxm 4020
- #define int long long
- int n, a[maxn], b[maxn], inv[maxn], fac[maxn];
- int ans, m, S = , f[maxm][maxm];
- int read()
- {
- int x = , k = ;
- char c; c = getchar();
- while(c < '' || c > '') { if(c == '-') k = -; c = getchar(); }
- while(c >= '' && c <= '') x = x * + c - '', c = getchar();
- return x * k;
- }
- void Up(int &x, int y) { x = (x + y) % mod; }
- int C(int n, int m)
- {
- if(n < m || m < || n < ) return ;
- return fac[n] * inv[m] % mod * inv[n - m] % mod;
- }
- void pre()
- {
- fac[] = fac[] = ; inv[] = inv[] = ;
- for(int i = ; i < maxn; i ++) fac[i] = fac[i - ] * i % mod;
- for(int i = ; i < maxn; i ++) inv[i] = (mod - mod / i) * inv[mod % i] % mod;
- for(int i = ; i < maxn; i ++) inv[i] = inv[i] * inv[i - ] % mod;
- }
- signed main()
- {
- pre(); n = read();
- for(int i = ; i <= n; i ++)
- {
- a[i] = read(), b[i] = read();
- f[-a[i] + S][-b[i] + S] ++;
- }
- m = * S;
- for(int i = ; i <= m; i ++)
- for(int j = ; j <= m; j ++)
- Up(f[i][j], (f[i - ][j] + f[i][j - ]) % mod);
- for(int i = ; i <= n; i ++)
- {
- Up(ans, f[a[i] + S][b[i] + S]);
- Up(ans, mod - C( * (a[i] + b[i]), * a[i]));
- }
- printf("%lld\n", ans * inv[] % mod);
- return ;
- }
【题解】Atcoder AGC#01 E-BBQ Hard的更多相关文章
- [题解] Atcoder AGC 005 F Many Easy Problems NTT,组合数学
题目 观察当k固定时答案是什么.先假设每个节点对答案的贡献都是\(\binom{n}{k}\),然后再减掉某个点没有贡献的选点方案数.对于一个节点i,它没有贡献的方案数显然就是所有k个节点都选在i连出 ...
- 【题解】Atcoder AGC#16 E-Poor Turkeys
%拜!颜神怒A此题,像我这样的渣渣只能看看题解度日╭(╯^╰)╮在这里把两种做法都记录一下吧~ 题解做法:可以考虑单独的一只鸡 u 能否存活.首先我们将 u 加入到集合S.然后我们按照时间倒序往回推, ...
- 【题解】Atcoder AGC#03 E-Sequential operations on Sequence
仙题膜拜系列...首先我们可以发现:如果在截取了一段大的区间之后再截取一段小的区间,显然是没有什么用的.所以我们可以将操作序列变成单调递增的序列. 然后怎么考虑呢?启示:不一定要考虑每一个数字出现的次 ...
- 【做题记录】AtCoder AGC做题记录
做一下AtCoder的AGC锻炼一下思维吧 目前已做题数: 75 总共题数: 239 每一场比赛后面的字母是做完的题,括号里是写完题解的题 AGC001: ABCDEF (DEF) AGC002: A ...
- AtCoder AGC #2 Virtual Participation
在知乎上听zzx大佬说AGC练智商...于是试了一下 A.Range Product 给$a$,$b$,求$\prod^{b}_{i=a}i$是正数,负数还是$0$ ...不写了 B.Box and ...
- Atcoder Grand Contest 001E - BBQ Hard(组合意义转化,思维题)
Atcoder 题面传送门 & 洛谷题面传送门 Yet another 思维题-- 注意到此题 \(n\) 数据范围很大,但是 \(a_i,b_i\) 数据范围很小,这能给我们什么启发呢? 观 ...
- 题解-AtCoder Code-Festival2017 Final-J Tree MST
Problem \(\mathrm{Code~Festival~2017~Final~J}\) 题意概要:一棵 \(n\) 个节点有点权边权的树.构建一张完全图,对于任意一对点 \((x,y)\),连 ...
- 题解-AtCoder Code-Festival2017qualA-E Modern Painting
Problem CODE-FESTIVAL 2017 qual A 洛谷账户的提交通道 题意:有一个\(n\)行\(m\)列的方格,在边界外有可能有机器人(坐标为\((0,x),(n+1,x),(x, ...
- 题解——ATCoder AtCoder Grand Contest 017 B - Moderate Differences(数学,构造)
题面 B - Moderate Differences Time limit : 2sec / Memory limit : 256MB Score : 400 points Problem Stat ...
随机推荐
- java 编码二进制写法、十六进制用源代码表示
二进制: int a = 0b10; a其实=2 八进制: int a = 01; a其实=8 十六进制: int a = 0x1; a其实=16
- CC3200-LAUNCHXL仿真器驱动异常(未完成)
1. 测试中发现,跳线帽J2和J3连接的情况下,驱动不正常如图2,不连接的情况下,驱动正常,VCC_LDO_3V3给仿真器FT2232供电,VCC_BRD这个电源很奇怪,用途不清晰,VBAT_CC是给 ...
- libevent学习六(Connect listeners )
创建与释放 //backlog需要查询平台说明,在linux2.2以后 backlog就变成了已完成连接但未accept的队列的最大值(原来是处于syn状态的,现在换成sysctl 控制的参数tc ...
- WPF & EF & Prism useful links
Prism Attributes for MEF https://msdn.microsoft.com/en-us/library/ee155691%28v=vs.110%29.aspx Generi ...
- 前端开发工程师 - 01.页面制作 - 第1章.Photoshop切图
第1章--Photoshop切图 工具.面板.视图 什么是切图? 1. 从设计稿(.psd)中切出网络素材,如按钮.图标.logo.背景图等 2. 编写代码,在代码中使用图片,生成静态页面 --给网页 ...
- 参数为json格式的接口
1.参数为json格式,需要添加一个header信息web_add_header("Content-type", "application/json"); 2. ...
- 天平 (Not so Mobile UVA - 839)
题目描述: 题目思路: 1.DFS建树 2.只有每个树的左右子树都平衡整颗树才平衡 #include <iostream> using namespace std; bool solve( ...
- MyBatis 注解配置及动态SQL
一.注解配置 目前MyBatis支持注解配置,用注解方式来替代映射文件,但是注解配置还是有点不完善,在开发中使用比较少,大部分的企业还是在用映射文件来进行配置.不完善的地方体现在于当数据表中的字段 ...
- spring 整合hibernate注解时候,出现“Unknown entity: com.ssh.entry.Admin; nested exception is org.hibernate.MappingException: Unknown entity: com.ssh.entry.Admin”异常的问题
今天学习使用ssh框架的时候,出现一个异常,弄了好久才找到,在这记录一下,我的sb错误1.spring整合hibernate,取代*.hbm.xml配置文件 在applicationContext ...
- Python3 小工具-ICMP扫描
from scapy.all import * import optparse import threading import os def scan(ipt): pkt=IP(dst=ipt)/IC ...