uva 1331——Minimax Triangulation
题意:三角刨分,把一个m边形分解成m-2个三角形,求一个最大三角形最小的刨分,输出最小的那个三角形面积。
思路:递推。可能需要一点几何思维,d(i,j)为多边形的最优解,则d(i,j)=min(s(i,j,k),d(i,k),d(k,j));s(i,j,k)是三角形i-j-k的面积。然后枚举i,j,k求出最优即可。
code:
#include <bits/stdc++.h>
using namespace std;#define ft(i,s,t) for (int i=s;i<=t;i++)
const int INF=0x3f3f3f3f;
const int N=55;
const double ep=1e-6;
struct node
{double x,y;
}v[N];
int n;
double dp[N][N];
double area (node A,node B,node C)
{return 0.5*fabs((B.x-A.x)*(C.y-A.y)-(C.x-A.x)*(B.y-A.y));
}int ok(int a,int b,int c)
{double t=area(v[a],v[b],v[c]);ft(i,0,n-1){if (i==a||i==b||i==c) continue;double sum=(area(v[a],v[b],v[i])+area(v[a],v[i],v[c])+area(v[i],v[b],v[c]));if (fabs(sum-t)<ep) return 0;}return 1;
}
double sol()
{double ans=INF;ft(i,2,n-1) ft(j,0,n-1){int r=(i+j)%n;dp[j][r]=INF;for(int k=(j+1)%n;k!=r;k=(k+1)%n){if (ok(j,k,r))dp[j][r]=min(dp[j][r],max(max(dp[j][k],dp[k][r]),area(v[j],v[k],v[r])));}if (i==n-1)ans=min(ans,dp[j][r]);}return ans;
}
int main()
{int T;scanf("%d",&T);while (T--){scanf("%d",&n);ft(i,0,n-1) scanf("%lf %lf",&v[i].x,&v[i].y);printf("%.1f\n",sol());}
}
uva 1331——Minimax Triangulation相关推荐
- UVA 1331 Minimax Triangulation DP, 三角剖分
题目链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_proble ...
- 紫书《算法竞赛入门经典》
紫书<算法竞赛入门经典>题目一览 第3章 数组和字符串(例题) UVA 272 TEX Quotes UVA 10082 WERTYU UVA 401 Palindromes UVA 34 ...
- 杭电oj题目题型分类(转)
1001 整数求和 水题 1002 C语言实验题--两个数比较 水题 1003 1.2.3.4.5... 简单题 1004 渊子赛马 排序+贪心的方法归并 1005 Hero In Maze 广度搜索 ...
- HDOJ题目分类大全
版权声明:本文为博主原创文章,欢迎转载,转载请注明本文链接! https://blog.csdn.net/qq_38238041/article/details/78178043 杭电里面有很多题目, ...
- HDU题目分类大全【大集合】
基础题: 1000.1001.1004.1005.1008.1012.1013.1014.1017.1019.1021.1028.1029. 1032.1037.1040.1048.1056.105 ...
- 《算法竞赛入门经典——训练指南》第一章相关内容
#<算法竞赛入门经典--训练指南>第一章相关内容 希望各位大牛能指导! 红色为已经做了的...黄色背景是还有不懂地方,希望在年前能刷完第一章啊.... 更新版.google上貌似又加了ex ...
- POJ前面的题目算法思路【转】
1000 A+B Problem 送分题 49% 2005-5-7 1001 Exponentiation 高精度 85% 2005-5-7 1002 487-3279 n/a 90% 2005-5- ...
- 杭电OJ题目分类(转载)
1001 整数求和 水题 1002 C语言实验题--两个数比较 水题 1003 1.2.3.4.5... 简单题 1004 渊子赛马 排序+贪心的方法归并 1005 Hero In Maze 广度搜索 ...
- hdoj杭电问题分类
杭电上的题虽然多,但是一直苦于找不到问题分类,网页都是英文的,所以平时做题也没怎么看,今天仔细一看,问题分类竟然就在主页....做了那么久的题居然没发现,表示已经狗带..不要笑,不知道有没有像我一样傻 ...
最新文章
- 手写的奇怪vector
- idea总结几个不错的插件
- WINDOWS之入侵痕迹清理总结
- Spring boot如何打war包发布到tomcat
- c语言判断字符串合法标识符,HDU 2024 C语言合法标识符(以及一些关于输入和ctype.h的内容)...
- linux改变所属用户组
- 直线旋转动画html5,多视角3D可旋转的HTML5 Logo动画
- 云计算(期末复习题含答案)
- 电大计算机应用基础实训任务1-4,计算机应用基础本形考任务1
- 【对话系统】Knowledge-Grounded Dialogue Generation with a Unified Knowledge Representation
- 构建CF卡Linux系统的几个常见难题
- Tryhackme-BurpSuite
- bzoj 3162: 独钓寒江雪 树形dphash
- Auditing SQL Server SQL Statements
- phpadmin安装到mysql中_phpadmin安装教程
- 家居3d网上展示_三维模型可视化展示
- 前端框架VUE学习纪要
- JS中使用bignumber处理高精度小数 失去去精确度运算 bigNumber用法
- 用java实现耀辉三角
- LUNIX Anubis安装