【gzoj1564】水塔水位【离散化】

2023-10-25 00:20
文章标签 水位 离散 水塔 gzoj1564

本文主要是介绍【gzoj1564】水塔水位【离散化】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题意

给出一个物理上的连通器(如图),问加入一些水之后,水位的高度是多少(地面高度为0)。
在这里插入图片描述

分析

一开始的做法是n方的暴力,也就是暴力判断有没有高度区间涵盖。然后T掉一个点,疯狂卡常卡时间,结果感觉超时挺多的。
code:

for(register int i=1;i<=2*n-1;i++)
{int s=0,v=0;for(register int j=1;j<=n;j++){if(b[j]<=a[i]&&b[j]+h[j]>=a[i+1]){s+=w[j]*d[j];v+=w[j]*d[j]*(a[i+1]-a[i]);}}if(v<tot) tot-=v,ans=a[i+1];else if(v>tot){double t1=tot,t2=s;ans+=t1/t2;break;}else if(v==tot){ans=a[i+1];break;} 
}

然后老师走过来一脸鄙视:你这个怎么写的这么啰嗦,直接扫描线一样扫过去就行啦,你判断一下这个是上底还是下底再对面积做处理啊。

就有了现在的做法,记录上底面还是下底面,实时计算面积然后乘上当前枚举区间的高度,判断是否装满就行,复杂度 O ( n ) O(n) O(n)

上代码

#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;struct node
{int s,ty,w,d;
}a[100010];int n,tot,b[50010],h[50010],w[50010],d[50010];
long long amount;
double ans;int cmp(node l,node r)
{return l.s<r.s;
}int main()
{scanf("%d",&n);for(register int i=1;i<=n;i++){scanf("%d%d%d%d",&b[i],&h[i],&a[i].w,&a[i].d);amount+=h[i]*a[i].w*a[i].d;a[i].s=b[i];a[i].ty=0;a[i+n].s=b[i]+h[i];a[i+n].ty=1;a[i+n].w=a[i].w;a[i+n].d=a[i].d;}scanf("%d",&tot);if(amount<tot){printf("OVERFLOW");return 0;}sort(a+1,a+2*n+1,cmp);int s=0,v=0;for(int i=1;i<=2*n-1;i++){if(a[i].ty==0) s+=a[i].w*a[i].d;else s-=a[i].w*a[i].d;v=s*(a[i+1].s-a[i].s);if(v<tot) tot-=v,ans=a[i+1].s;else if(v>tot){double t1=tot,t2=s;ans+=t1/t2;break;}else if(v==tot){ans=a[i+1].s;break;} }printf("%.2lf",ans);return 0;
}

这篇关于【gzoj1564】水塔水位【离散化】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/278724

相关文章

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

河道水位流量监测系统解决方案

一、概述 中国是世界上河流最多的国家之一。中国有许多源远流长的大江大河。其中流域面积超过1000平方千米的河流就有2221条。常年水面面积1平方公里及以上天然湖泊2865个,湖泊水面总面积7.80万平方公里。其中,淡水湖1594个,咸水湖945个,盐湖166个,其他160个。随着经济社会快速发展,中国河湖管理保护出现了一些新问题,如河道干涸湖泊萎缩,水环境状况恶化,河湖功能退化等,对保障水安全带来

Kafka【十一】数据一致性与高水位(HW :High Watermark)机制

【1】数据一致性 Kafka的设计目标是:高吞吐、高并发、高性能。为了做到以上三点,它必须设计成分布式的,多台机器可以同时提供读写,并且需要为数据的存储做冗余备份。 图中的主题有3个分区,每个分区有3个副本,这样数据可以冗余存储,提高了数据的可用性。并且3个副本有两种角色,Leader和Follower,Follower副本会同步Leader副本的数据。 一旦Leader副本挂了,Follo

处理特征向量和离散特征

在最新的腾讯的社交广告大赛中,数据如下,如何处理这种向量的特征 比如intersets1,interests2.... LBS,950,age,4,carrier,1,consumptionAbility,2,ct,3 1,education,7,gender,2,interest1,93 70 77 86 109 47 75 69 45 8 29 49 83 6 46 36

特征离散和特征选择

连续特征的离散化:在什么情况下将连续的特征离散化之后可以获得更好的效果? Q:CTR预估,发现CTR预估一般都是用LR,而且特征都是离散的。为什么一定要用离散特征呢?这样做的好处在哪里? A: 在工业界,很少直接将连续值作为逻辑回归模型的特征输入,而是将连续特征离散化为一系列0、1特征交给逻辑回归模型,这样做的优势有以下几点: 0、 离散特征的增加和减少都很容易,易于模型的快速迭代。(离散

【HDU】3729 I'm Telling the Truth 离散+最大流

传送门:【HDU】3729 I'm Telling the Truth 题目分析:我看这么大的数据范围,如果普通二分肯定要超时的啊。。。然后就敲了一个离散化+最大流了。。。 但是我网上看他们的题解,都是裸裸的开一个100万的数组啊!!!还比我离散的网络流还快啊啊啊!!于是我就测一次给的区间有多大(如果超出一定范围就拿一个变量除以0让报RE),第一次10000没事,然后1000。。还是没事

【HDU】5958 New Signal Decomposition【离散对数下的FFT】

题目链接:【HDU】5958 New Signal Decomposition 在此先感谢小q对我的指导,没有q老师的帮助,估计永远也做不出来了。 首先我们考虑对这个式子做离散对数。令 g g为pp的某个原根,则有: bi=∑p−1j=0aj⋅r(i,j) \quad b_i=\sum_{j=0}^{p-1}a_j\cdot r(i,j) bi=∑p−1j=0aj⋅2sin32πi⋅j

【自动驾驶】控制算法(七)离散规划轨迹的误差计算

写在前面: 🌟 欢迎光临 清流君 的博客小天地,这里是我分享技术与心得的温馨角落。📝 个人主页:清流君_CSDN博客,期待与您一同探索 移动机器人 领域的无限可能。 🔍 本文系 清流君 原创之作,荣幸在CSDN首发🐒 若您觉得内容有价值,还请评论告知一声,以便更多人受益。 转载请注明出处,尊重原创,从我做起。 👍 点赞、评论、收藏,三连走一波,让我们一起养成好习惯😜 在这里,您将

MATLAB分析图像的离散余弦变换(DCT)

1. MATLAB的介绍以及所需函数的说明:  1.1 MATLAB  MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。是由美国mathworks 公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设

《数字信号处理》学习04-离散时间系统中的线性时不变系统

目录 一,系统及离散时间系统   二,离散时间系统中的线性时不变系统 1,线性系统  1) 可加性  2) 比例性(齐次性) 3)叠加原理(叠加性质)  2,时不变系统(移不变系统) 通过前几篇文章的学习,此时我对序列的相关概念和运算已经有所掌握,接下来我将开始学习新的概念“离散时间系统中的线性时不变系统”, 一,系统及离散时间系统  首先需要知道系统的概念,在《信