题解:

暴力枚举顺序

然后计算几何

代码:

#include<bits/stdc++.h>
int n,id[],lp=;
double v1,v2,ans=1e10;
struct pos
{
double x,y;
void init(){scanf("%lf%lf",&x,&y);}
pos operator+(pos a){return (pos){x+a.x,y+a.y};}
pos operator-(pos a){return (pos){x-a.x,y-a.y};}
pos operator*(double a){return (pos){x*a,y*a};}
double operator*(pos a){return x*a.y-y*a.x;}
double dot(pos a){return x*a.x+y*a.y;}
double abs(){return sqrt(x*x+y*y);}
}ps[];
double mn,mx;
struct line
{
pos a,b;
void chk(line w)
{
double c=w.b*b;
if(c==)return;
c=(a*w.b+w.b*w.a)/c;
if(c>0.5)c<mx&&(mx=c);
else c>mn&&(mn=c);
}
}ls[],l0[];
int main()
{
scanf("%lf%lf%d",&v1,&v2,&n);
for (int i=;i<=n;i++)ps[i].init(),id[i]=i;
ps[n+]=ps[];
pos p1=(pos){,},p2=(pos){v1,},p3=(pos){v1,v2},p4=(pos){,v2};
ls[lp++]=(line){p1,p2-p1};
ls[lp++]=(line){p2,p3-p2};
ls[lp++]=(line){p3,p4-p3};
ls[lp++]=(line){p4,p1-p4};
for (int i=;i<=n;++i)l0[i]=(line){ps[i],ps[i+]-ps[i]};
do
{
lp=;
double s=;
for (int i=;i<=n;i++)
{
int w=id[i];
mn=-1e10,mx=1e10;
for (int j=;j<lp;j++)l0[w].chk(ls[j]);
ls[lp++]=l0[w];
s+=(mx-mn)*l0[w].b.abs();
}
if (s<ans)ans=s;
}while(std::next_permutation(id+,id+n+));
printf("%.3f",ans);
return ;
}

bzoj1091的更多相关文章

  1. 【题解】切割多边形 [SCOI2003] [P4529] [Bzoj1091]

    [题解]切割多边形 [SCOI2003] [P4529] [Bzoj1091] 传送门:切割多边形 \(\text{[SCOI2003] [P4529]}\) \(\text{[Bzoj1091]}\ ...

  2. bzoj1091: [SCOI2003]切割多边形

    Description 有一个凸p边形(p<=8),我们希望通过切割得到它.一开始的时候,你有一个n*m的矩形,即它的四角的坐标分别为(0,0), (0,m), (n,0), (n,m).每次你 ...

  3. BZOJ第1页养成计划

    嗯,用这篇博客当一个目录,方便自己和学弟(妹?)们查阅.不定期更新. BZOJ1000   BZOJ1001   BZOJ1002   BZOJ1003   BZOJ1004   BZOJ1005   ...

  4. BZOJ 1091([SCOI2003]分割多边形-分割直线)

    1091: [SCOI2003]分割多边形 Time Limit: 1 Sec  Memory Limit: 162 MB Submit: 223  Solved: 82 [Submit][id=10 ...

随机推荐

  1. 高级版本VS打开低版本VS工程,无法调试的问题

    选中Debugging选项,在Command命令行里面输入生成exe文件的相对路径. 转载:http://blog.csdn.net/x931100537/article/details/405052 ...

  2. 高通平台读写nv总结【转】

    本文转载自:https://blog.csdn.net/suofeng12345/article/details/52713993 一,引言      1. 什么是NV       高通平台的NV,保 ...

  3. react 为元素添加自定义事件监听器

    https://zhenyong.github.io/react/tips/dom-event-listeners.html class MovieItem extends React.Compone ...

  4. 【第三十二章】 elk(3)- broker架构 + 引入logback

    实际中最好用的日志框架是logback,我们现在会直接使用logback通过tcp协议向logstash-shipper输入日志数据.在上一节的基础上修改!!! 一.代码 1.pom.xml 1 &l ...

  5. axis2框架用wsdl文件生成的服务端MessageReceiveInOut文件注意事项

    在用axis2生成服务端文件和客户端文件,当客户端文件调用服务端文件时,都是通过wsdl文件生成的 配置文件进行相互的调用. 在一开始做开发测试的时候,通过soapUI进行调用接口的时候,可以调用成功 ...

  6. CSU 1805 Three Capitals(矩阵树定理+Best定理)

    http://acm.csu.edu.cn/csuoj/problemset/problem?pid=1805 题意: A和B之间有a条边,A和G之间有b条边,B和G之间有c条边.现在从A点出发走遍所 ...

  7. self用法

  8. 111python

    补充一句,为兼容平台文件地址可以这么写: file = os.path.join('dir', 'file_name')

  9. Windows系统下在Eclipse中集成Python

    我现在偶尔开发代码,已经不用Eclipse了,主要原因是查看Jar包中的代码反编译十分不便,项目加载的时候卡,偶尔还会崩溃 用Intellij IDEA和PyCharm 原来的笔记如何在Eclipse ...

  10. DataTable转化成实体对象

    /// <summary> /// The data extension. /// </summary> public static class DataExtension { ...