bzoj3505
2015-09-04 20:21
417 查看
枚举对角线。。。
View Code
Submit: 771 Solved: 471
[Submit][Status][Discuss]
注意三角形的三点不能共线。
数据范围
1<=m,n<=1000
#include<bits/stdc++.h> #define lowbit(a) ((a)&(-(a))) #define clr(a,x) memset(a,x,sizeof(a)) #define rep(i,l,r) for(int i=l;i<(r);i++) typedef long long ll; using namespace std; int read() { char c=getchar(); int ans=0,f=1; while(!isdigit(c)){ if(c=='-') f=-1; c=getchar(); } while(isdigit(c)){ ans=ans*10+c-'0'; c=getchar(); } return ans*f; } int n,m; ll gcd(ll a,ll b){ return b?gcd(b,a%b):a; } ll f(ll x){ return x*(x-1)*(x-2)/6; } int main() { n=read();m=read();++n;++m; ll ans=f(n*m)-ll(n)*f(m)-ll(m)*f(n); rep(i,1,n){ rep(j,1,m){ ans-=(gcd(i,j)-1)*(n-i)*(m-j)<<1; } } cout<<ans<<endl; return 0; }
View Code
3505: [Cqoi2014]数三角形
Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 771 Solved: 471
[Submit][Status][Discuss]
Description
给定一个nxm的网格,请计算三点都在格点上的三角形共有多少个。下图为4x4的网格上的一个三角形。注意三角形的三点不能共线。
Input
输入一行,包含两个空格分隔的正整数m和n。Output
输出一个正整数,为所求三角形数量。Sample Input
2 2Sample Output
76数据范围
1<=m,n<=1000
HINT
Source
相关文章推荐
- 读取视频文件
- OpenCV学习:找出人脸,同时比较两张图片中的人脸相似度
- 初识UML
- CCF 201403-4 无线网络 (二维最短路)
- 【codeforces26A】Almost Prime
- java下io文件切割合并功能加配置文件
- poj 3685 Matrix(二分搜索之查找第k大的值)
- 9-4第二次简单实验
- linux怎样从vi退出到shell
- uva1368 - DNA Consensus String
- 微软Win 10操作系统CPU使用率居高不下怎么办?试试这些方法
- 神经网络的cost function
- 剑指offer 二进制中1的个数
- [华为MU203] 使用AT命令实现网络访问
- ubuntu下chromium浏览器flash插件安装
- linux+iptables搭建网关服务器
- 剑指offer——面试题:42(二)s的连续正数序列
- usaco Agri-Net
- shell syntax
- ubuntu下修改文件夹权限