#最大公约数,容斥#洛谷 3166 [CQOI2014]数三角形
分析
总方案就是\(C(n*m,3)\),考虑减掉不合法的方案,
横向\(n*C(m,3)\),纵向\(m*C(n,3)\)再减去斜着的,
对于\((x_1,y_1)(x_2,y_2),x_1<x_2,y_1<y_2\)上有\(gcd(x_2-x_1,y_2-y_1)-1\)个整点
那可以枚举\((i=x_2-x_1,j=y_2-y_1)\),由于这两个点有可能会满足\(x_1<x_2,y_1>y_2\),所以方案数要乘上2
答案就是
\]
记忆化两数gcd就可以做到\(O(nm)\)了,当然推式子做到\(O(min(n,m))\)也可以
代码
#include <cstdio>
#define rr register
int n,m,Gcd[1001][1001]; long long ans;
inline signed gcd(int x,int y){
if (Gcd[x][y]) return Gcd[x][y];
if (!y) return x; else return gcd(y,x%y);
}
signed main(){
scanf("%d%d",&n,&m),++n,++m;
ans=1ll*n*m*(n*m-1)*(n*m-2)/6;
ans-=1ll*m*n*((n-1)*(n-2)/2+(m-1)*(m-2)/2)/3;
for (rr int i=1;i<n;++i)
for (rr int j=1;j<m;++j){
Gcd[i][j]=gcd(i,j);
ans-=2ll*(n-i)*(m-j)*(Gcd[i][j]-1);
}
return !printf("%lld",ans);
}
#最大公约数,容斥#洛谷 3166 [CQOI2014]数三角形的更多相关文章
- 【题解】洛谷P3166 [CQOI2014] 数三角形(组合+枚举)
洛谷P3166:https://www.luogu.org/problemnew/show/P3166 思路 用组合数求出所有的3个点组合(包含不合法的) 把横竖的3个点共线的去掉 把斜的3个点共线的 ...
- 洛谷P3166 [CQOI2014]数三角形
题目描述 给定一个nxm的网格,请计算三点都在格点上的三角形共有多少个.下图为4x4的网格上的一个三角形.注意三角形的三点不能共线. 输入输出格式 输入格式: 输入一行,包含两个空格分隔的正整数m和n ...
- BZOJ3505 & 洛谷P3166 [Cqoi2014]数三角形 【数学、数论】
题目 给定一个nxm的网格,请计算三点都在格点上的三角形共有多少个.下图为4x4的网格上的一个三角形. 注意三角形的三点不能共线. 输入格式 输入一行,包含两个空格分隔的正整数m和n. 输出格式 输出 ...
- [CQOI2014]数三角形 题解(组合数学+容斥)
[CQOI2014]数三角形 题解(数论+容斥) 标签:题解 阅读体验:https://zybuluo.com/Junlier/note/1328780 链接题目地址:洛谷P3166 BZOJ 350 ...
- 洛谷P1102 A-B数对
洛谷P1102 A-B数对 https://www.luogu.org/problem/show?pid=1102 题目描述 出题是一件痛苦的事情! 题目看多了也有审美疲劳,于是我舍弃了大家所熟悉的A ...
- 洛谷P1288 取数游戏II(博弈)
洛谷P1288 取数游戏II 先手必胜的条件需要满足如下中至少 \(1\) 条: 从初始位置向左走到第一个 \(0\) 的位置,经过边的数目为偶数(包含 \(0\) 这条边). 从初始位置向右走到第一 ...
- 「BZOJ3505」[CQOI2014] 数三角形
「BZOJ3505」[CQOI2014] 数三角形 这道题直接求不好做,考虑容斥,首先选出3个点不考虑是否合法的方案数为$C_{(n+1)*(m+1)}^{3}$,然后减去三点一线的个数就好了.显然不 ...
- BZOJ 3505: [Cqoi2014]数三角形 数学
3505: [Cqoi2014]数三角形 Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/pr ...
- Bzoj 3505: [Cqoi2014]数三角形 数论
3505: [Cqoi2014]数三角形 Time Limits: 1000 ms Memory Limits: 524288 KB Detailed Limits Description
- bzoj 3505: [Cqoi2014]数三角形 组合数学
3505: [Cqoi2014]数三角形 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 478 Solved: 293[Submit][Status ...
随机推荐
- cookie和localStorage和sessionStorage的区别
cookie和localStorage和sessionStorage的区别 下面从几个方向区分一下 cookie,localStorage,sessionStorage 的区别 生命周期: cooki ...
- c# rdkafka 设置偏移量(offset)
参考资料: librdkafka: 如何设置Kafka消费者订阅消息的起始偏移位置 领导要求kafka消费者端消费最新的数据. 不知道怎么设置偏移量,查了资料. 用惯了封装好的东西,都不知道怎么设置了 ...
- 【C++ OOP 02 对象的初始化和清理】构造/析构函数、深/浅拷贝、初始化列表以及静态成员
[对象的初始化和清理] 生活中我们买的电子产品都基本会有出厂设置,在某一天我们不用时候也会删除一些自己信息数据保证安全 C++中的面向对象来源于生活,每个对象也都会有初始设置以及 对象销毁前的清理数据 ...
- 进击的 AI 生成,创造性的新世界!
2022年,AI艺术生成文本生成图像的AI绘画生成器如雨后春笋般涌现,以一幅幅"不明觉厉"的AI作品进入大众视野.从2月Disco Diffusion爆火,仅两个月后OpenAI发 ...
- NebulaGraph v3.3.0 发布:支持子图过滤、和大量性能优化
NebulaGraph 3.3.0 支持了 GET SUBGRAPH 和 GetNeighbors 的点过滤.引入了大量性能优化,同时,开始对无 tag 顶点的支持默认关闭. 优化 优化了 k-hop ...
- 关闭mysql上锁的表/数据
一.输入查询语句,查看是否有数据被上锁 select * from information_schema.innodb_trx; 取 trx_mysql_thread_id 字段值 kill < ...
- 第12章_MySQL数据类型
目录: https://www.cnblogs.com/xjwhaha/p/15844178.html 1. MySQL中的数据类型 类型 类型举例 整数类型 TINYINT.SMALLINT.MED ...
- Java //100以内的质数的输出(从2开始,到这个数-1结束为止,都不能被这个数本身整除)+优化
1 //100以内的质数的输出(从2开始,到这个数-1结束为止,都不能被这个数本身整除) 2 boolean isFlag = true; //标识i是否被j除尽,修改其值 3 4 for(int i ...
- 专访容智信息柴亚团:最低调的公司如何炼成最易用的RPA?
专访容智信息柴亚团:最低调的公司如何炼成最易用的RPA? 专访容智信息柴亚团:终极愿景是助力天下企业成为数字化孪生组织 文/王吉伟 6月,容智信息(容智)正式发布了全新的移动端RPA产品iBot Mo ...
- 酷呆桌面 CooDesker 桌面整理工具 - 软件推荐
酷呆桌面 CooDesker 桌面整理工具 - 软件推荐 推荐理由 满足了我对桌面映射到某一目录的需求,这样桌面就真的干净了 免费且没有广告 可进入目录继续延展,双击空白地方返回上一层,非常方便 5M ...