\(\\\)

Description


求 \(N\times M\) 的网格图上有多少个格点构成的三角形。

当三点共线的时候我们不认为这是一个三角形。

  • \(n,m\le 10^4\)

\(\\\)

Solution


正难则反。容斥出答案。

总的选择三个点的方案数为 \(C_{n\times m}^3\) 。

需要去掉:

  • 同一行的三个点 \(n\times C_m^3\)

  • 同一列的三个点 \(m\times C_n^3\)

  • 共斜线上的三个点。

但是注意!斜线的斜率可能不为 \(1\) 或 \(-1\) 。

因为有这样的东西存在:

考虑怎么去掉每一条斜线上选三个整点的方案数。

这个思路就很厉害了。

考虑枚举一个向量。

对于枚举的一个向量 \((i,j)\ |\ i\le n,j\le m\) ,在整个网格图中有\((n-i)\times(m-j)\times 2\) 个线段与之对应。

解释一下 \(\times 2\) 的含义是,对斜率取相反数得到的所有线段,显然个数与原来相同。

然后为了不重复,我们强制选择线段的两个端点,然后选择一个线段上的整点。

线段上不算端点的整点个数是 \((i,j)-1\) ,因为这一线段上整点坐标只能表示为 \((\frac i{(i,j)}\times k,\frac j{(i,j)}\times k)\)

然后在总方案里去掉 \(C_{(i,j)-1}^1\times (n-i)\times (m-j)\times 2\) 就可以了。

关于正确性多说一句:

考虑两个重合的向量,大的向量计数里一定不会包含小的计数,因为小的计数的每一个情况,都有两个点在大的线段上,不符合大的计数要求。

如图,蓝线上一个合法的组合用三个箭头表示,其中必然存在形如绿色的两个箭头的选择,而他们都在黑色线段上,不符合黑色计数要求。

\(\\\)

Code


#include<cmath>
#include<cstdio>
#include<cctype>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
#define R register
using namespace std;
typedef long long ll; ll n,m,ans; ll C(ll x){return (x*(x-1)/2)*(x-2)/3;} ll gcd(ll a,ll b){return b?gcd(b,a%b):a;} int main(){
scanf("%lld%lld",&n,&m);
++n; ++m;
ans=C(n*m)-n*C(m)-m*C(n);
for(R ll i=1;i<=n;++i)
for(R ll j=1,res;j<=m;++j){
res=1+gcd(i,j);
if(res>=3) ans-=(res-2)*(n-i)*(m-j)*2;
}
printf("%lld\n",ans);
return 0;
}

[ CQOI 2014 ] 数三角形的更多相关文章

  1. [CQOI 2014] 数三角形 & 机械排序臂

    数三角形 bzoj 3505 要知道一个公式就是(a,b)和(x,y)两点所成线段上面的整点数是gcd(a-x,b-y)-1,通过枚举原点到map上任意一点所能成的三角形,再平移,得到要去掉的三点共线 ...

  2. BZOJ 3505 CQOI 2014 数三角形 数学

    标题效果:到m*n该网络格,问:有网络格是一个三角形的顶点的数目. 思维:数学.首先计算所有三个相同的,不.然后,在上线的一个点失去了三个点是其中.需要注意的是,答案开放long long. CODE ...

  3. 【bzoj3505】[Cqoi2014]数三角形

    [bzoj3505][Cqoi2014]数三角形 2014年5月15日3,5230 Description 给定一个nxm的网格,请计算三点都在格点上的三角形共有多少个.下图为4×4的网格上的一个三角 ...

  4. 数三角形 bzoj 1201

    数三角形(1s 128MB)triangle [题目描述] 小苏看到一个这样的等边三角形:该等边三角形每边的长度为n且被分成n等份,于是每条边就有n-1个等分点.而整个三角形被连接两个不同边的等分点且 ...

  5. [Usaco2010 OPen]Triangle Counting 数三角形

    [Usaco2010 OPen]Triangle Counting 数三角形 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 394  Solved: 1 ...

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

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

  7. bzoj 1914: [Usaco2010 OPen]Triangle Counting 数三角形 容斥

    1914: [Usaco2010 OPen]Triangle Counting 数三角形 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 272  Sol ...

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

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

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

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

随机推荐

  1. CAS--CompareAndSwap原理

    1.CAS(Compare-and-Swap),即比较并替换,是一种实现并发算法时常用到的技术,Java并发包中的很多类都使用了CAS技术. CAS需要有3个操作数:内存地址V,旧的预期值A,即将要更 ...

  2. Linux system log avahi-daemon[3640]: Invalid query packet.

    2014-06-11 Check the Linux system log find the errorr: Jun  9 11:18:49 hostname avahi-daemon[3640]: ...

  3. WinExec可能会引起消息重入

    WinExec不仅会造成延迟,并且还会引起消息的重入. 以下是调用堆栈: WinvoiceCC.exe!CWinvoiceCCDlg::OnMsgHttpReq(unsigned int wParam ...

  4. vue全局注册与局部注册的写法

    vue全局注册是每个实例化的vue都可以使用,而局部则是实例化注册的那个可以用.举个例子,看看写法: <div id="app"> <p>页面载入时,inp ...

  5. SQL Server游标 C# DataTable.Select() 筛选数据 什么是SQL游标? SQL Server数据类型转换方法 LinQ是什么? SQL Server 分页方法汇总

    SQL Server游标   转载自:http://www.cnblogs.com/knowledgesea/p/3699851.html. 什么是游标 结果集,结果集就是select查询之后返回的所 ...

  6. HttpURL连接远程serverGet和Post方式请求并返回数据

    查看原文:http://www.ibloger.net/article/1813.html package cn.gis; import java.io.BufferedReader; import ...

  7. PSAM卡之常用APDU指令错误码【转】

    本文转载自:http://blog.csdn.net/lvxiangan/article/details/53933714 PSAM卡的内容交互,是通过APDU指令完成的,常见的APDU报文格式如下: ...

  8. android 使用AlarmManager定时启动service

    private static AlarmManager am; private static PendingIntent pendingIntent; /** * 使用 AlarmManager 来 ...

  9. bzoj 1924 所驼门王的宝藏

    题目大意: 有一个r*c的矩阵,上面有n个点有宝藏 每个有宝藏的点上都有传送门 传送门有三种:第一种可以传到该行任意一个有宝藏的点,第二种可以传到该列任意一个有宝藏的点,第三种可以传到周围的八连块上有 ...

  10. BZOJ_4398_福慧双修&&BZOJ_2407_探险_分治+dij

    BZOJ_4398_福慧双修&&BZOJ_2407_探险_分治+dij Description 菩萨为行,福慧双修,智人得果,不忘其本. ——唐朠立<大慈恩寺三藏法师传> ...