2018年全国多校算法寒假训练营练习比赛(第三场)---I---题(皮克公式)
题目链接---I-三角形
题目描述
输入描述:
多组输入 每组输入三行,每行两个整数 第一行顶点A的坐标Xa,Ya. 第二行顶点B的坐标Xb,Yb. 第三行顶点C的坐标Xc,Yc. 0<=X,Y<=1,000,000 输入-1结束输入
输出描述:
每组输出一行,输出一个实数(保留一位小数),四个整数,分别代表三角形面积,三角形内的点的个数以及边AB、BC和AC边上的点的个数,每个数用空格隔开。
输入
0 0 2 0 0 2 0 0 3 0 0 3 -1
输出
2.0 0 1 1 1 4.5 1 2 2 2
说明
第一组图一,第二组图二
这里我们介绍一下所涉及到的知识点:
1,皮克公式:S = 1/2×(( X1*Y2-X2*Y1) + … + (Xk*Yk+1-Xk+1*Yk )+...+( Xn*Y1-X1*Yn )) 用于求多边形的面积
需要注意的是,如果一系列点按逆时针排列算出的是正面积,而如果是顺时针的话算出的则是一个负面积。
2,多边形边上的点:gcd(边的横向长度,边的纵向长度)这里的gcd是欧几里得算法,前面已经讲过
3,多边形内部的点:S=n+s/2-1;其中n表示多边形内部的点数,s表示多边形边界上的点数,S表示多边形的面积
注意:这道题定义变量时要用long long ,我做这道题的时候忽略了这个细节,做了几遍才做对
我们来看一下这道题代码的实现:
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;
long long gcd(long long a,long long b)
{if(b==0)return a;long long re=gcd(b,a%b);return re;
}
int main()
{long long xa,ya,xb,yb,xc,yc;while(cin>>xa){if(xa==-1) break;cin>>ya;cin>>xb>>yb;cin>>xc>>yc;double s;s=abs(((xa*yb-xb*ya)+(xb*yc-xc*yb)+(xc*ya-xa*yc))/2.0); long long a,b,c;a=gcd(abs(xa-xb),abs(ya-yb))-1; b=gcd(abs(xc-xb),abs(yc-yb))-1;c=gcd(abs(xa-xc),abs(ya-yc))-1;long long k=1.0+s-(a+b+c+3.0)/2.0;printf("%.1lf ",s);cout<<k<<" "<<a<<" "<<b<<" "<<c<<endl;}
return 0;
}
2018年全国多校算法寒假训练营练习比赛(第三场)---I---题(皮克公式)相关推荐
- 【题集】牛客网·2018年全国多校算法寒假训练营练习比赛(第二场)
原文链接:2018年全国多校算法寒假训练营练习比赛(第二场) A 吐泡泡 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K 64bit IO Form ...
- 【题集·待解决】牛客网·2018年全国多校算法寒假训练营练习比赛(第二场)
原文链接:2018年全国多校算法寒假训练营练习比赛(第二场) A 吐泡泡 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K 64bit IO Form ...
- 牛客网 2018年全国多校算法寒假训练营练习比赛(第二场) H.了断局-递推
H.了断局 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K 64bit IO Format: %lld 链接:https://www.nowcode ...
- 2018年全国多校算法寒假训练营练习比赛(第二场)B - TaoTao要吃鸡
链接:https://www.nowcoder.com/acm/contest/74/B 来源:牛客网 题目描述 Taotao的电脑带不动绝地求生,所以taotao只能去玩pc版的荒野行动了, 和绝地 ...
- 2018年全国多校算法寒假训练营练习比赛(第一场)G 圆圈
链接:https://www.nowcoder.com/acm/contest/67/G 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536 ...
- 2018年全国多校算法寒假训练营练习比赛(第一场)F. 大吉大利,今晚吃鸡——跑毒篇(模拟)
链接:https://www.nowcoder.com/acm/contest/67/F 来源:牛客网 题目描述 现在有一款很火的游戏playerunknown's battlegrounds,人称& ...
- 2018年全国多校算法寒假训练营练习比赛(第一场)G. 圆圈
链接:https://www.nowcoder.com/acm/contest/67/G 来源:牛客网 题目描述 圈圈圆圆圈圈,lulu小朋友最近看喜羊羊看多了,老是受刺激就画圆圈,听到小于8的数字时 ...
- 2018年全国多校算法寒假训练营练习比赛(第一场)D. N阶汉诺塔变形(找规律)
链接:https://www.nowcoder.com/acm/contest/67/D 来源:牛客网 题目描述 相信大家都知道汉诺塔问题.那么现在对汉诺塔问题做一些限制,成为一个新的玩法. 在一个底 ...
- 2018年全国多校算法寒假训练营练习比赛(第一场)C. 六子冲(模拟)
链接:https://www.nowcoder.com/acm/contest/67/C 来源:牛客网 题目描述 六子冲是流传于中国民间的一类棋类游戏.由于这个游戏对环境的要求不高,孩子们大都是在光滑 ...
- 牛客网 2018年全国多校算法寒假训练营练习比赛(第二场) A.吐泡泡-STL(stack)
不好玩,一堆板子,太菜了,被打爆了,B一直wa60%,D一直wa80%,D改了多组输入就过了... A.吐泡泡 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言6 ...
最新文章
- linux 环境下,yum 安装redis
- 《SQL Server企业级平台管理实践》读书笔记——几个系统库的备份与恢复
- 智慧树python程序设计基础山东联盟期末答案_智慧树Python程序设计基础(山东联盟)期末答案...
- 只有程序员才有的十大烦恼
- android 开发小工具,Android 开发者必备的八款小工具
- 麒麟系统兼容安卓生态 弥补生态短板
- ThreadLocal的非数据安全用法
- 李宏毅自然语言处理——文本风格转换
- c语言函数调用费波那楔数列,【算法】费波那契数列算法
- Java简单实现贪吃蛇经典小游戏(附源代码)
- 红帽linux64系统下载,红帽rhel6.5下载
- bootstrap个人简历毕业作品模板
- 【软件工程大作业】软件项目管理之成本管理
- Kubernetes pull requests
- 计算机网络思科DNS配置,Cisco交换机 正确连接和初级配置
- 【Windows】windows生成rsa密钥对
- Specification for the Lab VIEW Measurement File
- 标准盒子模型和IE盒子模型的区别
- 乌镇饭局后,阿里腾讯走向了分岔路
- JavaScript Code在线编辑器--JSEditor
热门文章
- VMWARE启动失败
- 江西省电子专题大赛考点讲解七:NE555定时器
- python语言turtle库画图代码示例_5分钟轻松搞定,Python开发之turtle库的基本操作...
- 传统的固定思维和敏捷思维的对比
- Unity笔记之切换鼠标图标样式、PSD格式文件导入Unity
- VBA从工作表另存为工作簿
- 不使用脚手架构建vue项目
- linux下的open file是什么,linux修改open files数
- 航芯技术分享 | 一文读懂汽车CAN总线技术原理(下)
- html让图片变灰色,firefox浏览器中css如何把图片变成灰色?