【计算几何】Water Testing
Water Testing
题目描述
输入
• one line with a single integer n (3 ≤ n ≤ 100 000), the number of corner points of your property;
• n lines each containing two integers x and y (−106 ≤ x, y ≤ 106 ), the coordinates of each corner.
The corners are ordered as they appear on the border of your property and the polygon described by the points does not intersect itself.
输出
样例输入
- 4
- 0 0
- 0 10
- 10 10
- 10 0
样例输出
- 81
【题解】
皮克定理模版题,大家注意,面积可能在点乘的时候是负数。
还需要开Long Long
- #include<bits/stdc++.h>
- using namespace std;
- typedef long long ll;
- const int maxn = 2e6+;
- ll gcd(ll u,ll v){
- return (v == 0ll) ? u : gcd(v,u%v);
- }
- typedef struct point{
- ll x , y ;
- point() {}
- point(ll a,ll b):x(a),y(b) {}
- void input(){
- scanf("%lld%lld",&x,&y);
- }
- friend point operator + ( const point &a , const point &b ){
- return point(a.x + b.x , a.y + b.y );
- }
- friend point operator - ( const point &a , const point &b ){
- return point(a.x - b.x , a.y - b.y );
- }
- }point;
- point List[maxn];
- ll det(const point & a , const point & b){
- return a.x * b.y - a.y * b.x ;
- }
- ll Abs( ll x ){
- return (x>=?x:-x);
- }
- ll area( point a[] ,int n)
- {
- ll sum = ;
- a[n] = a[] ;
- for(int i=; i<n; i++) sum += det(a[i+],a[i]);
- return sum ;
- }
- ll Border_Int_Point_Num( point a[] , int n)
- {
- ll num = ;
- a[n] = a[];
- for(int i=; i<n; i++)
- {
- if( Abs((a[i+].x-a[i].x)) == ){
- num += Abs(a[i+].y-a[i].y);
- }else if( Abs((a[i+].y-a[i].y)) == ){
- num += Abs(a[i+].x-a[i].x);
- }else{
- num += gcd(Abs(ll(a[i+].x-a[i].x)),Abs(ll(a[i+].y-a[i].y)));
- }
- }
- return num ;
- }
- ll Inside_Int_Point_Num( point a[] , int n )
- {
- ll Area = area(a,n) ;
- Area = Abs(Area);
- return ( Area - Border_Int_Point_Num(a,n) ) / + ;
- }
- //polyon S ;
- int n;
- int main()
- {
- scanf("%d",&n);
- //S.n = n ;
- for(int i=;i<n;i++)
- List[i].input();
- /*
- sort ( List , List + n , cmp );
- for(int i=n-1;i>=0;i--){
- S.a[i] = List[n-i-1] ;
- }
- for(int i=0;i<n;i++){
- scanf("%lld%lld",&S.a[i].x,&S.a[i].y);
- }
- */
- printf("%lld\n",Inside_Int_Point_Num(List,n));
- return ;
- }
【计算几何】Water Testing的更多相关文章
- Water Testing【皮克定理,多边形面积,线段上点的数目】
Water Testing 传送门:链接 来源:UPC 9656 题目描述 You just bought a large piece of agricultural land, but you n ...
- Gym 101873G - Water Testing - [皮克定理]
题目链接:http://codeforces.com/gym/101873/problem/G 题意: 在点阵上,给出 $N$ 个点的坐标(全部都是在格点上),将它们按顺序连接可以构成一个多边形,求该 ...
- Codeforces-GYM101873 G Water Testing 皮克定理
题意: 给定一个多边形,这个多边形的点都在格点上,问你这个多边形里面包含了几个格点. 题解: 对于格点多边形有一个非常有趣的定理: 多边形的面积S,内部的格点数a和边界上的格点数b,满足如下结论: 2 ...
- 2017-2018 ACM-ICPC German Collegiate Programming Contest (GCPC 2017)
A Drawing Borders 很多构造方法,下图可能是最简单的了 代码: #include<bits/stdc++.h> using namespace std; ; struct ...
- 2017-2018 ACM-ICPC German Collegiate Programming Contest (GCPC 2017) Solution
A. Drawing Borders Unsolved. B. Buildings Unsolved. C. Joyride Upsolved. 题意: 在游乐园中,有n个游玩设施,有些设施之间有道路 ...
- (寒假开黑gym)2017-2018 ACM-ICPC German Collegiate Programming Contest (GCPC 2017)
layout: post title: (寒假开黑gym)2017-2018 ACM-ICPC German Collegiate Programming Contest (GCPC 2017) au ...
- The German Collegiate Programming Contest 2017
B - Building 给一个m各面的多边形柱体,每一侧面有n*n个格子,现在对这些格子染色,看有多少种方式使得多面柱体无论如何旋转都不会与另一个一样. #include <bits/stdc ...
- 2017-2018 ACM-ICPC German Collegiate Programming Contest (GCPC 2017)(9/11)
$$2017-2018\ ACM-ICPC\ German\ Collegiate\ Programming\ Contest (GCPC 2017)$$ \(A.Drawing\ Borders\) ...
- ZOJ3238 Water Ring(计算几何)
题意:给你一个圆形和很多个矩形,然后要你求圆形的圆周有多少被矩形覆盖. 思路:比赛的时候是有思路的了,不过一直在调别的题,最后剩下30分钟肯定来不及敲.想法是这样的,要是我们可以求出每个矩形覆盖了圆周 ...
随机推荐
- 2019-12-10:win7,win12提权练习
一.win7 1,上传webshell到服务器,访问 2,因为win7权限没设置好,导致任何命令都可以执行 直接提权成功,还可以通过msf工具利用exp进行提权,今天太晚了就先不做了 二.win201 ...
- Java 8:掌握 Lambda 表达式
本文将介绍 Java 8 新增的 Lambda 表达式,包括 Lambda 表达式的常见用法以及方法引用的用法,并对 Lambda 表达式的原理进行分析,最后对 Lambda 表达式的优缺点进行一个总 ...
- RK3288 添加普通串口uart1和uart3
CPU:RK3288 系统:Android 5.1 diff --git a/device/rockchip/common/init.connectivity.rc b/device/rockchip ...
- thymeleaf 直接调用后台Service
前端thymeleaf <select name="sex" class="form-control m-b" th:with="type=${ ...
- 为什么ArcGIS 10.3导出 Shapefile的字段名会被截断成3个汉字?解决方法如下
为什么ArcGIS 10.3导出 Shapefile的字段名会被截断成3个汉字?低版本中不是至少可以存储4个汉字吗?原因这个问题仍然与编码类型有关.ArcGIS 10.2 以及更早的版本,ArcGIS ...
- Razor syntax reference for ASP.NET Core
Razor syntax reference for ASP.NET Core Razor is a markup syntax for embedding server-based code int ...
- RVS PA-1800 功放参数
RVS PA-1800大功率功放技术参数: 文章来源:外星人来地球 欢迎关注,有问题一起学习欢迎留言.评论
- 一个hin秀的小学三年级奥数题 [hin秀]
~~~~~~不知为何总会被小学的题虐哭QAQ,真的秀啊,毒害广大小朋友~~~~~~ 一个hin秀的小学三年级奥数题 [hin秀] 题目: 给出一个无限大的棋盘 n×n (n>0 , 是 ...
- Vue 相关开源项目库汇总
element ★9395 - 饿了么出品的Vue2的web UI工具套件 Vux ★6835 - 基于Vue和WeUI的组件库 vueAdmin ★569 - 基于vuejs2和element的简单 ...
- 淘宝npm镜像安装失败的问题
一:背景 心血来潮要简单搞一搞前端运行.打包的东西.结果第一步通过npm安装淘宝npm的时候就出问题了,如图: 二:解决方法 图片显示有点垃圾,但是看出来“Missing write access t ...