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());}
}


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/381824.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

泛型笔记

所谓泛型&#xff0c;即通过参数化类型来实现在同一份代码上操作多种数据类型。&#xff08;类型的 多态&#xff09; 是一种编程范式&#xff0c;它利用“参数化类型”讲类型抽象化&#xff0c;从而实现更为灵活的复用。 1&#xff0c;可重用行 2&#xff0c;类型安全&#xf…

进程创建fork-小代码

进程创建fork #include <sys/types.h> #include <unistd.h> pid_t fork(viod) 返回值&#xff1a;,在子进程中返回0&#xff1b;在父进程中返回大于0的进程号&#xff1b;小于0&#xff0c;出错。 fork()函数调用一次&#xff0c;返回两次&#xff0c;分别是在子进…

给有钱人办教育

今天&#xff0c;看新闻上&#xff0c;报道了&#xff0c;贷款利率又上升了。这 年头&#xff0c;什么都上涨&#xff0c;物价&#xff0c;房价&#xff0c;粮价&#xff0c;失业率也在逐年攀升&#xff0c;唯一不上涨的就是工资了&#xff0c;反而有很多很多的大学生正一次又一…

进程创建fork--文件表项继承

进程创建fork–文件表项继承 子进程继承父进程的文件描述表&#xff0c;不继承共享文件表项和iNode。 父进程创建一个子进程后&#xff0c;文件表项中的引用计数器加1变为2&#xff0c;当父进程操作close操作后&#xff0c;计数器减1&#xff0c;子进程还是可以使用文件表项&am…

论ACM ICPC_Ruins He

这段时间老是有许多新人向我问到ACM相关的问题。比如它与工作的关系&#xff0c;对我以后的工作到底有没有帮助&#xff1f;还比如说第二年的训练计划应该是什么样的&#xff1f;还有的孩子问到&#xff0c;我寒假玩儿的一个寒假&#xff0c;又该怎么办&#xff1f; 看到这些问…

查询分析器下如何备份数据库

查询分析器下如何备份数据库backupdatabasemsdb todiskd:\msdb.bakOK搞定转载于:https://www.cnblogs.com/CnKker/archive/2006/09/26/515318.html

Inside Dynamics Axapta源代码赏析(四)

第八章:Developing Applications Using Business Connector 这一章的代码主要演示如何通过Business Connector与Axapta交互在Dynamics Axapta的客户端安装目录中找到Microsoft.Dynamics.BusinessConnectorNet.dll这个文件,添加到VS.NET的工程中.1.HelloWorldBC.csclassHelloWor…

uva 1629——Cake slicing

题意&#xff1a;有一个n行m列网格蛋糕上有一些樱桃&#xff0c;每次可以把蛋糕一刀切成两块&#xff0c;最后使每块蛋糕上都有一个樱桃且切割线总长度最小。 思路&#xff1a;区间dp&#xff0c;记忆化搜索整个过程&#xff0c;然后分区间从上到下&#xff0c;从左到右&#x…

信号之SIGCHLD

信号之SIGCHLD SIGCHLD信号是子进程结束时发出来的信号&#xff0c;可用于在程序中捕获子进程结束的信号然后用wait函数将子进程资源回收。 优点&#xff1a;不会使父进程一直阻塞在wait函数处。 #include <signal.h> #include <stdio.h> #include <string.h&g…

uva 242——Stamps and Envelope Size

题意&#xff1a;给定最大贴邮票上限和若干个邮票组合&#xff0c;求最大的连续邮资的一个组合&#xff0c;如果有多个&#xff0c;按字典序输出最大的一个。 思路&#xff1a;对每一组邮票&#xff0c;求出当邮资为i时需要邮票数的最小值d[i]&#xff0c;边界为d[0]0、d[i]>…

js常用

//关闭,父窗口弹出对话框,子窗口直接关闭this.Response.Write("<script languagejavascript>window.close();</script>");//关闭,父窗口和子窗口都不弹出对话框,直接关闭this.Response.Write("<script>");this.Response.Write("{to…

信号之kill-raise

信号之kill-raise kill(),raise()都是信号发送函数 #include <signal.h> int kill(pid_t pid, int signo); kill函数向指定的进程发送信号。 int raise(int signo); raise函数向本进程发送信号,相当于kill(getpid(), int signo). #include <sys/types.h> #include…

Google 代码搜索

今天在CSDN上看到的消息&#xff0c;google推出了CodeSearch的服务&#xff0c;上去一测试&#xff0c;吓死我了&#xff01; 代码的秘密全无了&#xff01; http://www.google.com/codesearch/ 你可以试试你的代码看看&#xff01; 比如&#xff1a;搜索以下&#xff1a;on er…

uva 10723——Cyborg Genes

题意&#xff1a;输入两个A-Z组成的字符串&#xff0c;找到一个最短的串&#xff0c;使得两个串均是他的子串。 思路&#xff1a;最长公共序列问题。当i和j相等时&#xff0c;dp[i][j]dp[i-1][j-1]&#xff0c;不等时就是max(dp[i-1][j],dp[i][j-1]),如果当前的统计的数量大于s…

信号之函数的可重入性

信号之函数的可重入性 在调用某个函数过程中出现中断信号&#xff0c;且改信号处理函数中再次调用该函数&#xff0c;访问全局、静态变量的函数是不可重入函数。 前后数据不一致&#xff0c;函数是不可重入的&#xff0c;特点&#xff1a;函数中使用全局变量或静态变量。 前后数…

ASP.NET 中处理页面“回退”的方法

我们在编写基于 ASP.NET 的应用程序时&#xff0c;如果代码执行出错或检测到异常&#xff0c;一般会提示用户“返回”或“回退”&#xff0c;或者在多步操作、列表/详细的查看界面中&#xff0c;也会给用户提供回退到上一页面的链接&#xff0c;对于这种情况&#xff0c;大家很…

uva 1631——Locker

题意&#xff1a;有一个n位的密码锁&#xff0c;每位都是0——9可以循环旋转&#xff0c;每次可以往上或者往下旋转一下&#xff0c;然后给定初始状态和末状态求最小旋转步数。 思路&#xff1a;递推&#xff0c;dp&#xff08;i&#xff0c;x&#xff0c;y&#xff09;表示翻到…

socekt编程-select

摘抄自 https://blog.csdn.net/lovekun1989/article/details/41042273 https://blog.csdn.net/Ctrl_qun/article/details/52524086 分为无select和有select版本&#xff0c;无select只能一个服务端一个客户端&#xff0c;有select能一个服务端对应多个客户端。 无select&#x…

uva 1632——Alibaba

题意&#xff1a;直线上有n个点&#xff0c;其中第i个点的坐标是xi&#xff0c;且他会在di秒后消失&#xff0c;阿里巴巴可以从任意位置出发&#xff0c;求访问过所有节点的最短时间&#xff0c;不能输出-1&#xff1b; 思路&#xff1a;01背包问题&#xff0c;dp&#xff08;i…

忙活了,暂时歇笔

估计近期活忙起来&#xff0c;有活忙就好&#xff0c;埋头不用想什么。所以暂时歇笔。估计有一段时间才更新。 转载于:https://www.cnblogs.com/zuolun/archive/2006/10/25/540051.html