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 ...
随机推荐
- TFS WorkItem Permission Setting
TFS非常强大,但是权限设置确实非常的恶心复杂,这貌似是一切NB又傲慢的软件的通病. 那么,在哪里设置 WorkItem 的权限呢? 第一步: 第二步: 第三步,下面你将一目了然. 第四步,Share ...
- Lua简明教程
这几天系统地学习了一下Lua这个脚本语言,Lua脚本是一个很轻量级的脚本,也是号称性能最高的脚本,用在很多需要性能的地方,比如:游戏脚本,nginx,wireshark的脚本,当你把他的源码下下来编译 ...
- 同步FIFO的设计
module scfifo #( , ) ( input clk, input rst_n, input wren, input rden, :] din, :] dout, output full, ...
- 我所遭遇过的游戏中间件--Apex
我所遭遇过的游戏中间件--Apex Apex是PhysX的扩展中间件,它是在PhysX的基础上封装了一层.用于实现布料,粒子,破碎这三种物理效果.我只研究其布料处理.使用Apex做物理最大的好处是:它 ...
- Jump Game II leetcode java
题目: Given an array of non-negative integers, you are initially positioned at the first index of the ...
- Data Binding MVVM 数据绑定 总结
示例代码:https://github.com/baiqiantao/DataBindingTest 参考:精通Android Data Binding Android Data Binding ...
- MediaPlayer 状态机 API 详解 示例
简介 public class android.media.MediaPlayer extends Object implements VolumeAutomation 可能需要的权限: One ma ...
- JavaScript使用技巧精萃
(一).确认删除用法: 1. BtnDel.Attributes.Add("onclick","return confirm('"+"确认删除?& ...
- 值得收藏的十二条Jquery随身笔记
1.关于页面元素的引用 通过jquery的$()引用元素包括通过id.class.元素名以及元素的层级关系及dom或者xpath条件等方法,且返回的对象为jquery对象(集合对象),不能直接调用do ...
- 【K8S】K8S-网络模型、POD/RC/SVC YAML 语法官方文档
K8S-网络模型.POD/RC/SVC YAML 语法官方文档 Kubernetes - Production-Grade Container Orchestration kubernetes/kub ...