BZOJ3505 CQOI2014数三角形(组合数学)
显然可以用总方案数减掉三点共线的情况。对于三点共线,一个暴力的做法是枚举起点终点,其间整点数量即为横纵坐标差的gcd-1。这样显然会T,注意到起点终点所形成的线段在哪个位置是没有区别的,于是枚举线段算出这样的线段条数就可以了。
似乎可以莫比乌斯反演一波。
#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<cstring>
#include<algorithm>
using namespace std;
int read()
{
int x=,f=;char c=getchar();
while (c<''||c>'') {if (c=='-') f=-;c=getchar();}
while (c>=''&&c<='') x=(x<<)+(x<<)+(c^),c=getchar();
return x*f;
}
#define ll long long
int n,m;
ll ans;
ll C(int x,int y){return 1ll*x*(x-)*(x-)/;}
int gcd(int n,int m){return m==?n:gcd(m,n%m);}
int main()
{
#ifndef ONLINE_JUDGE
freopen("bzoj3505.in","r",stdin);
freopen("bzoj3505.out","w",stdout);
const char LL[]="%I64d\n";
#else
const char LL[]="%lld\n";
#endif
n=read(),m=read();
ans=C((n+)*(m+),);
for (int i=;i<=n;i++)
for (int j=;j<=m;j++)
if (i|j) ans-=1ll*(n+-i)*(m+-j)*(gcd(i,j)-)<<(i&&j);
cout<<ans;
return ;
}
BZOJ3505 CQOI2014数三角形(组合数学)的更多相关文章
- bzoj 3505: [Cqoi2014]数三角形 组合数学
3505: [Cqoi2014]数三角形 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 478 Solved: 293[Submit][Status ...
- [bzoj3505][CQOI2014]数三角形_组合数学
数三角形 bzoj-3505 CQOI-2014 题目大意:给你一个n*m的网格图,问你从中选取三个点,能构成三角形的个数. 注释:$1\le n,m\le 1000$. 想法:本来是想着等中考完了之 ...
- BZOJ3505 [Cqoi2014]数三角形
本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000作者博客:http://www.cnblogs.com/ljh2000-jump/转 ...
- [bzoj3505 Cqoi2014] 数三角形 (容斥+数学)
传送门 Description 给定一个nxm的网格,请计算三点都在格点上的三角形共有多少个.下图为4x4的网格上的一个三角形. 注意三角形的三点不能共线. Input 输入一行,包含两个空格分隔的正 ...
- bzoj3505: [Cqoi2014]数三角形 [数论][gcd]
Description 给定一个nxm的网格,请计算三点都在格点上的三角形共有多少个.下图为4x4的网格上的一个三角形. 注意三角形的三点不能共线. Input 输入一行,包含两个空格分隔的正整数m和 ...
- 【排列组合】bzoj3505 [Cqoi2014]数三角形
http://blog.csdn.net/zhb1997/article/details/38474795 #include<cstdio> #include<algorithm&g ...
- Luogu P3166 [CQOI2014]数三角形 组合数学
好题鸭.. 不好直接求三角形个数,那就用全集-补集,转化为求三点共线的数量. 具体求法是求出水平共线数量与竖直共线数量和斜线共线数量. 用排列组合的知识可知为水平和竖直的为$C_n^3$与$C_m^ ...
- 2018.09.09 bzoj3505: [Cqoi2014]数三角形(容斥原理+简单计数)
传送门 正难则反. 可以直接把问题转化成求出三点共线的情况数量. 如果同在一排或一列显然可以直接算,关键是如何求出斜着的. 我们知道,对于一个整点矩形. 如果长为x,宽为y,那么这个矩形任意一条对角线 ...
- bzoj3505 [Cqoi2014]数三角形——组合数+容斥
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3505 好题啊好题...好像还曾经出现在什么智力测试卷中来着...当时不会现在还是无法自己推出 ...
随机推荐
- java 学习------JDK1.8安装与配置
1.下在JDK 1.8 2.解压安装 (一般选择默认路径安装) 3.配置环境变量 (我的电脑是windows10 系统) (1)计算机→属性→高级系统设置→高级→环境变量 (2)添加 JAVA ...
- Git使用—第一讲:初识版本控制工具
几乎所有出色的项目都不是一个人完成的,而是由一个团队共同合作开发完成的,这个时候多人之间的代码同步问题就显得异常重要了,因此版本控制工具也就应运而生了.常见的版本控制工具主要有SVN和Git,接下来要 ...
- 通过socket获取图片并保存
网络操作的相关API gethostbyname/gethostbyaddr/getservbyname struct hostent *gethostbyname(const char *name) ...
- Python内存优化:Profile,slots,compact dict
实际项目中,pythoner更加关注的是Python的性能问题,之前也写过一篇文章<Python性能优化>介绍Python性能优化的一些方法.而本文,关注的是Python的内存优化,一般说 ...
- [拍摄]日本AVENIR 6-36mm老式变焦镜头拆解 型号SSL06036M
老式监控摄像头的变焦镜头,做工不错,拆了分享一下 品牌:AVENIR型号:SSL06036M光圈:1:1.2产地:日本焦距:6-36mm 外观 图片:QQ截图20141104125759.jpg 图片 ...
- LVDS时序分析
LVDS时序分析 2012年05月07日 11:48:08 Walle 阅读数:3355 标签: 平台工作 最近在调试基于telechip平台的LVDS驱动,一开始对该平台的LVDS时序不是很了解 ...
- 外部Jenkins调用容器中Slave配置实践
1.Jenkins配置 实现动态生成的Slave节点并调用,解决构建项目出现slave节点任务堵塞或者是slave宕机问题.容器平台采用openshift. 参考配置文档:https://blog.c ...
- Luogu3676 小清新数据结构题 动态点分治
传送门 换根类型的统计问题动态点分治都是很好做的. 设所有点的点权和为$sum$ 首先,我们先不考虑求$\sum\limits_i s_i^2$,先考虑如何在换根的情况下求$\sum\limits_i ...
- Luogu3527 POI2011 Meteors 整体二分、树状数组、差分
传送门 比较板子的整体二分题目,时限有点紧注意常数 整体二分的过程中将时间在\([l,mid]\)之间的流星使用树状数组+差分进行维护,然后对所有国家查看一遍并分好类,递归下去,记得消除答案在\([m ...
- HTML 图片轮播制作工具
下载地址:http://wowslider.com/download/wowslider-win-setup.zip?utm_source=free_downl_win&utm_medium= ...