题意:

解法:

题目要求:
任选三个点连接成三角形,
满足这个三角形内有奇数个整数点,
且三角形的面积是整数.
求方案数数据范围:
n<=6000,
0<=(x,y)<=1e7,
每个点的坐标都是偶数.皮克定理:
设面积为S,I为多边形内整数点的数量,B为多边形边上整数点的数量,
那么有:
S=I+B/2-1由于给定点的坐标都是偶数,
可推出S也一定是偶数.题目要求I是奇数,
我们只需要考虑奇偶性,
那么S,1,I都是已知的了.我们看看B需要满足什么条件,
先将式子变为:
S-B/2+1=IS是偶数,1是奇数,I是奇数,
那么只需要满足B/2是偶数.
即B必须是4的倍数.问题变为选出三个点连成三角形,满足边上点的总个数是4的倍数.(x1,x2),(y1,y1)的连线,边上整数点的个数为:gcd(x1-x2,y1-y2)+1.
三条边的总个数为(gcd1+1)+(gcd2+1)+(gcd3+1)-3=gcd1+gcd2+gcd3.
减3是因为三个点被重复计算了一次.由于坐标一定是偶数,因此gcd一定是偶数,
为了使gcd的和%4=0,有两种情况:
1.三个gcd都为0
2.一个gcd为0,两个gcd为2.1.对于情况1,需要满足三对下标差是4的倍数.
下标差是4的倍数,那么两两之间x%4和y%4一定相等.
2.对于情况2,需要满足一对下标查是4的倍数,另外两对下标差是2的倍数但不是4的倍数.
下标差是4的倍数,那么两两之间x%4和y%4一定相等.
下标差是2的倍数,那么一个点x%4=1,一个点x%4=3,或者x%4=0和x%4=2
'因为x和y是偶数,所以x%4和y%4一定是0或者2',
所以下标差为2一定是x%4=0和x%4=2.
y也需要满足以上条件,我就不写了.发现只需要考虑坐标%4的情况即可.
先对坐标%4,那么只有cnt[4][4]种点需要计算了,
暴力计算即可.

code:

