题意:

  给出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. 修改linux共享内存大小

    这是实际linux系统显示的实际数据: beijibing@bjb-desktop:/proc/sys/kernel$ cat shmmax  33554432 beijibing@bjb-deskt ...

  2. [有向图的强连通分量][Tarjan算法]

    https://www.byvoid.com/blog/scc-tarjan 主要思想 Tarjan算法是基于对图深度优先搜索的算法,每个强连通分量为搜索树中的一棵子树.搜索时,把当前搜索树中未处理的 ...

  3. ECSHOP返回顶部的代码 纯CSS超简单

    在themes/模板文件夹/library/page_footer.lbi 文件的最末尾加上下面的一段代码 <style>.to_top{width:20px;height:59px;ri ...

  4. mac版gif格式录屏工具下载和使用

    下载链接: http://pan.baidu.com/s/1geeRmtd 密码: rstv ps:如果失效可以联系发邮件至chenruichn@163.com联系我 [以下教程为转载]本帖最后由 S ...

  5. 常用几个UITableView,UICollectionView  UIScrollView关键点

    UITableView   UITableView 在Ios中大量使用,我们对UITableview中的有关知识进行整理     UITAbleView是表视图控制器    1 UITableView ...

  6. 关于javascript 数组的正态分布排序的一道面试题

    最近几天顶着上海40°的凉爽天气找工作,心里是开心的不要不要的,每次面试都是要坐那里出半天汗才能回过神来,感觉到了这个世界对我深深的爱意,言归正传,面试过程中碰到了几次笔试,其中有这么一道题,由于实际 ...

  7. zz[C++]合理的设计和使用消息队列

    http://www.cnblogs.com/egmkang/archive/2012/11/17/2763295.html 生产者消费者问题,是永远的经典. 单纯让多个线程去竞争,占有资源然后处理, ...

  8. Linux下MySql出现#1036 – Table ‘ ‘ is read only 错误解决方法

    本文为转载内容,感谢原作者.原文出自:http://zhaoxiaoru39.blog.163.com/blog/static/609552192012511104730115/ 我遇到的问题是:在n ...

  9. onbeforepaste

    onbeforepaste事件用法 onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').rep ...

  10. Spring的注解学习(ioc,aop结合)

    首先引入jar包 aspectjrt.jar aspectjweaver.jar 1.dao package com.dao; public interface OkpDao { public voi ...