皮克公式:求格点多边形面积
A=B2+I−1A=\frac B 2+I-1 A=2B​+I−1
其中
A:area 面积
B:boundary 边界上整点的个数
I:interior 多边形内部点的个数

对于两个整数点(x1,y1),(x2,y2)(x_1,y_1),(x_2,y_2)(x1​,y1​),(x2​,y2​)来说,它们连线上整点的个数为gcd⁡(x2−x1,y2−y1)\gcd(x_2-x_1,y_2-y_1)gcd(x2​−x1​,y2​−y1​)


考虑下面的式子2A=B+2(I−1)2A=B+2(I-1)2A=B+2(I−1)
对于本题来说,首先由于点的坐标都是偶数,那么任意三点组成的三角形面积一定是偶数,并且由题意得满足条件时III为奇数,那么2(i−1)2(i-1)2(i−1)一定时4的倍数,同时2A2A2A也是4的倍数,可以推出B是4的倍数是满足题意的充分必要条件!

由于点的坐标都是偶数点,那么gcd⁡(x2−x1,y2−y1)[mod4\gcd(x_2-x_1,y_2-y_1)[\mod4gcd(x2​−x1​,y2​−y1​)[mod4]只有两种情况即000或者222。

gcd⁡(x2−x1,y2−y1)≡{0,x1≡x2(mod4)andy1≡y2(mod4)2,else\gcd(x_2-x_1,y_2-y_1)\equiv \begin{cases}0,x_1\equiv x_2\pmod4 \text{and} y_1 \equiv y_2\pmod4\\2,\text{else} \end{cases}gcd(x2​−x1​,y2​−y1​)≡{0,x1​≡x2​(mod4)andy1​≡y2​(mod4)2,else​


太晚了懒得写了,放的dls的代码p\color{black}\text ppreehs_moorhsum\color{red}\text {reehs\_moorhsum}reehs_moorhsum

#include <bits/stdc++.h>using namespace std;
using ll=long long;
const int maxn=7005;int n, x[maxn], y[maxn];
int cnt[10][10], d[maxn][maxn];
ll ans;
pair<int,int> g[maxn];
int main() {scanf("%d", &n);for (int i = 1; i <= n; i++) {scanf("%d%d", x + i, y + i);cnt[x[i] % 4][y[i] % 4]++;g[i] = make_pair(x[i] % 4, y[i] % 4);}vector<pair<int,int>> p{{0, 0}, {0, 2}, {2, 0}, {2, 2}};for (auto x : p)for (auto y : p)for (auto z : p)if (x <= y && y <= z) {int d1 = (x == y) ? 0 : 2, d2 = (y == z) ? 0 : 2,d3 = (x == z) ? 0 : 2;int c1 = cnt[x.first][x.second], c2 = cnt[y.first][y.second], c3 = cnt[z.first][z.second];if ((d1 + d2 + d3) % 4 == 0) {if (x == y && y == z) {ans += (ll)c1 * (c1 - 1) * (c1 - 2) / 6;} else if (x == y) {ans += (ll)c1 * (c1 - 1) / 2 * c3;} else if (y == z) {ans += (ll)c1 * c3 * (c3 - 1) / 2;} else {ans += (ll)c1 * c2 * c3;}}}printf("%lld\n", ans);/*  for (int i = 1; i <= n; i++)for (int j = i + 1; j <= n; j++)d[i][j] = abs(__gcd(x[i] - x[j], y[i] - y[j]));int ans2 = 0;for (int i = 1; i <= n; i++)for (int j = i + 1; j <= n; j++)for (int k = j + 1; k <= n; k++) {assert(((d[i][j] + d[j][k] + d[i][k]) % 4 == 0) ==(g[i] == g[j] || g[j] == g[k] || g[k] == g[i]));if ((d[i][j] + d[j][k] + d[i][k]) % 4 == 0) {ans2++;}}printf("%d\n", ans2);*/
}

codeforces1549 F1 - Gregor and the Odd Cows (Easy)(皮克公式)相关推荐

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

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

  2. CF1548D2 Gregor and the Odd Cows (Hard)

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

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

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

  4. 粒子群算法(1)----粒子群简要

    一.历史粒子群算法  从复杂适应系统衍生PSO算法(Complex Adaptive System,CAS).CAS理论于1994年正式提出,CAS中的成员称为主体.比方研究鸟群系统,每一个鸟在这个系 ...

  5. vscode 一些基本知识

    Visual Studio Code (简称 VS Code / VSC) 是一款免费开源的现代化轻量级代码编辑器,支持几乎所有主流的开发语言的语法高亮.智能代码补全.自定义热键.括号匹配.代码片段. ...

  6. VS Code 快捷键使用小技巧

    相关文档 官方文档(英文版):Documentation for Visual Studio Code 中文文档(未完成):GitHub - jeasonstudio/CN-VScode-Docs: ...

  7. vsc 好用的插件

    Visual Studio Code (简称 VS Code / VSC) 是一款免费开源的现代化轻量级代码编辑器,支持几乎所有主流的开发语言的语法高亮.智能代码补全.自定义热键.括号匹配.代码片段. ...

  8. vscode如何查看修改过的部分_VS Code 使用小技巧

    相关文档 这里提一句,,上面的中文文档是我早期建的一个仓库,希望大家一起来为 VSCode 的中文社区的发展做出贡献,欢迎 fork & star 下载 简介 VSCode是微软推出的一款轻量 ...

  9. 教你如何求多项式的系数

    在数学书我们曾经学过求多项式系数的问题吧,但是编程上怎么办呢? 先给一道例题看看吧 Easy Task Calculating the derivation of a polynomial is an ...

  10. CSS 学习笔记——CSS Selector

    CSS1 中定义的选择器 类型选择器 用于选择指定类型的元素(其实他就是 html 标签选择器),常见用法如下: body {/*对 body 元素定义样式*/ }body,div {/*同时选择多种 ...

最新文章

  1. phar.php error 139,composer.phar 安装出现PHP Fatal error解决办法
  2. 记录在Ubuntu14.04上安装ryu中遇到的各种坑
  3. TCP/IP详解--第七章
  4. 为什么写Java程序需要接口
  5. 手动抛出异常_Java异常处理最佳实践及陷阱防范
  6. CentOS 7 各个版本的区别
  7. 大数据只做三件事,对用户的理解、对信息的理解、对关系的理解
  8. SharePoint 2010新体验9 - 内容管理器(Content Organizer)
  9. python数学符号读法大全_高等数学中所有符号的读法
  10. MAC CPU温度监视及风扇速度控制软件
  11. 如何训练大脑提升专注力
  12. prolog与python_python中prolog事实词法分析器
  13. 烤氏历史第4集:TD往事-商用分水岭
  14. iVMS-4200 Vs区别_菲尔·杰克逊揭示了迈克尔·乔丹和科比·布莱恩特之间的关键区别...
  15. 英特尔最新超级计算机,全球超级计算机500强三分之二使用英特尔的处理器
  16. 《A Novel Approach to 3-D Gaze Tracking Using Stereo Cameras》论文阅读
  17. 【逍遥模拟器】注册微信提示环境异常怎么解决?
  18. P5200 [USACO19JAN]Sleepy Cow Sorting G
  19. [1600]卡斯丁狗要吃糖葫芦
  20. Windows7 使用SMB服务实现局域网共享文件

热门文章

  1. 如何创建计算机的桌面快捷方式,怎样创建桌面快捷方式 创建桌面快捷方式N种方法...
  2. 老师用计算机教我们画画拼音,《汉语拼音13 ang eng ing ong》第三课时教学设计...
  3. 闲谈IPv6-体会一下移动IP路由扩展头以及地址选项头的实际操作(Howto)
  4. 基于用户的协同过滤推荐算法的实现--以电影推荐为例
  5. 流氓软件驱动精灵 强制锁定浏览器主页
  6. JavaScript ,js基础
  7. 地址解析协议(ARP)
  8. 【李沐精读GNN论文总结】A Gentle Introduction to Graph Neural Networks
  9. mysql一张表有几个主键_一张表可以有多少个主键
  10. This account is currently not available 解决办法