当前位置: 首页 > news >正文

poj 2954 Triangle

这个题用到了pick定理:

多边形的面积 = 内部的数的和 + 边上的点的和/2  -1;

View Code
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<algorithm>
#include<cmath>
#include<queue>
#include<set>
#include<map>
#include<cstring>
#include<vector>
using namespace std;
class Point
{
public:
      int x,y;    
}point[3];
int Gcd( int a , int b )
{
   return  b==0 ? a : Gcd( b , a%b );    
}
int Area( Point a ,Point b, Point c )
{
   return abs( ( a.x - c.x )*( b.y - c.y ) - ( a.y - c.y )*( b.x -c.x ) )/2;    
}
int Edge( Point a ,Point b, Point c )
{
   int E  = 0;
   E += Gcd( abs(a.x - b.x) , abs( a.y - b.y ) );
   E += Gcd( abs(a.x - c.x) , abs( a.y - c.y ) );
   E += Gcd( abs(b.x - c.x) , abs( b.y - c.y ) );
   return E;    
}
int main(  )
{
    while( 1 )
    {
       int cnt = 0;
       for( int i = 0 ; i < 3 ; i ++ )
       {
            scanf( "%d %d",&point[i].x ,&point[i].y );
            if( point[i].x==0 &&point[i].y ==0  )
                cnt++;    
       }
       if( cnt==3 ) break;
       int area = Area( point[0] , point[1] ,point[2] );
       int edge = Edge( point[0] , point[1] ,point[2] );  
       printf( "%d\n",area + 1 - edge/2);    
    }
    //system( "pause" );
    return 0;
}

 

转载于:https://www.cnblogs.com/bo-tao/archive/2012/07/12/2588375.html

相关文章:

  • vue从创建到完整的饿了么(11)组件的使用(svg图标及watch的简单使用)
  • Ubuntu设置root密码
  • 把云计算引进到SOA的两个步骤
  • MYSQL在ubuntu的登录问题
  • 《社交网站界面设计(原书第2版)》——3.16 欢迎界面
  • OA行政办公管理系统需求说明书的概写
  • 最优比例生成树(0/1分数规划)
  • KVM安装与使用
  • Windows8手机有截图功能?
  • 迪普科技为上海银视通打造“下一代”数据中心
  • 【热门精品】2012年iOS开发人员必看的精品资料(100个)
  • 理解管理信息系统
  • 程序即人生 » 移动平台现在可用的C++ 11特性
  • 微信诈骗产业链,俩字儿是核心:杀熟
  • 输出IOS 版本号
  • 收藏网友的 源程序下载网
  • 0x05 Python数据分析,Anaconda八斩刀
  • Android Volley源码解析
  • CentOS 7 修改主机名
  • leetcode46 Permutation 排列组合
  • Perseus-BERT——业内性能极致优化的BERT训练方案
  • PHP 使用 Swoole - TaskWorker 实现异步操作 Mysql
  • Quartz初级教程
  • Windows Containers 大冒险: 容器网络
  • 给自己的博客网站加上酷炫的初音未来音乐游戏?
  • 我的业余项目总结
  • RDS-Mysql 物理备份恢复到本地数据库上
  • ​HTTP与HTTPS:网络通信的安全卫士
  • ​MPV,汽车产品里一个特殊品类的进化过程
  • #define MODIFY_REG(REG, CLEARMASK, SETMASK)
  • #Linux(帮助手册)
  • #LLM入门|Prompt#3.3_存储_Memory
  • (poj1.2.1)1970(筛选法模拟)
  • (Redis使用系列) SpringBoot 中对应2.0.x版本的Redis配置 一
  • (力扣题库)跳跃游戏II(c++)
  • (四)linux文件内容查看
  • (一)插入排序
  • *1 计算机基础和操作系统基础及几大协议
  • .gitignore
  • .NET 5种线程安全集合
  • .NET 跨平台图形库 SkiaSharp 基础应用
  • .net 验证控件和javaScript的冲突问题
  • .NET/C# 检测电脑上安装的 .NET Framework 的版本
  • .Net各种迷惑命名解释
  • .Net环境下的缓存技术介绍
  • .net通用权限框架B/S (三)--MODEL层(2)
  • @ 代码随想录算法训练营第8周(C语言)|Day53(动态规划)
  • [].slice.call()将类数组转化为真正的数组
  • [2]十道算法题【Java实现】
  • [Angular] 笔记 18:Angular Router
  • [C++]类和对象【上篇】
  • [C++基础]-初识模板
  • [HarmonyOS]第一课:从简单的页面开始
  • [HITCON 2017]SSRFme perl语言的 GET open file 造成rce
  • [HTML API]HTMLCollection