题意:

  给出l和r,然后从l坐标到r坐标每隔两个位置有一个档板,给出挡板的高度,然后想(-1, 1)中间加水,问什么时候会溢出。

分析:

  两边先找到距离(-1,1)最近的最大值L和R。接着比较两个L和R的大小,相等的话就可以比较(-l,L的下标)和(R的下标,r)两块的大小,所以这块的时间要乘2。如果两边不一般高的话,找到高的一边第一个比另一边最高的那个高的p,然后比较a = ( p,Max(R,L)的下标)和b = (Min(R,L)的下标,end)的大小,然后决定是2*b还是a+b。细节各种烦人。

代码:

  

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
using namespace std;
const int maxn=1005;
int l,r,x[maxn],y[maxn];
int L,R,idl,idr;
int pai(int a,int b)
{
if(a<=b)
return 2*a;
else
return a+b;
}
int solve()
{
int i;
l=(-l)/2;
r=r/2;
if(R==L)
{
int k=0,t=0;
int tmp=x[l];
for(i=l;i>idl;i--)
{
k+=tmp;
tmp=max(tmp,x[i-1]);
}
tmp=y[r];
for(i=r;i>idr;i--)
{
t+=tmp;
tmp=max(tmp,y[i-1]);
}
return (idl+idr+1)*R*2 +min(k,t)*2*2;
}
else
{
int T=min(R,L);
int p,q,k,t;
p=q=k=t=0;
while(p<l&&x[p]<T)
p++;
while(q<r&&y[q]<T)
q++;
if(R>L)
{
int tmp=y[q];
for(i=q;y[i]<=L;i++)
{
k+=tmp;
tmp=max(tmp,x[i-1]);
}
tmp=x[l];
for(i=l;i>p;i--)
{
t+=tmp;
tmp=max(tmp,x[i-1]);
}
}
else
{
int tmp=x[q];
for(i=p;x[i]<=R;i++)
{
k+=tmp;
tmp=max(tmp,x[i+1]);
}
tmp=y[r];
for(i=r;i>q;i--)
{
t+=tmp;
tmp=max(tmp,y[i-1]);
}
}
int ans=t>k?t+k:2*t;
return ans*2+(p+q+1)*T*2;
}
}
int main()
{
while(scanf("%d%d",&l,&r)!=EOF&&l&&r)
{
int i;
R=L=0;
for(i=l;i<=r;i+=2)
{
if(i<0)
{
scanf("%d",&x[(-i)/2]);
if(L<=x[(-i)/2])
{
L=x[(-i)/2];
idl=(-i)/2;
}
}
else
{
scanf("%d", &y[i/2]);
if(R<y[i/2])
{
R=y[i/2];
idr=i/2;
}
}
}
printf("%d\n",solve());
}
}
 

