隐藏页面特效

3505: [Cqoi2014]数三角形

3505: [Cqoi2014]数三角形

Time Limit: 10 Sec  Memory Limit: 128 MB
Submit: 1324  Solved: 807
[Submit][Status][Discuss]

Description

给定一个nxm的网格,请计算三点都在格点上的三角形共有多少个。下图为4x4的网格上的一个三角形。

注意三角形的三点不能共线。

Input

输入一行,包含两个空格分隔的正整数m和n。

Output


输出一个正整数,为所求三角形数量。

Sample Input


2 2

Sample Output

76


数据范围
1<=m,n<=1000

HINT

 

Source

弱弱的我,不会推式子,只能这样搞了。

#include<cstdio> #include<algorithm> using namespace std; typedef long long ll; ll ans,t,c[4]; ll C(int n,int k){ c[0]=1; for(int i=1;i<=k;i++) c[i]=c[i-1]*(n-i+1)/i; return c[k]; } int n,m; void solve(){ ans+=C(n*m,3);//总数 ans-=m*C(n,3);//减去同一行 ans-=n*C(m,3);//减去同一列 for(int i=1;i<n;i++){//再减去在斜直线上的 for(int j=1;j<m;j++){ t=__gcd(i,j)+1; if(t>2) ans-=(t-2)*(n-i)*(m-j)*2; } } } int main(){ scanf("%d%d",&n,&m);n++;m++; solve(); printf("%lld\n",ans); return 0; }

 


__EOF__

本文作者shenben
本文链接https://www.cnblogs.com/shenben/p/6287097.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   神犇(shenben)  阅读(252)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示