携程员工运动会场地问题

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. tomcat完整配置

    规划: 网站网页目录:/web/www 域名:www.test1.com 论坛网页目录:/web/bbs URL:bbs.test1.com/bbs 网站管理程序:$CATALINA_HOME/wab ...

  2. 经典数独游戏+数独求解器—纯C语言实现

    "心常乐数独小游戏"(下面简称"本软件")是一款windows平台下的数独游戏软件. 本软件是开源.免费软件. 本软件使用纯C语言编写,MinGW编译,NSIS ...

  3. 收藏的iOS技术站点汇总(持续更新ing)

    大牛博客 objc.io PS:经典,内容深而广 objc中国 NSHipster PS:非常多小细节 NSHipster 中文版 唐巧的技术博客 PS:LZ是唐巧的脑残粉- OneV's Den 王 ...

  4. HTTP参数CONNETCTION_TIMEOUT和SO_TIMEOUT区别

    在开发中经常碰到这两个参数,但是之前对它们的真正含义一直比较模糊,今天通过调试程序并且结合官方文档,了解了两者的含义与区别. 参数的定义直接去看官方的文档(httpcore-4.3) org.apac ...

  5. OpenCV学习(40) 人脸识别(4)

    在人脸识别模式类中,还实现了一种基于LBP直方图的人脸识别方法.LBP图的原理参照:http://www.cnblogs.com/mikewolf2002/p/3438698.html       在 ...

  6. iOS开发-多线程之GCD(Grand Central Dispatch)

    Grand Central Dispatch(GCD)是一个强有力的方式取执行多线程任务,不管你在回调的时候是异步或者同步的,可以优化应用程序支持多核心处理器和其他的对称多处理系统的系统.开发使用的过 ...

  7. jQuery练手:仿新浪微博图片文字列表淡进淡出上下滚动效果

    1.效果及功能说明 仿新浪微博图片文字列表上下淡进淡出间歇上下滚动 2.实现原理 首先要设定div内只能显示4个图片那么多出来的图片会自动隐藏然后在给图片添加一个动画的事件让他们可以滚动的播放出来上下 ...

  8. JQuery模仿淘宝天猫魔盒抢购页面倒计时效果

    1.效果及功能说明 通过对时间的控制来告诉用户一个活动还剩多少时间,精确到秒.2.实现原理 首先定义活动的截至的时间,要重年份精确到毫秒,在获得当前的年份到秒钟,在用截至时间,减去现在的时间,剩下的还 ...

  9. [转]VirtualBox 修改UUID实现虚拟硬盘复制

    -------------------------------------------------------------------- 原文:https://www.cnblogs.com/find ...

  10. json数据的用法

    json数据在后台跟前台传递数据使用是非常多站点开发者再熟悉只是的数据格式了,可是呢在这之前肯定有不少人还不知道json数据是怎么使用的, {"name":"01&quo ...