携程员工运动会场地问题

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 821    Accepted Submission(s): 231

Problem Description
携程每年要举行员工运动会,现在需要搭建三角形的场地给运动员们自由活动。
现在有N (3 <= N <= 40)个栅栏段(每个栅栏长度Li (1 <= Li <= 40)),必须刚好用掉所有的栅栏拼成一个最大面积的三角形活动区域,
求这个最大面积。
 
Input
* 第一行: 整数 N ,表示有多少个栅栏

* 第 2..N+1行: 共N 行, 每行中包括一个整数, 表示 一个栅栏的长度.( 多个栅栏的长度可以出现相同).

* 第N+3行:第二组数据。

每组数据隔一空行,文件末尾以0结尾。

 
Output
每行输出一个截取后的整数,即最大面积乘以100后的整数。 如果无法构成,输出 -1。
 
Sample Input
5
1 1 3 3 4
5
12 37 1 4 3 0
 
Sample Output
692
-1

一道简单的二维背包问题,当时由于有一段时间没有碰这种题,在做这道题的时候也没有向这个方向想....

并只以为很装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---携程员工运动会场地问题的更多相关文章

  1. OpenStack虚拟云桌面在携程呼叫中心的应用

    编者:本文为刘科在第六期[携程技术微分享]中的分享内容.在携程技术中心(微信号ctriptech)微信后台回复[云桌面],可加入微信交流群,和关注云桌面的小伙伴一起玩耍~ 刘科,携程系统研发云平台桌面 ...

  2. 我所了解的 京东、携程、eBay、小米 的 OpenStack 云

    参加过几次 OpenStack meetup 活动,听过这几家公司的Architect 讲他们公司的 OpenStack产品.本文试着凭借影响加网络搜索,按照自己的理解,对这些公司的 OpenStac ...

  3. IBM、京东、携程、eBay 的 OpenStack 云

    我所了解的 IBM.京东.携程.eBay 的 OpenStack 云 参加过几次 OpenStack meetup 活动,听过这几家公司的Architect 讲他们公司的 OpenStack产品.本文 ...

  4. 敏捷之旅--携程行程&订单团队

    转自本人运营的公众号“ 携程技术中心PMO”(ID:cso_pmo)     关于我们   我们面临的挑战   敏捷开发是以用户的需求进化为核心,采用迭代.循序渐进的方法进行软件开发.先把一个大项目分 ...

  5. 微信小程序体验(1):携程酒店机票火车票

    在 12 月 28 日微信公开课上,张小龙对微信小程序的形态进行了阐释,小程序有四个特定:无需安装.触手可及.用完即走.无需卸载. 由于携程这种订酒店.火车票和机票等工具性质非常强的服务,非常符合张小 ...

  6. 携程App的网络性能优化实践

    首先介绍一下携程App的网络服务架构.由于携程业务众多,开发资源导致无法全部使用Native来实现业务逻辑,因此有相当一部分频道基于Hybrid实现.网络通讯属于基础&业务框架层中基础设施的一 ...

  7. 实现携程X分钟前有人预定功能

    实现携程X分钟前有人预定功能 原理:利用cookie与计时器两部分: 首先,进入页面,x会被随机数赋值,赋值后x会一分钟加1,直到加到60,再从1开始累加. 页面是否相同是根据页面的url后的id值判 ...

  8. 今天携程出事了:让我们来学习下http的响应码

    就在今天,2015年5月28日,中国最大的旅游机票预订网站--携程网粗大事了.据传携程网的数据库被人物理删除了,而容灾备份的数据又无法正常使用,服务器全面遭受瘫痪.每小时给携程带来的损失约100万美元 ...

  9. 携程Ctrip DAL的学习 2

    携程Ctrip DAL的学习 2 本人net开发菜鸟,原理请自行看github的官网源码. 我这里是简单的使用(helloworld的水平). 代码生成器的使用 详见 官网使用说明 注意的地方: 1 ...

随机推荐

  1. Oracle 10g AND Oracle 11g手工建库案例--Oracle 10g

    Oracle 10g AND Oracle 11g手工建库案例--Oracle 10g 系统环境: 操作系统: RedHat EL6 Oracle:  Oracle 10g and Oracle 11 ...

  2. [ GIT ] GIT tip : A simple .gitconfig file

    reference : http://fle.github.io/git-tip-a-simple-gitconfig-file.html As several friends have asked ...

  3. Gunicorn+Flask中重复启动后台线程问题

    假设程序如下: if __name__ == '__main__': t = Thread(target=test) t.start() app.run(host='0.0.0.0',port=808 ...

  4. 常用sql001_partition by 以及 row_number()和 dense_rank()和rank()区别

    create table student ( sid varchar2(10), --学号 sname varchar2(10), --姓名 classid varchar2(10), --班级号 s ...

  5. QtWebKit

    WekKit官网:http://www.webkit.org/ QtWebKit官网及安装:http://trac.webkit.org/wiki/QtWebKit#GettingInvolved Q ...

  6. go语言之进阶篇面向对象编程

    1.面向对象编程 对于面向对象编程的支持Go 语言设计得非常简洁而优雅.因为, Go语言并没有沿袭传统面向对象编程中的诸多概念,比如继承(不支持继承,尽管匿名字段的内存布局和行为类似继承,但它并不是继 ...

  7. iOS开发-Get请求,Post请求,同步请求和异步请求

    标题中的Get和Post是请求的两种方式,同步和异步属于实现的方法,Get方式有同步和异步两种方法,Post同理也有两种.稍微有点Web知识的,对Get和Post应该不会陌生,常说的请求处理响应,基本 ...

  8. Balanced Binary Tree leetcode java

    题目: Given a binary tree, determine if it is height-balanced. For this problem, a height-balanced bin ...

  9. 【Handler】Looper 原理 详解 示例 总结

    核心知识点 1.相关名词 UI线程:就是我们的主线程,系统在创建UI线程的时候会初始化一个Looper对象,同时也会创建一个与其关联的MessageQueue Handler:作用就是发送与处理信息, ...

  10. Jquery 获取第一个子元素

    <ul>  <li>John</li>  <li>Karl</li>  <li>Brandon</li></u ...