题目


分析

总方案就是\(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

答案就是

\[C(n*m,3)-n*C(m,3)-m*C(n,3)-\sum_{i=1}^{n-1}\sum_{j=1}^{m-1}2*(n-i)*(m-j)*(gcd(i,j)-1)
\]

记忆化两数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]数三角形的更多相关文章

  1. 【题解】洛谷P3166 [CQOI2014] 数三角形(组合+枚举)

    洛谷P3166:https://www.luogu.org/problemnew/show/P3166 思路 用组合数求出所有的3个点组合(包含不合法的) 把横竖的3个点共线的去掉 把斜的3个点共线的 ...

  2. 洛谷P3166 [CQOI2014]数三角形

    题目描述 给定一个nxm的网格,请计算三点都在格点上的三角形共有多少个.下图为4x4的网格上的一个三角形.注意三角形的三点不能共线. 输入输出格式 输入格式: 输入一行,包含两个空格分隔的正整数m和n ...

  3. BZOJ3505 & 洛谷P3166 [Cqoi2014]数三角形 【数学、数论】

    题目 给定一个nxm的网格,请计算三点都在格点上的三角形共有多少个.下图为4x4的网格上的一个三角形. 注意三角形的三点不能共线. 输入格式 输入一行,包含两个空格分隔的正整数m和n. 输出格式 输出 ...

  4. [CQOI2014]数三角形 题解(组合数学+容斥)

    [CQOI2014]数三角形 题解(数论+容斥) 标签:题解 阅读体验:https://zybuluo.com/Junlier/note/1328780 链接题目地址:洛谷P3166 BZOJ 350 ...

  5. 洛谷P1102 A-B数对

    洛谷P1102 A-B数对 https://www.luogu.org/problem/show?pid=1102 题目描述 出题是一件痛苦的事情! 题目看多了也有审美疲劳,于是我舍弃了大家所熟悉的A ...

  6. 洛谷P1288 取数游戏II(博弈)

    洛谷P1288 取数游戏II 先手必胜的条件需要满足如下中至少 \(1\) 条: 从初始位置向左走到第一个 \(0\) 的位置,经过边的数目为偶数(包含 \(0\) 这条边). 从初始位置向右走到第一 ...

  7. 「BZOJ3505」[CQOI2014] 数三角形

    「BZOJ3505」[CQOI2014] 数三角形 这道题直接求不好做,考虑容斥,首先选出3个点不考虑是否合法的方案数为$C_{(n+1)*(m+1)}^{3}$,然后减去三点一线的个数就好了.显然不 ...

  8. BZOJ 3505: [Cqoi2014]数三角形 数学

    3505: [Cqoi2014]数三角形 Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/pr ...

  9. Bzoj 3505: [Cqoi2014]数三角形 数论

    3505: [Cqoi2014]数三角形 Time Limits: 1000 ms  Memory Limits: 524288 KB  Detailed Limits   Description

  10. bzoj 3505: [Cqoi2014]数三角形 组合数学

    3505: [Cqoi2014]数三角形 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 478  Solved: 293[Submit][Status ...

随机推荐

  1. Hi3516开发笔记(八):Hi3516虚拟机交叉开发环境搭建之配置QtCreator开发交叉编译环境

    海思开发专栏 上一篇:<Hi3516开发笔记(七):Hi3516虚拟机交叉开发环境搭建之交叉编译Qt>下一篇:<Hi3516开发笔记(九):在QtCreator开发环境中引入海思sd ...

  2. Flask学习(三)

    数据库操作 数据库驱动(drivers)模块:pymysql.MySQLDB ORM ORM 全拼Object-Relation Mapping,中文意为 对象-关系映射.主要实现模型对象到关系数据库 ...

  3. Linux Cheat Sheet

  4. 【Azure 环境】Azure应用程序网关设置set_Cookie=key=value; SameSite=Strict; HTTPOnly,AzureAD登录使用cookie时使用不了的案例记录

    问题描述 Azure应用程序网关设置 set_Cookie=key=value; SameSite=Strict; HTTPOnly,AzureAD 登录使用cookie时使用不了. 分析过程 重写网 ...

  5. magic book

    magic book.md body { font-family: var(--vscode-markdown-font-family, -apple-system, BlinkMacSystemFo ...

  6. 2022年RPA行业发展十大趋势,六千字长文助你看懂RPA

    2022年RPA行业发展十大趋势,六千字长文助你看懂RPA 2022年RPA行业如何发展?十大趋势助你看懂RPA行业未来 这里有2022年RPA行业发展的十大趋势,关注RPA的朋友定要收藏! 文/王吉 ...

  7. forward配置

    Adb connect 127.0.0.1:62001 adb forward tcp:27042 tcp:27042     #设置端口转发 adb forward tcp:27043 tcp:27 ...

  8. 使用@RequestBody注解踩的坑

    一.问题由来 最近在和前端调试一个自己写的接口时,频频出现问题,让我很是烦恼.因此写下这篇博文来记录开发中遇到的一些问题.第一个问题是 前端页面传递参数后,后台不能正常接收参数.我写好接口以后,通过s ...

  9. finger 单词学习 词源通 five (penkwe)

    印欧语penkwe - finger p通f 元音i通e 或者说从e降级到i (aeiou) n保持不变 k通g we 怎么转的 er 我也不知道,不嫌麻烦就是 w -> m -> n - ...

  10. WPF之命令

    目录 命令系统的基本元素 基本元素之间的关系 小试命令 WPF的命令库 命令参数 命令与Binding的结合 近观命令 ICommand接口与RoutedCommand 自定义Command 定义命令 ...