bzoj3822: 文学
Description
Input
Output
每本书看作平面上一点,每个方案则为一个半平面,转化为求最小权值和的 半平面并 覆盖所有点。
首先可以特判掉一个半平面覆盖所有点的情况,其余情况的解至少有两个半平面,那么可以枚举其中的两个半平面,以半平面的交点为中心对其余未被覆盖的点进行极角排序
可以发现存在一种划分贡献的方式,使排序后的点被划分为几个连续段,每段被解中的某个半平面覆盖,于是可以区间dp,总复杂度是O(n4)
在判定点在半平面内时,计算结果在1012内,且计算结果和原数值都为整数,用double可以精确表示和计算
#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
const int inf=0x3f3f3f3f;
int n,m;
struct hp{
double a,b,c;int v;
void read(){scanf("%lf%lf%lf%d",&a,&b,&c,&v);}
}h[];
struct pos{
double x,y;
void read(){scanf("%lf%lf",&x,&y);}
bool in(hp w){return x*w.a+y*w.b<=w.c;}
pos operator-(pos w){return (pos){x-w.x,y-w.y};}
double operator*(pos w){return x*w.y-y*w.x;}
}p[],s[];
pos p0;
bool operator<(pos a,pos b){
return (a-p0)*(b-p0)<;
}
pos cross(hp x,hp y){
double v=x.a*y.b-y.a*x.b;
return (pos){(x.c*y.b-y.c*x.b)/v,(x.c*y.a-y.c*x.a)/-v};
}
int f[],g[][],sp=,ans=inf;
void mins(int&a,int b){if(a>b)a=b;}
int main(){
scanf("%d%d",&n,&m);
for(int i=;i<=n;++i)h[i].read();
for(int i=;i<=m;++i)p[i].read();
for(int i=;i<=n;++i){
for(int j=;j<=m;++j)if(!p[j].in(h[i]))goto o;
mins(ans,h[i].v);o:;
}
for(int i=;i<=n;++i){
for(int j=;j<i;++j){
sp=;
p0=cross(h[i],h[j]);
for(int k=;k<=m;++k)if(!(p[k].in(h[i])||p[k].in(h[j])))s[++sp]=p[k];
std::sort(s+,s+sp+);
memset(f,0x3f,sizeof f);
memset(g,0x3f,sizeof g);
for(int a=;a<=n;++a)if(a!=i&&a!=j){
for(int l=,r;l<=sp;++l){
if(!s[l].in(h[a]))continue;
for(r=l;r<sp&&s[r+].in(h[a]);++r);
mins(g[l][r],h[a].v);
l=r+;
}
}
for(int d=sp;d>;--d)for(int l=,r=d;r<=sp;++l,++r)mins(g[l][r-],g[l][r]),mins(g[l+][r],g[l][r]);
f[]=;
for(int b=;b<=sp;++b)for(int a=;a<b;++a)mins(f[b],f[a]+g[a+][b]);
mins(ans,f[sp]+h[i].v+h[j].v);
}
}
printf("%d",ans==inf?-:ans);
return ;
}
bzoj3822: 文学的更多相关文章
- (转)一文学会用 Tensorflow 搭建神经网络
一文学会用 Tensorflow 搭建神经网络 本文转自:http://www.jianshu.com/p/e112012a4b2d 字数2259 阅读3168 评论8 喜欢11 cs224d-Day ...
- 腾讯文学动作密集 疑为手Q发力移动阅读铺路
移动互联网的门票之争并未结束,百度收购91无线,阿里投资新浪微博.UC浏览器,网易推易信.云音乐等等,都是互联网巨头争夺移动互联网门票的最佳案例.不过,上述任何巨头都不可忽视腾讯这个“狠角色” ...
- 移动收入超PC端 盛大文学战略转型初见成效
随着智能手机和平板电脑的普及,越来越多的互联网服务也开始向移动端拓展,除了传统的互联网服务如搜索.即时通信之外,网络文学这项新兴的互联网业务也没忽视对移动端的布局. 7月9日,中国最大的网络文学出版平 ...
- 青年之锋文学网( www.xcqnzf…
青年之锋文学网( www.xcqnzf.com )简介: 青年之锋文学网创建于2013年秋,是河南农业大学(应用科技学院)--青年之锋文学社的官方网站,网站以长篇写作和出版校刊为主题,短篇精彩丰富为中 ...
- 一文学会用 Tensorflow 搭建神经网络
http://www.jianshu.com/p/e112012a4b2d 本文是学习这个视频课程系列的笔记,课程链接是 youtube 上的,讲的很好,浅显易懂,入门首选, 而且在github有代码 ...
- 一文学会最常见的10种NLP处理技术
一文学会最常见的10种NLP处理技术(附资源&代码) 技术小能手 2017-11-21 11:08:29 浏览2562 评论0 算法 HTTPS 序列 自然语言处理 神经网络 摘要: 自然 ...
- 网络文学带动的IP热
网络文学从最初被人诟病不入流到现今直接带动整个网络文学产业链发展以及IP热,其发展历程如何?现今布局如何?以下做简单概括. 下图为艾瑞PC指数文学网站排名,由图可看出晋江原创网排名首位. 晋江隶属盛大 ...
- pyhton项目和晋江文学城数据分析项目
1.图书管理系统 图1.图书管理系统(作者信息列表页面) 图2.图书管理系统(作者信息修改页面) 2.个人博客网页设计 图3.博客(我的日记-->个人日记)页面 图4.博客(关于我--> ...
- [文学阅读] METEOR: An Automatic Metric for MT Evaluation with Improved Correlation with Human Judgments
METEOR: An Automatic Metric for MT Evaluation with Improved Correlation with Human Judgments Satanje ...
随机推荐
- 初学jquery,自己写的一个jquery幻灯片,代码有些笨拙,希望有大神可以指点一二,精简一下代码
html代码 <div class="picCon"> <div class="bigPic"> <ul> <li c ...
- OPencv1.0配置vs2010(介于OPencv的经典之作。都是OPencv1.0为基础的。)
首先下载OPencv1.0 我在之前的博客中写了下载的资源http://www.cnblogs.com/xiaochige/p/5990858.html 把OPencv1.0中bin文件夹下的所有内容 ...
- eclipse中配置tomcat后,运行jsp时出现Server Tomcat v7.0 Server at localhost failed to start.
最近在进行jsp开发学习,在配置上还是遇到很多问题. 在连接好数据库后,写了第一个jsp测试页面,结果在运行eclipse中运行toamcat时出现了错误提示:Server Tomcat v7.0 S ...
- git中ssh配置方法
前提:必须先安装好Git for windows(即msysGit)和TortoiseGit 一,检查本地是否已存在ssh $ cd ~/.ssh $ ls 如果存在id_rsa.pub或者id_ds ...
- JSON认识
阅读目录 JSON的两种结构 认识JSON字符串 在JS中如何使用JSON 在.NET中如何使用JSON 总结 JSON的全称是”JavaScript Object Notation”,意思是Java ...
- GUI用户界面编程
Java的GUI编程(Graphic User Interface,图形用户接口),是在它的抽象窗口工具箱(Abstract Window Toolkit,AWT)上实现的,java.awt是AWT的 ...
- iOS系统消息
一.键盘1.UIKeyboardWillShowNotification-将要弹出键盘2.UIKeyboardDidShowNotification-显示键盘3.UIKeyboardWillHideN ...
- addslashes() 函数和stripslashes()函数
addslashes() 函数 定义和用法 addslashes() 函数在指定的预定义字符前添加反斜杠. 这些预定义字符是: 单引号 (') 双引号 (") 反斜杠 (\) NULL 语法 ...
- LintCode First Position of Target
找指定target的最左位置. class Solution { /** * @param nums: The integer array. * @param target: Target to fi ...
- bk. 2014.12.1
typedef void (*halKeyCback_t) (uint8 key, uint8 state) 表示定义halKeyCBack_T为指向函数的指针,该函数的特点是形参(uint8,uin ...