https://vjudge.net/problem/UVA-1331

题意:
输入一个多边形,找一个最大三角形面积最小的三角剖分,输出最大三角形的面积。

思路:

最优三角剖分。

dp[i][j]表示从i点到j点的最优值,枚举中间点k

转移方程为dp[i][j]=min(dp[i][j],max(area(i,j,k),max(dp[i][k],dp[k][j])))

如果三角形i-j-k中有其他的点,是不可以剖分的,需要去检验一下。

可以看一下大神的题解,写得很详细。http://www.cnblogs.com/Konjakmoyu/p/4905563.html

 #include<iostream>
#include<algorithm>
#include<string>
#include<cstring>
using namespace std; const int maxn = + ;
const int INF = ; int n;
int x[maxn], y[maxn];
double d[maxn][maxn]; //行列式求三角形面积
double area(int a, int b, int c)
{
double s = (double)(1.0 / )*(x[a] * y[b] + x[b] * y[c] + x[c] * y[a] - x[a] * y[c] - x[b] * y[a] - x[c] * y[b]);
if (s<) return -s;
return s;
} //判断三角形内部是否有点
bool check(int a, int b, int c)
{
int i;
for (i = ; i <= n; i++)
{
if (i == a || i == b || i == c) continue;
double d = area(a, b, i) + area(a, c, i) + area(b, c, i) - area(a, b, c);
if (d<) d = -d;
if (d <= 0.01) return ;
}
return ;
} int main()
{
//freopen("D:\\txt.txt", "r", stdin);
int T;
cin >> T;
while (T--)
{
cin >> n;
for (int i = ; i <= n; i++)
cin >> x[i] >> y[i];
for (int i = n; i >= ; i--)
{
d[i][i+] = ;
for (int j = i + ; j <= n; j++)
{
d[i][j] = INF;
for (int k = i + ; k < j; k++)
{
if (check(i, j, k))
d[i][j] = min(d[i][j], max(max(area(i, j, k), d[i][k]), d[k][j]));
}
}
}
printf("%.1lf\n", d[][n]);
}
return ;
}

最新文章

  1. Android Activity中获取当前焦点的控件,自动化输入EditText
  2. Digests from CG articales
  3. Scala 基础入门【翻译】
  4. sql server日期时间函数
  5. valueForKeyPath的妙用(转)
  6. 【转】class卸载、热替换和Tomcat的热部署的分析
  7. 文档对象模型(DOM)
  8. 沈晓军 / LarvaFrame - 代码托管 - 开源中国社区
  9. 使用phpmailer发送邮件(以QQ邮箱为例)
  10. 转 [分享一个SQL] 查会话阻塞关系,层次关系.
  11. python网络爬虫之使用scrapy自动爬取多个网页
  12. element ui datePicker 设置当前日期之前的日期不可选
  13. git merge 与 rebase
  14. Python全栈-magedu-2018-笔记3
  15. MyEclipse和eclipse生成变量快捷键
  16. codeforces472C
  17. restricted 模式及其 使用
  18. 修改json文件
  19. zabbix 主动模式和被动模式配置文件对比
  20. Bootstrap Paginator分页插件使用示例

热门文章

  1. vue.js常用的
  2. test examples/test scripts
  3. 大神的博客地址liferay
  4. .Net Core2.0基于DbContext,IActionFilter过滤器实现全局UOW,不使用TransactionScope
  5. MFC Ribbon界面设计
  6. EXT3.0在IE下Range不兼容解决办法
  7. Azkaban学习笔记(二)
  8. 20165207 Exp0 Kali安装
  9. Linux基础命令---dumpe2fs
  10. 访问Hsql .data数据库文件