题解:

dp+计算几何

F[i][j]表示第i-j条边的答案

然后转移一下

代码:

#include<bits/stdc++.h>
using namespace std;
struct note{int x,y;}a[];
int T,n,f[][];
int xot(note a,note b){return a.x*b.y-b.x*a.y;}
int cal(note a,note b,note c)
{
return abs(xot(a,b)+xot(b,c)+xot(c,a));
}
int area(int l,int r)
{
int s=xot(a[r],a[l]);
for (int i=l;i<r;i++)s+=xot(a[i],a[i+]);
return abs(s);
}
int check(int l,int m,int r,int s)
{
return s+area(l,m)+area(m,r)==area(l,r);
}
int deal(int l,int r)
{
if (f[l][r]>=) return f[l][r];
if (l==r||l+==r) return f[l][r]=;
int res=;
if (l+==r)return f[l][r]=cal(a[l],a[l+],a[r]);
for (int i=l+;i<r;i++)
{
int s=cal(a[l],a[i],a[r]);
if (!check(l,i,r,s)) continue;
int z=max(deal(l,i),deal(i,r));
z=max(z,s);res=min(res,z);
}
return f[l][r]=res;
}
int main()
{
scanf("%d",&T);
while (T--)
{
scanf("%d",&n);
memset(f,,sizeof(f));
for (int i=;i<=n;i++)scanf("%d%d",&a[i].x,&a[i].y);
printf("%.1lf\n",deal(,n)/2.0);
}
return ;
}

spoj Minimax Triangulation的更多相关文章

  1. uva 1331 - Minimax Triangulation(dp)

    option=com_onlinejudge&Itemid=8&page=show_problem&category=514&problem=4077&mosm ...

  2. UVA-1331 Minimax Triangulation 区间dp 计算几何 三角剖分 最大三角形最小化

    题目链接:https://cn.vjudge.net/problem/UVA-1331 题意 给一个任意多边形,把它分为多个三角形. 求某方案中最大的三角形是各方案中最小的面积的三角形面积. 思路 学 ...

  3. Minimax Triangulation

    题意: 按顺序给定一些点,把这些点分割为n - 2个三角形,花费为最大三角形面积,求最小花费 分析: 区间dp,dp[i][j]表示完成区间[i,j]最小花费,dp[i][j]=min(dp[i][j ...

  4. UVa 1331 - Minimax Triangulation(区间DP + 计算几何)

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

  5. UVA - 1331 Minimax Triangulation (区间dp)(最优三角剖分)

    题目链接 把一个多边形剖分成若干个三角形,使得其中最大的三角形面积最小. 比较经典的一道dp问题 设dp[l][r]为把多边形[l,r]剖分成三角形的最大三角形面积中的最小值,则$dp[l][r]=m ...

  6. uva1331 Minimax Triangulation

    题目大意: 按照顺时针或者逆时针的顺序给出多边的点,要将这个多边形分解成n-2个三角形,要求使得这些三角行中面积最大的三角形面积尽量小,求最小值. /* dp[i][j]表示从第i个点到第j个点,划分 ...

  7. Uva 1331 - Minimax Triangulation(最优三角剖分 区间DP)

    题目大意:依照顺时针或者逆时针的顺序给出多边的点,要将这个多边形分解成n-2个三角形,要求使得这些三角行中面积最大的三角形面积尽量小,求最小值. 思路:用区间DP能够非常方便解决,多边形可能是凹边形, ...

  8. 杭电ACM分类

    杭电ACM分类: 1001 整数求和 水题1002 C语言实验题——两个数比较 水题1003 1.2.3.4.5... 简单题1004 渊子赛马 排序+贪心的方法归并1005 Hero In Maze ...

  9. 转载:hdu 题目分类 (侵删)

    转载:from http://blog.csdn.net/qq_28236309/article/details/47818349 基础题:1000.1001.1004.1005.1008.1012. ...

随机推荐

  1. 组件式开发(Vue)

    什么是组件式开发: 组件式开发就是将单个组件组合起来,形成一个大的组件进行页面的开发完成 什么是复合型组件: 复合型组件就是将相同的功能写成一个公用的组件(单元组件),供其他组件使用,就类似于后台开发 ...

  2. 【Checkio Exercise】Robot Sort

    Robot Sort All of the refined ingots should be sorted by size in each lot while passing by on a conv ...

  3. Array类型和方法

    var ft = new Array(); var ft = new Array(20); var ft = new Array("1","2","3 ...

  4. 【转】AI类人工智能产品经理的丛林法则

    本文转载自:https://blog.csdn.net/buptgshengod/article/details/77030338 AI是大家都很关注的领域,然而对于大部分想要入行的同学来讲,AI的算 ...

  5. 用 python 生成一个简单的词云图

    import jieba from nltk import * from wordcloud import WordCloud import matplotlib.pyplot as plt word ...

  6. GoldenGate使用SQLEXEC和GETVAL实现码表关联

    使用OGG中的SQLEXEC参数,可以执行SQL语句或存储过程,再加上@GETVAL函数,可以在目标端获取源表没有的字段值.比如,源端有一个事实表和一个代码表COUNTRY_CODES,代码表中有两个 ...

  7. charles License

    ubuntu charles 配置 Ubuntu16.04系统Charles的配置   key1: Registered Name: https://zhile.io License Key: 488 ...

  8. Idea 提交代码到码云(提交到github也大同小异)

    1.首先下载安装git,下载地址https://git-scm.com/download/win.按默认选择安装即可,不成功的自行百度 2.安装完成后双击git.exe,调出命令界面(此处需要自己去申 ...

  9. HTTP的简单的解析

    HTTP 中文全称为超文本传输协议是一种为分布式,合作式,多媒体信息系统服务,面向应用层的协议.它是一种通用的,不分状态(stateless)的协议,除了诸如名称服务和分布对象管理系统之类的超文本用途 ...

  10. Shell脚本中的分号使用

    在Linux中,语句中的分号一般用作代码块标识 1.单行语句一般要用到分号来区分代码块,例如: if [ "$PS1" ]; then echo test is ok; fi te ...