HDUOJ---携程员工运动会场地问题
携程员工运动会场地问题
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 821 Accepted Submission(s): 231
现在有N (3 <= N <= 40)个栅栏段(每个栅栏长度Li (1 <= Li <= 40)),必须刚好用掉所有的栅栏拼成一个最大面积的三角形活动区域,
求这个最大面积。
* 第 2..N+1行: 共N 行, 每行中包括一个整数, 表示 一个栅栏的长度.( 多个栅栏的长度可以出现相同).
* 第N+3行:第二组数据。
每组数据隔一空行,文件末尾以0结尾。
一道简单的二维背包问题,当时由于有一段时间没有碰这种题,在做这道题的时候也没有向这个方向想....
并只以为很装B的用着组合数字里的,frrerrs图像可以AC。。。但是最后wa的一塌糊涂....
谢安贴一下错误的代码吧....以此为戒.
代码:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<algorithm>
#include<vector>
#include<math.h>
#include<iostream>
#include<functional>
using namespace std;
int main()
{
int n,i;
double ans,tol;
//freopen("test.in","r",stdin);
//freopen("test.out","w",stdout);
while(scanf("%d",&n)!=EOF)
{
vector<int>aa(n+);
for(i=;i<n;i++)
cin>>aa[i];
sort(aa.begin(),aa.end(),greater<int>());
for(i=;i<n;i++)
{
if(aa[]>aa[])
{
if(aa[]>aa[])
aa[]+=aa[i];
else
aa[]+=aa[i];
}
else
{
if(aa[]>aa[])
aa[]+=aa[i];
else
aa[]+=aa[i];
}
}
tol=(aa[]+aa[]+aa[])/2.0;
ans=(100.0*sqrt(tol*(tol-aa[])*(tol-aa[])*(tol-aa[]))); //o£?×1?ê?
if(ans>1.0e-4)
{
printf("%d %d %d\n",aa[],aa[],aa[]);
printf("%.lf\n",floor(ans)); }
else
printf("-1\n");
}
return ;
}
copy
当然上面的代码,一般的情况是可以过的,但是有bug.....
比如下面的数据就过不了...
/*
10
1 3 6 9 0 8 5 7 4 2
7 6 5 4 3 2 1 0
1 0
2 1 0
3 2 1 0
4 3 2 1 0
5 4 3 2 1 0
6 5 4 3 2 1 0
7 6 5 4 3 2 1 0
8 7 6 5 4 3 2 1 0
9 8 7 6 5 4 3 2 1 0
10 9 8 7 6 5 4 3 2 1 0
*/ //answer
/*
9742
2121
-1
-1
-1
-1
447
1082
2121
3741
6235
9742
*/
用二维0/1背包来求解为:
当然是经过优化后的...
//二维0/1背包
//扩大栈空间
#pragma comment(linker, "/STACK:102400000,102400000")
#include<stdio.h>
#include<math.h>
#include<string.h>
#include<stdlib.h>
int val[],aa[];
bool dp[][];
int main()
{
int n,i,j,k,ans,len,temp;
double cc;
freopen("test.in","r",stdin);
freopen("test.out","w",stdout);
while(scanf("%d",&n)!=EOF)
{
memset(dp,,sizeof(dp));
memset(aa,,sizeof(aa));
for(i=;i<=n;i++)
{
scanf("%d",&val[i]);
aa[i]+=aa[i-]+val[i];
}
cc=aa[n]/2.0;
len=cc;
temp=;
dp[][]=true;
for(i=;i<=n;i++)
{
if(len<=aa[i])
temp=len;
else temp=aa[i];
for(j=temp;j>=;j--)
{
for(k=temp;k>=;k--)
{
if((j-val[i]>=&&dp[j-val[i]][k])||(k-val[i]>=&&dp[j][k-val[i]]))
dp[j][k]=true;
}
}
}
ans=;
for(i=;i<=len;i++)
{
for(j=;j<=len;j++)
{
if(dp[i][j])
{
if(ans<*sqrt(cc*(cc-i)*(cc-j)*(i+j-cc)))
ans=*sqrt(cc*(cc-i)*(cc-j)*(i+j-cc));
}
}
}
if(ans==) printf("-1\n");
else printf("%d\n",ans);
}
return ;
}
HDUOJ---携程员工运动会场地问题的更多相关文章
- OpenStack虚拟云桌面在携程呼叫中心的应用
编者:本文为刘科在第六期[携程技术微分享]中的分享内容.在携程技术中心(微信号ctriptech)微信后台回复[云桌面],可加入微信交流群,和关注云桌面的小伙伴一起玩耍~ 刘科,携程系统研发云平台桌面 ...
- 我所了解的 京东、携程、eBay、小米 的 OpenStack 云
参加过几次 OpenStack meetup 活动,听过这几家公司的Architect 讲他们公司的 OpenStack产品.本文试着凭借影响加网络搜索,按照自己的理解,对这些公司的 OpenStac ...
- IBM、京东、携程、eBay 的 OpenStack 云
我所了解的 IBM.京东.携程.eBay 的 OpenStack 云 参加过几次 OpenStack meetup 活动,听过这几家公司的Architect 讲他们公司的 OpenStack产品.本文 ...
- 敏捷之旅--携程行程&订单团队
转自本人运营的公众号“ 携程技术中心PMO”(ID:cso_pmo) 关于我们 我们面临的挑战 敏捷开发是以用户的需求进化为核心,采用迭代.循序渐进的方法进行软件开发.先把一个大项目分 ...
- 微信小程序体验(1):携程酒店机票火车票
在 12 月 28 日微信公开课上,张小龙对微信小程序的形态进行了阐释,小程序有四个特定:无需安装.触手可及.用完即走.无需卸载. 由于携程这种订酒店.火车票和机票等工具性质非常强的服务,非常符合张小 ...
- 携程App的网络性能优化实践
首先介绍一下携程App的网络服务架构.由于携程业务众多,开发资源导致无法全部使用Native来实现业务逻辑,因此有相当一部分频道基于Hybrid实现.网络通讯属于基础&业务框架层中基础设施的一 ...
- 实现携程X分钟前有人预定功能
实现携程X分钟前有人预定功能 原理:利用cookie与计时器两部分: 首先,进入页面,x会被随机数赋值,赋值后x会一分钟加1,直到加到60,再从1开始累加. 页面是否相同是根据页面的url后的id值判 ...
- 今天携程出事了:让我们来学习下http的响应码
就在今天,2015年5月28日,中国最大的旅游机票预订网站--携程网粗大事了.据传携程网的数据库被人物理删除了,而容灾备份的数据又无法正常使用,服务器全面遭受瘫痪.每小时给携程带来的损失约100万美元 ...
- 携程Ctrip DAL的学习 2
携程Ctrip DAL的学习 2 本人net开发菜鸟,原理请自行看github的官网源码. 我这里是简单的使用(helloworld的水平). 代码生成器的使用 详见 官网使用说明 注意的地方: 1 ...
随机推荐
- C语言变量的类型和存储位置
. C语言变量主要分为全局变量.静态全局变量.局部变量.静态局部变量和寄存器变量.其中静态变量用static关键字进行修饰.程序所占用的内存可以分为以下几个部分: ()代码段-存放程序代码,只读的,不 ...
- 环境变量篇getenv putenv setenv
getenv(取得环境变量内容) 相关函数 putenv,setenv,unsetenv 表头文件 #include<stdlib.h> 定义函数 char * getenv(const ...
- 又议android中的manifest清单文件
写过java程序的人,都知道了配置文件时java实现各种各样的框架的一大利器,manifest清单文件对android的作用自然不言而喻,然而他里面究竟定义了些什么,并且他是如何加载到程序中的. 他里 ...
- Back Track 5 之 网络踩点
DNS记录探测 dnsenum 针对NDS信息收集的工具 格式: ./dnsenum.pl dbsserver (域名) 请原谅我拿freestu.net这个学校团委的域名做的测试,求不黑!! dns ...
- 关于json与protobuf的材料
1. https://solicomo.com/network-dev/protobuf-proto3-vs-proto2.html 2.
- COM中的HRESULT
- js 特效
栏目1 栏目1->菜单1 栏目1->菜单2 栏目1->菜单3 栏目1->菜单4 栏目2 栏目2->菜单1 栏目2->菜单2 栏目2->菜单3 栏目2-> ...
- cocos2d-x -3.81+win7+vs2013开发环境创建新的项目
cocos2d-x -3.81+win7+vs2013开发环境创建新的项目 1.准备阶段 (1) vs2013下载及安装 (2)cocos2d-x 3.8.1下载及解压 (3)python下载及安装( ...
- 5种调优Java NIO和NIO.2的方式
Java NIO(New Input/Output)——新的输入/输出API包——是2002年引入到J2SE 1.4里的.Java NIO的目标是提高Java平台上的I/O密集型任务的性能.过了十年, ...
- 相似qq的IM聊天应用源代码
这个是IM聊天应用源代码,该应用IM支持实现XMPP,以及图片和表情,语音.消息回执等功能,基本覆盖了常见的im应用的功能了,大家能够參考一下吧. 源代码下载:http://code.662p.com ...