题意:三角刨分,把一个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相关推荐

  1. UVA 1331 Minimax Triangulation DP, 三角剖分

    题目链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_proble ...

  2. 紫书《算法竞赛入门经典》

    紫书<算法竞赛入门经典>题目一览 第3章 数组和字符串(例题) UVA 272 TEX Quotes UVA 10082 WERTYU UVA 401 Palindromes UVA 34 ...

  3. 杭电oj题目题型分类(转)

    1001 整数求和 水题 1002 C语言实验题--两个数比较 水题 1003 1.2.3.4.5... 简单题 1004 渊子赛马 排序+贪心的方法归并 1005 Hero In Maze 广度搜索 ...

  4. HDOJ题目分类大全

    版权声明:本文为博主原创文章,欢迎转载,转载请注明本文链接! https://blog.csdn.net/qq_38238041/article/details/78178043 杭电里面有很多题目, ...

  5. HDU题目分类大全【大集合】

    基础题: 1000.1001.1004.1005.1008.1012.1013.1014.1017.1019.1021.1028.1029.  1032.1037.1040.1048.1056.105 ...

  6. 《算法竞赛入门经典——训练指南》第一章相关内容

    #<算法竞赛入门经典--训练指南>第一章相关内容 希望各位大牛能指导! 红色为已经做了的...黄色背景是还有不懂地方,希望在年前能刷完第一章啊.... 更新版.google上貌似又加了ex ...

  7. POJ前面的题目算法思路【转】

    1000 A+B Problem 送分题 49% 2005-5-7 1001 Exponentiation 高精度 85% 2005-5-7 1002 487-3279 n/a 90% 2005-5- ...

  8. 杭电OJ题目分类(转载)

    1001 整数求和 水题 1002 C语言实验题--两个数比较 水题 1003 1.2.3.4.5... 简单题 1004 渊子赛马 排序+贪心的方法归并 1005 Hero In Maze 广度搜索 ...

  9. hdoj杭电问题分类

    杭电上的题虽然多,但是一直苦于找不到问题分类,网页都是英文的,所以平时做题也没怎么看,今天仔细一看,问题分类竟然就在主页....做了那么久的题居然没发现,表示已经狗带..不要笑,不知道有没有像我一样傻 ...

最新文章

  1. 手写的奇怪vector
  2. idea总结几个不错的插件
  3. WINDOWS之入侵痕迹清理总结
  4. Spring boot如何打war包发布到tomcat
  5. c语言判断字符串合法标识符,HDU 2024 C语言合法标识符(以及一些关于输入和ctype.h的内容)...
  6. linux改变所属用户组
  7. 直线旋转动画html5,多视角3D可旋转的HTML5 Logo动画
  8. 云计算(期末复习题含答案)
  9. 电大计算机应用基础实训任务1-4,计算机应用基础本形考任务1
  10. 【对话系统】Knowledge-Grounded Dialogue Generation with a Unified Knowledge Representation
  11. 构建CF卡Linux系统的几个常见难题
  12. Tryhackme-BurpSuite
  13. bzoj 3162: 独钓寒江雪 树形dphash
  14. Auditing SQL Server SQL Statements
  15. phpadmin安装到mysql中_phpadmin安装教程
  16. 家居3d网上展示_三维模型可视化展示
  17. 前端框架VUE学习纪要
  18. JS中使用bignumber处理高精度小数 失去去精确度运算 bigNumber用法
  19. 用java实现耀辉三角
  20. LUNIX Anubis安装

热门文章

  1. Html5开发之链接标签nav的用法
  2. Html5 冒泡排序演示
  3. 复习上学期的HTML CSS(1)
  4. CSS节选——选择器
  5. CheckList 如何梳理可减少上线的验证时间(总结篇)
  6. 移动架构-数据库分库和全版本升级
  7. python (六)函数
  8. python笔记30-docstring注释添加变量
  9. Java 系列之spring学习--spring搭建(一)
  10. Altera的几个常用的Synthesis attributes(转载)