hiho1360 凸多边形
来源:互联网 发布:微信自媒体 知乎 编辑:程序博客网 时间:2024/06/02 04:01
/*
类型floyd,dp
dp[i][j][k]:起点i,终点j,k个点的凸多边形面积
dp[i][j][k]=max(dp[i][j][k],dp[i][u][k-1]+area[u][j][i]))
*/
#include<iostream>
#include<algorithm>
#include<math.h>
#include<string.h>
#include<stdio.h>
using namespace std;
类型floyd,dp
dp[i][j][k]:起点i,终点j,k个点的凸多边形面积
dp[i][j][k]=max(dp[i][j][k],dp[i][u][k-1]+area[u][j][i]))
*/
#include<iostream>
#include<algorithm>
#include<math.h>
#include<string.h>
#include<stdio.h>
using namespace std;
struct Point
{
int x,y;
};
Point p[102];
{
int x,y;
};
Point p[102];
int N,M;
double dp[102][102][102];
double area[102][102][102];
double dp[102][102][102];
double area[102][102][102];
double s(int i,int j,int k)
{
return 0.5*(p[i].x*p[j].y+p[j].x*p[k].y+p[k].x*p[i].y-p[i].x*p[k].y-p[j].x*p[i].y-p[k].x*p[j].y);
}
{
return 0.5*(p[i].x*p[j].y+p[j].x*p[k].y+p[k].x*p[i].y-p[i].x*p[k].y-p[j].x*p[i].y-p[k].x*p[j].y);
}
int main()
{
cin>>N>>M;
for(int i=0;i<N;i++)
{
cin>>p[i].x>>p[i].y;
}
{
cin>>N>>M;
for(int i=0;i<N;i++)
{
cin>>p[i].x>>p[i].y;
}
memset(dp,0,sizeof(dp));
for(int i = 0; i < N; i++)
{
for(int j = 0; j < N; j++)
{
for(int k = 0; k < N; k++)
{
area[i][j][k] = fabs(s(i, j, k));
}
}
}
for(int i = 0; i < N; i++)
{
for(int j = 0; j < N; j++)
{
for(int k = 0; k < N; k++)
{
area[i][j][k] = fabs(s(i, j, k));
}
}
}
for(int k=3;k<=M;k++)
{
for(int i=0;i<N;i++)
{
for(int j=i+1;j!=i;j=(j+1)%N)//除了i点枚举
{
for(int u=i+1;u!=j;u=(u+1)%N)//除了j点枚举
dp[i][j][k]=max(dp[i][j][k],dp[i][u][k-1]+area[u][j][i]);
}
}
}
double maxx=0;
for(int i=0;i<N;i++)
{
for(int j=0;j<N;j++)
maxx=max(maxx,dp[i][j][M]);
}
printf("%.2f\n",maxx);
}
{
for(int i=0;i<N;i++)
{
for(int j=i+1;j!=i;j=(j+1)%N)//除了i点枚举
{
for(int u=i+1;u!=j;u=(u+1)%N)//除了j点枚举
dp[i][j][k]=max(dp[i][j][k],dp[i][u][k-1]+area[u][j][i]);
}
}
}
double maxx=0;
for(int i=0;i<N;i++)
{
for(int j=0;j<N;j++)
maxx=max(maxx,dp[i][j][M]);
}
printf("%.2f\n",maxx);
}
0 0
- hiho1360 凸多边形
- 凸多边形
- 划分凸多边形
- 凸多边形交
- 【CQOI2006】凸多边形
- [CQOI2006] 凸多边形
- BZOJ2618凸多边形
- 凸多边形直径
- 求凸多边形距离
- 1299 凸多边形的面积
- 凸多边形三角划分
- 【计算几何】凸多边形
- ★【计算几何】凸多边形
- OpenGL:填充非凸多边形
- 判断是否为凸多边形
- 常见凸多边形判断方法
- 凹、凸多边形判定
- 凸多边形间最小距离
- poj 2187
- 【数据结构与算法】——插入排序
- 为什么我们要干一行爱一行
- 上拉电阻与下拉电阻的作用总结
- Codeforces #369 (Div. 2) E. ZS and The Birthday Paradox (勒让德定理+逆元)
- hiho1360 凸多边形
- vulakn教程--Drawing a Triangle--Set up--Physical Device and Queue Family
- 色彩构成与搭配——色彩的原理及分类
- 大数据聚类学习整理
- 05-高斯分布
- Archlinux 安装过程(UEFI+GRUB+GNOME)
- SQL简单函数
- Java反射初探
- 【u031】租用游艇