#include<bits/stdc++.h>
// #define MULTI_CASE
#define SYNC_OFF
#define PI pair<int,int>
#define ll long long
// #define int long long
using namespace std;
int gcd(int a,int b){return b==0?a:gcd(b,a%b);
}
// const int mod=998244353;
const int mod=1e9+7;
const int maxm=2e6+5;
int n;
void solve(){cin>>n;int cnt[4][4]={0};for(int i=1;i<=n;i++){  //题目保证所有坐标是偶数int x,y;cin>>x>>y;cnt[x%4][y%4]++;//因为x和y是偶数,所以x%4和y%4一定是0或者2}ll ans=0;//因为x和y是偶数,所以x%4和y%4一定是0或者2for(int i=0;i<4;i+=2){for(int j=0;j<4;j+=2){int q=cnt[i][j];//情况1:两两%4相等ans+=1ll*q*(q-1)*(q-2)/6;//情况2:一对gcd=0,两对gcd=2//gcd=0从cnt[i][j]取出两个//gcd=2则需要再找一种点,枚举找for(int x=0;x<4;x+=2){for(int y=0;y<4;y+=2){int g=gcd(abs(x-i),abs(y-j));if(g==2){//需要满足gcd=2int e=cnt[x][y];ans+=1ll*q*(q-1)/2*e;}}}}}cout<<ans<<endl;
}
void Main(){#ifdef MULTI_CASEint T;cin>>T;while(T--)#endifsolve();
}
void Init(){#ifdef SYNC_OFFios::sync_with_stdio(0);cin.tie(0);#endif#ifndef ONLINE_JUDGEfreopen("../in.txt","r",stdin);freopen("../out.txt","w",stdout);#endif
}
signed main(){Init();Main();return 0;
}

Codeforces1548 D1. Gregor and the Odd Cows (Easy)(皮克公式+gcd+数学推导)相关推荐

  1. CodeForces - 1549F1 Gregor and the Odd Cows (Easy)(几何+数论)

    题目链接:点击查看 题目大意:给出二维平面上的 nnn 个点,任意选择出三个点可以构成一个三角形,现在问满足下面条件的三角形的个数: 三角形面积为整数 三角形包含的(不包括边界)整数点为奇数 其中所有 ...

  2. CF1548D2 Gregor and the Odd Cows (Hard)

    题意: 网格图上有n个点,不存在三点共线的情况,求面积为整数,内部点的个数为奇数的三角形个数. Solution 简单的版本我做出来了,但是难的还差一点,主要是有几个性质没有发现.观摩大佬的做法,结合 ...

  3. D1. Kirk and a Binary String (easy version)

    题目链接:http://codeforces.com/contest/1204/problem/D1 D1. Kirk and a Binary String (easy version) time ...

  4. Sasha and a Very Easy Test CodeForces - 1109E (数学,线段树)

    大意: 给定n元素序列, q个操作: (1)区间乘 (2)单点除(保证整除) (3)区间求和对m取模 要求回答所有操作(3)的结果 主要是除法难办, 假设单点除$x$, $x$中与$m$互素的素因子可 ...

  5. Codeforces Round #736 (Div. 1Div2)

    Codeforces Round #736 (Div2) Codeforces Round #736 (Div. 1) 题号 题目 难度 A Gregor and Cryptography 签到 B ...

  6. 8分钟带你彻底弄懂《信号与系统》

    本文转载来自:<信号与系统>太easy了 那是因为看过了这篇奇文 大家都知道<信号与系统>是一门很难的课,很多人虽然学过了,但其实什么也没得到,今天给大家推荐这篇文章,看了之后 ...

  7. Doubly Stochastic Normalization for Spectral Clustering

    Abstract 本文主要研究谱聚类中亲和矩阵的归一化问题.我们表明,N-cuts和Ratio-cuts之间的区别在于在寻找与输入亲和矩阵最接近的双随机矩阵时所使用的误差度量(相对熵与L1范数).然后 ...

  8. 3D Vision、SLAM求职宝典 | SLAM知识篇(D1,重点 )

    今日得空,开始愉快的解答!各位看官请指教. 第一部分,先来完成该专题最重要的内容,即笔试面试中所考察的SLAM专业知识. SLAM知识篇所准备的这些问题不一定全面,但是问题都是基于三位求职者的总结回忆 ...

  9. 【套题】qbxt国庆刷题班D1

    Day1 事实上D1的题目还是比较简单的= =然而D1T2爆炸了就十分尴尬--错失一波键盘 看题 T1 传送门 Description 现在你手里有一个计算器,上面显示了一个数\(S\),这个计算器十 ...

  10. LEETCODE-刷题个人笔记 Python(1-400)-TAG标签版本

    1. Array (1) 27. Remove Element(Easy) 给定数组nums和值val,在适当位置删除该值的所有实例并返回新长度. 思路: 不需要使用排序,如果等于该值,则将n-1的值 ...

最新文章

  1. 求小数的小数点的第n位是什么
  2. mysql常见内置函数_MySQL常用内置函数
  3. LeetCode--448
  4. spring hibernate 连接sqlserver 数据库的时候还需要jdbc包吗?
  5. NIO详解(四):NIO编程
  6. OpenCV特征检测Feature Detection
  7. 5.Boost之“资源申请即初始化” RAII
  8. 数据结构-----AVL树的插入删除操作
  9. python的flask实现接口_Flask快速实现简单python接口
  10. [JavaWeb-HTML]HTML概念介绍和快速入门
  11. hadoop大数据开发基础_Java大数据开发(三)Hadoop(2)经典的Hadoop
  12. codevs——1742 爬楼梯
  13. mysql c库 示例_选择MySQL数据库进行连接的简单示例
  14. 十八、x86汇编基础
  15. 计算机科学中的数学第一章答案,翻译《计算机科学与数学》第一章第四节:我们的公理...
  16. “尝鲜”元宇宙,周杰伦最佳拍档方文山将于7月25日官宣《华流元宇宙》
  17. 【论文写作】——设置中英文字体
  18. buildroot构建根文件系统
  19. 微信支付(扫码支付)微信公众平台开发教程(6)
  20. photoshop的应用领域

热门文章

  1. iSCSI部署网络存储
  2. Redis 中的 standalone(单机模式)配置说明和分析
  3. 推断性统计部分(一)---样本与分布的关系及其检验统计量
  4. 不可用来编辑html的文件,Word2016
  5. 优秀工程师必备的三大思维
  6. 阿里云服务器能怎么玩呢?
  7. Javescript REVIEW
  8. 《opencv学习笔记》-- 感兴趣区域(ROI)、图像混合
  9. Visio画出的图,裁剪成固定大小再添加马赛克的方法
  10. 还想打马赛克掩盖身份?人工智能让你告别打码时代