链接:https://ac.nowcoder.com/acm/contest/11185/B
来源:牛客网

时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 524288K,其他语言1048576K
64bit IO Format: %lld
题目描述
给定平面上 nn 个整点(横纵坐标均为整数的点)(可能重合),编号为 A_1\sim A_nA
1

∼A
n

,从中选出三个编号不同的点 A_i,A_j,A_kA
i

,A
j

,A
k

(其中 ii 小于 jj 小于 kk)组成一个三角形。有几种选法使得三角形的面积不是整数?
输入描述:
第一行一个正整数 n\ (1\le n\le 10^5)n (1≤n≤10
5
)。

接下来 nn 行,第 ii 行两个整数 x,yx,y,表示 A_i=(x,y)A
i

=(x,y)。(|x|,|y|\le 10^{18})(∣x∣,∣y∣≤10
18
)
输出描述:
输出一行一个非负整数,为答案。
示例1
输入
复制
3
0 0
1 1
2 2
输出
复制
0
示例2
输入
复制
6
0 0
2 2
2 3
4 6
-5 1
-4 3
输出
复制
6

思路 :

  • 由面积公式S=12∣(xi−xz)∗(yj−yz)−(xj−xz)∗(yi−yz)∣S=\frac{1}{2}|(x_i-x_z)*(y_j-y_z)-(x_j-x_z)*(y_i-y_z)|S=21​∣(xi​−xz​)∗(yj​−yz​)−(xj​−xz​)∗(yi​−yz​)∣,得知面积是否为偶数与所选三个点的横纵坐标的奇偶性相关,这样一共有262^626种情况
  • 又因为每次选择以一整个点为单位,因此按输入每一个点的横纵坐标奇偶性直接存储个数
  • 最后,由于所选三个点有顺序,答案除以A33=6A^3_3=6A33​=6
  • 注意最后才除以6,不能在枚举中直接除以6
#include <iostream>
using namespace std;typedef long long ll;ll cnt[3][3];int main()
{ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);int n; cin >> n;for (int i = 0; i < n; i ++ ){ll x, y; cin >> x >> y;cnt[(x % 2 + 2) % 2][(y % 2 + 2) % 2] ++ ;}ll res = 0;for (int a = 0; a < 2; a ++ )for (int b = 0; b < 2; b ++ )for (int c = 0; c < 2; c ++ )for (int d = 0; d < 2; d ++ )for (int e = 0; e < 2; e ++ )for (int f = 0; f < 2; f ++ ){int t = (a - b) * (c - d) - (e - b) * (f - d);if ((t % 2 + 2) % 2 == 1)res += cnt[a][f] * cnt[b][d] * cnt[e][c];}cout << res / 6ll;
}

Non-interger Area 分类讨论 奇偶 取模 牛客练习赛95相关推荐

  1. Duplicate Strings 字符串 取模 牛客练习赛95

    链接:https://ac.nowcoder.com/acm/contest/11185/A 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言52 ...

  2. 牛客练习赛75 D 减数游戏(队列优化(需要取模的)堆)

    牛客练习赛75 D 减数游戏 思路:写一下式子可以发每次选择最小的两个数进行操作,最后得到的答案会是最大的,那我们可以将它放进一个最小堆中来维护,但是里面的数是需要取模的,当它取模的时候,将会变小.那 ...

  3. 奇偶位交换 牛客网 程序员面试金典 C++ Python

    奇偶位交换 牛客网 程序员面试金典 C++ Python 题目描述 请编写程序交换一个数的二进制的奇数位和偶数位.(使用越少的指令越好) 给定一个int x,请返回交换后的数int. 测试样例: 10 ...

  4. 2021牛客多校6 - Hopping Rabbit(矩形取模+扫描线)

    题目链接:点击查看 题目大意:二维平面给出 nnn 个矩形,现在要求找到一个点 (x+0.5,y+0.5)(x+0.5,y+0.5)(x+0.5,y+0.5),满足对于任意的 (x+0.5+k1d,y ...

  5. CF1471 D - Strange Definition(思维,分类讨论,lcm,gcd的性质,数论)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #694 (Div. 2) D 很好的一道数论思维题 D - Str ...

  6. 程序员数学基础【三、取模运算(取余运算功能重叠部分)】(Python版本)

    测试使用语言:[Python] 由于此类语言入门非常容易,哪怕初中生亦可以,并且本科/研究生写论文.做实验多数所用语言都是[Python]故而选择此语言. 代码运行平台:[win10 x64] 代码环 ...

  7. 【C语言简单说】六:取模运算符以及变量的扩展

    ┴┴ (╰(`□′)╯( ┴┴ - 这一节我们就来说另外的运算符--取模运算符(说白了跟取余数差不多-<-_-)!!!) 先看看好难懂的定义:取模运算和取余运算两个概念有重叠的部分但又不完全一致 ...

  8. 【UOJ#33】【UR #2】树上GCD(长链剖分/根号分类讨论)

    [UOJ#33][UR #2]树上GCD 求解树上两个点到lca的距离的最大公约数是k的对数 首先我们很容易就想到莫比乌斯反演,那么利用倍数形式,我们只需要求解是i的倍数的对数. 考虑枚举lca,这个 ...

  9. 取模除法(逆元)(费马小定理)(线性求逆元)

    文章目录 引言 逆元 费马小定理 内容 应用 证明 线性求逆元 thanks for reading! 引言 我们做题时经常会由于答案过大,被要求使答案对一个质数取模 我们都知道,加和乘对取模是没有影 ...

最新文章

  1. python发送文件到邮箱_python发送文件夹内容到邮箱
  2. Android BCM4330 蓝牙BT驱动调试记录
  3. Android中的约束布局
  4. 使用 XML Schema 定义元素的基本知识
  5. C++数据结构struct
  6. hadoop Mapreduce组件介绍
  7. kind富文本编辑器_kind富文本编辑器
  8. Java序列化后isXXX变量没有了
  9. 张量Tensor@最强分析
  10. php将文字生成图片显示,php生成文字图片效果
  11. MOSS入门介绍 和 概念介绍
  12. 听别人的故事探索属于自己的方法
  13. 2021创新创业(张玉臣,叶明海,邵鲁宁)99分期末考试答案
  14. 猜数字小游戏——算法学习
  15. 如何不再成为压力祭品?
  16. Windows 7 桌面便签使用小技巧
  17. 台式安装nas系统_从0开始使用“矿渣”低成本打造家庭NAS,黑群晖系统安装(中)...
  18. LoRa网关在智慧农业应用
  19. 阿尔卡特朗讯企业通信发布下一代的中小企业解决方案 支持云服务
  20. 发现百度百科的cookie更容易理解【手动滑稽】

热门文章

  1. 浅谈移动类型102、122和161区别
  2. ABAP 7.4 新语法-内嵌生命和内表操作
  3. 员工没热情?这8个简单方法比加薪都管用
  4. SAP的成本中心与利润中心的关系
  5. 致远OA如何实施才可行
  6. 角逐同城货运,快狗打车抢跑上市
  7. 旅游O2O“三国杀”竞技:携程系「守」、飞猪「望」、美团「攻」
  8. 八进制数输出二进制c语言,C语言 某数输出二进制的某位
  9. Python中读取文件中的json串,并将其写入到Excel表格中
  10. Python中的高级数据结构详解