【BZOJ 2711】 2711: [Violet 2]After 17 (0-1 背包)
2711: [Violet 2]After 17
Time Limit: 5 Sec Memory Limit: 128 MB
Submit: 224 Solved: 153Description
Input
Output
Sample Input
4
4 5
1 2
3 3
4 1Sample Output
-38.00HINT
Source
【分析】
虽然是道水题,但是我今天终于自己真正想出来一道了,撒花~~

还挤到第7啦~~
点积的话,就是求$x2*x1+x3*x1+x3*x2+...+xn*x(n-1)+y2*y1+y3*y1+y3*y2+...yn*y(n-1)$
设$sumx=x1+x2+...+xn, sumy=y1+y2+...yn$
就是$sumx^2-\sum xi^2+sumy^2-\sum yi^2$
$x$和$y$没有半毛钱关系,分开做。
其实是很显然$(x,y)$是只会选择那角落四个点的【这是套路也是可以证(luan)明(shuo)的,【就是假设把一个$x$增加$a$ 贡献是$2a(x-sumx)$,你总往好的一边增加就好了。
那么$xi^2+yi^2$也是固定的。
那么就要$sumx$和$sumy$尽量接近0就好了。
这个,很熟悉吧?把$\dfrac{\sum xi}{2}$当成背包容量,把背包尽量填满就行了,这个0-1背包bool就好。
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
#define Maxn 210
#define LL long long bool f[Maxn*Maxn];
int nx[Maxn],ny[Maxn]; int main()
{
int n,ans=,h1=,h2=;
scanf("%d",&n);
for(int i=;i<=n;i++)
{
int x,y;
scanf("%d%d",&x,&y);
ans-=x*x+y*y;
h1+=x;h2+=y;
nx[i]=x;ny[i]=y;
}
memset(f,,sizeof(f));
f[]=;
for(int i=;i<=n;i++)
{
for(int j=h1/;j>=nx[i];j--)
{
f[j]|=f[j-nx[i]];
}
}
int mx=;
for(int i=;i<=h1/;i++) if(f[i]) mx=i;
ans+=(h1-*mx)*(h1-*mx);
memset(f,,sizeof(f));
f[]=;
for(int i=;i<=n;i++)
{
for(int j=h2/;j>=ny[i];j--)
{
f[j]|=f[j-ny[i]];
}
}
mx=;
for(int i=;i<=h2/;i++) if(f[i]) mx=i;
ans+=(h2-*mx)*(h2-*mx);
printf("%.2lf\n",ans*1.0/);
return ;
}
2017-04-06 16:45:10
【BZOJ 2711】 2711: [Violet 2]After 17 (0-1 背包)的更多相关文章
- CentOS 6.5安装Erlang/OTP 17.0
CentOS 6.5安装Erlang/OTP 17.0 作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chszs Erlang眼下已经是Fedora和Debian/ ...
- centos 7 运行Quartus ii 17.0 标准版,下载程序时遇到错误error (209053): unexpected error in jtag server -- error code 89
对于错误error (209053): unexpected error in jtag server -- error code 89,它产生的原因在于,在linux系统下,Quartus ii的驱 ...
- Altium Designer (17.0) 打印输出指定的层
Altium Designer (17.0) 例如,打印输出Top Overlay,Keep-Out Layer 1.先选择PCB文件,在单击按键Print Preview... 2.在预览区单击鼠标 ...
- openwrt从18.0.1降级回到17.0.6遇到的问题
因为觉得openwrt的18的配置检查功能很费时,特别是遇到ar93xx慢的真可以,所以决定从18.0.1降回到17.0.6上 先把18.0.1的配置backup出来,然后刷17.0.6,再把back ...
- This Android SDK requires Android Developer Toolkit version 17.0.0 or above. Current version is 10.0.0.v201102162101-104271. Please update ADT to the latest version.
win7/xp 下面安装Android虚拟机,更新SDK后,在Eclipse preference里指向android-sdk-windows时. 出现 : This Android SDK requ ...
- Docker 在转发端口时的这个错误Error starting userland proxy: mkdir /port/tcp:0.0.0.0:3306:tcp:172.17.0.2:3306: input/output error.
from:https://www.v2ex.com/amp/t/463719 系统环境是 Windows 10 Pro,Docker 版本 18.03.1-ce,电脑开机之后第一次运行 docker ...
- PIG之 Hadoop 2.7.4 + pig-0.17.0 安装
首先: 参考 http://blog.csdn.net/zhang123456456/article/details/77621487 搭建好hadoop集群. 然后,在master节点安装pig. ...
- iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 8001 -j DNAT --to-destination 172.17.0.5:8080 ! -i docker0: iptables: No chain/target/match by that name.
在docker容器上部署项目后,启动docker容器,出现 iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dpor ...
- 修复升级ndk到17.0.4754217编译so失败问题
今天编译工程总过不去,查看失败原因,因为ndk的mips编译不过去. A problem occurred starting process ‘command ‘/Users/didi/Library ...
随机推荐
- 微信小程序开发(四)线程架构和开发步骤
线程架构 从前面的章节我们可以知道,.js文件是页面逻辑处理层.我们可以按需在app.js和page.js中添加程序在生命周期的每个阶段相应的事件.如在页面的onLoad时进行数据的下载,onShow ...
- Use of exceptionless, 作全局日志分布式记录处理
Download latest release of exceptionless on github and deploy on Window server, by default exception ...
- ES6基础知识汇总
1.如何理解ECMAScript6? ECMAScript是什么,ECMASCript的作用 2.新增let关键字 let的用途 3.关键字const const作用,传址赋值 4.解构赋值 解构赋值 ...
- hdu 5319 Painter(杭电多校赛第三场)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5319 Painter Time Limit: 2000/1000 MS (Java/Others) ...
- Git HTTPS 方式自动保存用户名密码
一行命令搞定: git config --global credential.helper wincred 第一次输入用户名和密码提交,第二次就不需要了 参考: https://help.github ...
- 47、求1+2+3+...+n
一.题目 求1+2+3+...+n,要求不能使用乘除法.for.while.if.else.switch.case等关键字及条件判断语句(A?B:C). 二.解法 public class Solut ...
- SQL 变量 条件查询 插入数据
(本文只是总结网络上的教程) 在操作数据库时 SQL语句中难免会用到变量 比如 在條件值已知的情況下 INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值 ...
- JAVA 之 Tomcat知识框架【转】
一.Tomcat服务器(很熟悉) 1.Web开发概述 javaSE: javaEE:13种 javaME: JavaEE规范: 13种技术的总称.Servlet/Jsp JDBC JNDI JTA.. ...
- C++ 和Java继承机制的比较
摘要: C++支持类的多继承,而Java采用类的单继承.C++中的继承成分只有类(模板属于带参数的类,结构和联合是特殊的类),Java中除了类还有接口的继承,而且允许接口的多继承,可以间接地实现类多继 ...
- fedora16下更改网卡名字
fedora16下更改网卡名字 今天由于网络启动出错的原因,在网上搜索,发现大部分人的网卡名字都是eth0,可是我的却是p3p1,所以想改成eth0. 然后google了下,发现设备命名什么的 ...
.gif)
.gif)
.gif)
.gif)