POJ 1265 Pick公式的应用,多边形与整点的关系(存在一个GCD的关系)

本文介绍了一种使用皮克定理计算由整数坐标顶点构成的简单多边形面积的方法。通过分析多边形的内部格点数和边界上的格点数,实现了多边形面积的精确计算。文章提供了C++代码实现,展示了如何应用皮克定理进行面积计算。

http://acm.pku.edu.cn/JudgeOnline/problem?id=2954

给定顶点座标均是整点(或正方形格点)的简单多边形皮克定理说明了其面积A和内部格点数目i、边上格点数目b的关系:A = i + b/2 - 1.


  
#include < iostream >
#include
< math.h >
#include
< stdio.h >
using namespace std;
#define Abs(x) (((x)>0)?(x):(-(x))) /*验证*/
#define MAXN 500
typedef
double TYPE;

// 空间中的点,可以用来作为二维点来用
struct POINT { /* 验证 */
TYPE x; TYPE y; TYPE z;
POINT() : x(
0 ), y( 0 ), z( 0 ) {};
POINT(TYPE _x_, TYPE _y_, TYPE _z_
= 0 )
: x(_x_), y(_y_), z(_z_) {};
// 要用 G++ 提交 ,可以不用这个
POINT operator = ( const POINT & A){
x
= A.x;
y
= A.y;
z
= A.z;
}
};

POINT p[MAXN];

int gcd( int a, int b)
{
if (b == 0 ) return a;
else return gcd(b,a % b);
}

// 求多边形面积 只要是多边形就可以求其面积
TYPE Area( int n, POINT p[] ) {
if ( n < 3 )
return TYPE( 0 );
double s = p[ 0 ].y * (p[n - 1 ].x - p[ 1 ].x);
for ( int i = 1 ; i < n; i ++ ) {
s
+= p[i].y * (p[i - 1 ].x - p[(i + 1 ) % n].x);
}
return s / 2 ;
}
void PolyPick( int n, POINT p[], int & _I, int & _E, TYPE & _area){
int dx, dy;
_E
= 0 ;
for ( int i = 1 ; i <= n; i ++ ){
dx
= p[i % n].x - p[(i + 1 ) % n].x;
dy
= p[i % n].y - p[(i + 1 ) % n].y;
_E
+= gcd(Abs(dx),Abs(dy));
}
_area
= Area(n,p);
_I
= ( 2 * _area + 2 - _E) / 2 ;

}

int main()
{
int tc,m,i,j,k;
cin
>> tc;
TYPE dx,dy;
for (k = 1 ;k <= tc;k ++ )
{
scanf(
" %d " , & m);
TYPE x
= 0 ;
TYPE y
= 0 ;
for (i = 0 ;i < m;i ++ )
{
scanf(
" %lf%lf " , & dx, & dy);
p[i].x
= x + dx;
p[i].y
= y + dy;
x
= p[i].x;
y
= p[i].y;
}
int I,E;
double area;
PolyPick(m,p,I, E, area);

printf(
" Scenario #%d:\n%d %d %.1f\n\n " ,k,I,E,area);
}
return 0 ;
}

转载于:https://www.cnblogs.com/laipDIDI/articles/2041710.html

源码来自:https://pan.quark.cn/s/a3a3fbe70177 AppBrowser(Application属性查看器,不需要越狱! ! ! ) 不需要越狱,调用私有方法 --- 获取完整的已安装应用列表、打开和删除应用操作、应用运行时相关信息的查看。 支持iOS10.X 注意 目前AppBrowser不支持iOS11应用查看, 由于iOS11目前还处在Beta版, 系统API还没有稳下来。 等到Private Header更新了iOS11版本,我也会进行更新。 功能 [x] 已安装的应用列表 [x] 应用的详情界面 (打开应用,删除应用应用的相关信息展示) [x] 应用运行时信息展示(LSApplicationProxy) [ ] 制喜欢的字段,展示在应用详情界面 介绍 所有已安装应用列表(应用icon+应用名) 为了提供思路,这里只用伪代码,具体的私有代码调用请查看: 获取应用实例: 获取应用名和应用的icon: 应用列表界面展示: 应用列表 应用运行时详情 打开应用: 卸载应用: 获取info.plist文件: 应用运行时详情界面展示: 应用运行时详情 右上角,从左往右第一个按钮用来打开应用;第二个按钮用来卸载这个应用 INFO按钮用来解析并显示出对应的LSApplicationProxy类 树形展示LSApplicationProxy类 通过算法,将LSApplicationProxy类,转换成了字典。 转换规则是:属性名为key,属性值为value,如果value是一个可解析的类(除了NSString,NSNumber...等等)或者是个数组或字典,则继续递归解析。 并且会找到superClass的属性并解析,superClass如...
基于遗传算法辅助异构改进的动态多群粒子群优化算法(GA-HIDMSPSO)的LSTM分类预测研究(Matlab代码实现)内容概要:本文研究了一种基于遗传算法辅助异构改进的动态多群粒子群优化算法(GA-HIDMSPSO),并将其应用于LSTM神经网络的分类预测中,通过Matlab代码实现。该方法结合遗传算法的全局搜索能力改进的多群粒子群算法的局部优化特性,提升LSTM模型在分类任务中的性能表现,尤其适用于复杂非线性系统的预测问题。文中详细阐述了算法的设计思路、优化机制及在LSTM参数优化中的具体应用,并提供了可复现的Matlab代码,属于SCI级别研究成果的复现拓展。; 适合人群:具备一机器学习和优化算法基础,熟悉Matlab编程,从事智能算法、时间序列预测或分类模型研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①提升LSTM在分类任务中的准确性收敛速度;②研究混合智能优化算法(如GAPSO结合)在神经网络超参数优化中的应用;③实现高精度分类预测模型,适用于电力系统故障诊断、电池健康状态识别等领域; 阅读建议:建议读者结合Matlab代码逐步调试运行,理解GA-HIDMSPSO算法的实现细节,重关注种群划分、异构策略设计及LSTM的集成方式,同时可扩展至其他深度学习模型的参数优化任务中进行对比实验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值