uva 10366 Faucet Flow的更多相关文章

  1. UVA 10594 Data Flow

    无向图费用流 还有一段话摘自别人博客 这道题是无向图的最小费用最大流问题,看清楚是无向图的.这么说无向图和有向图的费用流问题有什么区别呢?主要是反向边的问题.首先我们说一下最大流问题中的反向边,我们需 ...

  2. uva10366 Faucet Flow

    每次找到两边离中心最高的板,如果等,再找外围的最高版...画图便于理解两边先找到距离(-1,1)最近的最大值L和R,因为可能存在多个最高的挡板.接着比较两个L和R的大小,相等的话分别分析两边,取最小值 ...

  3. 紫书 习题 8-24 UVa 10366 (构造法)

    又是一道非常复杂的构造法-- #include<cstdio> #include<algorithm> #define REP(i, a, b) for(int i = (a) ...

  4. 一位学长的ACM总结(感触颇深)

    发信人: fennec (fennec), 信区: Algorithm 标 题: acm 总结 by fennec 发信站: 吉林大学牡丹园站 (Wed Dec 8 16:27:55 2004) AC ...

  5. HOJ题目分类

    各种杂题,水题,模拟,包括简单数论. 1001 A+B 1002 A+B+C 1009 Fat Cat 1010 The Angle 1011 Unix ls 1012 Decoding Task 1 ...

  6. UVA 10594-Date Flow(无向图的最小费用网络流+题目给的数据有误)

    题意:给一个有N个点的无向图,要求从1向N传送一定的数据,每条边的容量是一定的,如果能做到,输出最小的费用,否则输出Impossible. 解析:由于是无向图,所以每个有连接的两个点要建4条边,分别是 ...

  7. UVA 820 --- POJ 1273 最大流

    找了好久这两个的区别...UVA820 WA了 好多次.不过以后就做模板了,可以求任意两点之间的最大流. UVA 是无向图,因此可能有重边,POJ 1273是有向图,而且是单源点求最大流,因此改模板的 ...

  8. [题解]UVa 11082 Matrix Decompressing

    开始眨眼一看怎么也不像是网络流的一道题,再怎么看也觉得像是搜索.不过虽然这道题数据范围很小,但也不至于搜索也是可以随随便便就可以过的.(不过这道题应该是special judge,因为一题可以多解而且 ...

  9. UVA 10779 (最大流)

    题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=33631 题目大意:Bob有一些贴纸,他可以和别人交换,他可以把自己 ...

随机推荐

  1. Android 消息处理源代码分析(1)

    Android 消息处理源代码分析(1) 在Android中,通常被使用的消息队列的代码在文件夹\sources\android-22\android\os下,涉及到下面几个类文件 Handler.j ...

  2. CTSC1999补丁VS错误题解

    题目描写叙述 Description 错误就是人们所说的Bug.用户在使用软件时总是希望其错误越少越好.最好是没有错误的.可是推出一个没有错误的软件差点儿不可能,所以非常多软件公司都在疯狂地发放补丁( ...

  3. CentOS6.5下解压文件.tar.gz .war .zip

    解压.tar.gz文件: tar -zxvf web.tar.gz tar不支付解压文件到指定的文件夹! 解压.war .zip文件到指定文件夹: unzip web.war -d webapps/R ...

  4. sql 中的时间处理问题

    select GETDATE() as '当前日期',DateName(year,GetDate()) as '年',DateName(month,GetDate()) as '月',DateName ...

  5. SQL日期格式转换(经常用又经常忘记的东西)转载自http://www.cnblogs.com/wangyuelang0526/archive/2012/06/06/2538224.html

    Select CONVERT(varchar(100), GETDATE(), 8):14:53:14Select CONVERT(varchar(100), GETDATE(), 9): 06 6 ...

  6. linux安装perl模块

    查询perl CPAN模块   shell>perl -MCPAN -e shell cpan>install module_name   手动安装perl CPAN模块 从 CPAN(h ...

  7. 设置启动页面-Launch Image

    一.添加启动图 二.拖入相应尺寸的图片 图片必须是png格式的.不同机型需要的图片的尺寸: iPhone4.4s-@2x 3.5寸 640*960 iPhone5.5s.5c-@2x 4.0寸 640 ...

  8. hadoop压缩配置

    为何要使用压缩,压缩可以是文件的大小减小很多,节省空间:另外压缩后的文件在传输时更节省带宽. 所需软件: 1)lzo 2)hadoop-lzo 3)maven 安装编译: 1)lzo wget htt ...

  9. win7+IE11 中开发工具报错occurredJSLugin.3005解决办法

    系统环境 win7+IE11 报错描述: Exception in window.onload: Error: An error has ocurredJSPlugin.3005 Stack Trac ...

  10. 国外程序员收集整理的PHP资源大全

    依赖管理 依赖和包管理库 Composer/ Packagist:一个包和依赖管理器 Composer Installers:一个多框架Composer库安装器 Pickle:一个PHP扩展安装器 其 ...