bzoj3505 [Cqoi2014]数三角形
2017-09-08 22:31
225 查看
题目
先选3个点的总数减去三点共线的,横的,竖的,斜的,都一减就好了。
先选3个点的总数减去三点共线的,横的,竖的,斜的,都一减就好了。
#include<bits/stdc++.h> #define N 1000 using namespace std; int gcd[N+1][N+1]; int m,n; long long tmp,ans; int read() { int x=0; char c=getchar(); while(c>'9'||c<'0')c=getchar(); while(c<='9'&&c>='0')x=x*10+c-'0',c=getchar(); return x; } int GCD(int a,int b) { if(a<b)swap(a,b); if(gcd[a][b]!=-1)return gcd[a][b]; return gcd[a][b]= b==0?a:GCD(b,a%b); } int main() { memset(gcd,-1,sizeof(gcd)); n=read(),m=read(); tmp=(long long)(n+1)*(m+1); ans=tmp*(tmp-1)*(tmp-2)/6; for(int i=0;i<=n;i++) { for(int j=0;j<=m;j++) if(i||j) { if(!i||!j)ans-=(long long)(GCD(i,j)-1)*(n-i+1)*(m-j+1); else ans-=(long long)2*(GCD(i,j)-1)*(n-i+1)*(m-j+1); } } cout<<ans; return 0; }
相关文章推荐
- BZOJ3505 [Cqoi2014]数三角形
- bzoj 3505: [Cqoi2014]数三角形
- BZOJ-3505-数三角形-CQOI2014
- 【组合数学】BZOJ3505 [Cqoi2014]数三角形
- bzoj 3505: [Cqoi2014]数三角形 数学
- 【BZOJ 3505】 [Cqoi2014]数三角形 容斥原理+排列组合+GCD
- BZOJ-3505-数三角形-CQOI2014
- 【bzoj 3505】: [Cqoi2014]数三角形
- bzoj 3505 [Cqoi2014]数三角形(组合计数)
- BZOJ 3505: [Cqoi2014]数三角形
- BZOJ 3505 [Cqoi2014]数三角形(组合数学)
- bzoj3505: [Cqoi2014]数三角形
- bzoj 3505: [Cqoi2014]数三角形
- [BZOJ3505][Cqoi2014]数三角形(组合数学+gcd)
- BZOJ3505 [Cqoi2014]数三角形
- bzoj3505 [Cqoi2014]数三角形
- 【bzoj3505】[Cqoi2014]数三角形
- BZOJ 3505: [Cqoi2014]数三角形 [组合计数]
- bzoj3505 [Cqoi2014]数三角形
- BZOJ3505 [Cqoi2014]数三角形