- /* Name: City Horizon
- Date: 31-07-08 17:06
- Description: 离散化+二分查找 用了个链表
- */
- #include<stdio.h>
- #include<stdlib.h>
- #include<algorithm>
- #define pr printf
- __int64 x[100003];
- int b[100003];
- struct stt{
- int s,e,h;
- }a[50003];
- int c[100003];
- int cmp(const void * a,const void * b){
- return (int)(*(__int64 *)a-*(__int64 *)b);
- }
- int cmp2(const void * b,const void *a){
- return ((stt *)a)->h-((stt *)b)->h;
- }
- //二分查找排序数组,返回匹配元素位置
- int search_bin(__int64 *t,__int64 k,int start,int end)
- { // t为待查数组,k为匹配元素,start数组起始位置,end数组结束位置
- int low=start,high=end-1,mid;
- while (low<=high)
- {
- mid=(low+high)/2;
- if (k==t[mid]) return mid;
- else if (k<t[mid]) high=mid-1;
- else low=mid+1;
- }
- return -1;
- }
- int main(){
- int i,n,s,e,h,k;
- scanf("%d",&n);
- FILE *pp=fopen("temp.txt","w");
- for(i=0,k=0;i<n;i++,k++)
- {
- scanf("%d%d%d",&a[i].s,&a[i].e,&a[i].h);
- x[k]=a[i].s,x[++k]=a[i].e;
- }
- for(i=0;i<2*n;i++)c[i]=0;
- qsort(x,2*n,sizeof(__int64),cmp);//将x坐标离散
- qsort(a,n,sizeof(a[1]),cmp2);//按高度排序
- __int64 sum=0,len;
- int x1,j,x2,next;
- for(i=0;i<2*n-1;i++)
- {
- b[i]=i+1;//初始化链表
- }
- for(i=0;i<n;i++)
- {
- s=a[i].s,e=a[i].e,h=a[i].h;
- x1=search_bin(x,s,0,2*n);
- x2=search_bin(x,e,0,2*n);
- len=0;
- for(j=x1;j<x2 && j<2*n;j=next)//链表是关键,保证了每个点只会便利一次
- {
- if(c[j]==0)//没有访问过的点
- {
- c[j]=1;
- len+=(x[j+1]-x[j]);
- next=b[j];
- b[j]=x2;
- }else next=b[j];//被覆盖的点根据链表找到下一点索引
- }
- sum+=len*h;
- }
- pr("%I64d/n",sum);
- scanf("%d",&i);
- }
- /*
- 4
- 1 15 1
- 3 7 4
- 3 12 5
- 5 8 3
- */
相关推荐
【Web服务器运维】基于Nginx与Keepalived的高可用负载均衡系统部署:实现故障自动切换与虚拟IP管理
内容概要:本文详细介绍了如何通过Nginx与Keepalived实现高可用的负载均衡架构。首先讲解了Nginx的安装部署流程,包括依赖环境的准备、源码解压编译、启动及配置重载;接着介绍了Keepalived的安装步骤及其服务管理方式;重点在于通过配置Keepalived的主备节点(MASTER/BACKUP),结合VRRP协议和虚拟IP(VIP)实现故障自动切换,并通过自定义脚本nginx_check.sh实时检测Nginx运行状态,确保服务高可用;最后补充了在云环境中因组播限制导致心跳不稳定时,应改用单播(unicast)方式进行通信的解决方案。; 适合人群:具备Linux系统操作基础、熟悉网络基础知识,从事运维、DevOps或Web服务部署的技术人员,尤其是工作1-3年的工程师。; 使用场景及目标:①搭建高可用的Web负载均衡系统,避免单点故障;②掌握Nginx与Keepalived协同工作的原理与实战配置方法;③应用于生产环境中提升服务稳定性与容灾能力。; 阅读建议:学习时应结合实验环境动手操作,重点关注keepalived.conf配置差异与nginx_check.sh脚本逻辑,理解VRRP机制及单播替代组播的实际应用场景,注意根据实际网络环境调整IP与网卡参数。
pku 3277 City Horizon(离散化+线段树)
因为坐标范围太大,所以将输入的坐标离散化,排序后用下标来代替,线段树插入操作的时候用binary_search来查找坐标对应的下标。因为height大的影子总是会覆盖height小的影子,所以将输入按height排序后再插入线段树,会省掉很多麻烦。 #include #include using namespace std;#define MaxBuilding 4000
三电平Buck直流变换器双闭环、单闭环、开环仿真【附参考文献】(Simulink仿真实现)
内容概要:本文档系统介绍了三电平Buck直流变换器在Simulink环境下的开环、单闭环与双闭环控制系统的建模仿真方法,涵盖系统建模、控制策略设计及动态性能对比分析。通过构建不同控制结构,深入探讨电压调节精度、系统响应速度、抗干扰能力及稳定性差异,重点剖析双闭环控制中电压外环与电流内环的协同作用机制,揭示其在抑制输出纹波、提升负载适应性方面的优势,帮助读者掌握多电平DC-DC变换器的核心控制原理与工程实现技术;文档还提供了详实的仿真参数设置与参考文献,便于理论验证与实践复现。; 适合人群:电力电子、自动化、电气工程及其相关专业的高校本科生、研究生、科研人员,以及从事电源系统、新能源变换器开发的工程技术人员。; 使用场景及目标:①作为高校电力电子课程的教学案例,辅助学生理解Buck变换器多层次控制策略的设计思路与性能差异;②为科研项目中高效直流变换系统的仿真研究提供可复用的技术模板;③指导工业界在高精度电源设计中优化控制器参数,提升系统动态响应与稳定性。; 阅读建议:建议结合Simulink仿真模型同步操作,对照文档逐步搭建各控制结构,重点观察不同闭环配置下输出电压的瞬态与稳态表现,深入理解PI参数整定、环路耦合影响及系统频域特性的关联性,从而全面提升对电力电子系统控制设计的综合把握能力。
pku3277 City Horizon
http://poj.org/problem?id=3277 线段树,离散化,成段更新 1 #include <stdio.h> 2 #include <stdlib.h> 3 4 #define lson l, m, root<<1 5 #define rson m+1, r, root<<1|1 6 ...
国央企创新负责人如何实现科技成果的全流程数字化管理?.docx
科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。
Unity 2D精灵点击交互实现:从BoxCollider 2D到Event Trigger的完整指南
本文提供了Unity 2D精灵点击交互的完整实现指南。通过详细拆解BoxCollider 2D与Event Trigger两大核心组件的协同工作原理,手把手教你为Sprite Renderer添加点击、悬停等事件响应。文章包含从基础配置到进阶优化、性能调试的实战步骤,帮助开发者高效实现游戏世界内的对象交互,是Unity 2D开发的实用教程。
数学类小结
pku 1150 The Last Non-zero Digit 和计算排列数末尾有多少个零有些类似,把2,5因子都拿出来,剩下的数的最后一个数字只有1,3,7,9。只有各位上的数字才会影响最后一个非零数字。统计可以用递归来统计,求出1~n中因子2,5的个数,以及3,7,9结尾的数和去掉2,5后新的到的数中3,7,9结尾的数。结果就是 2^(dig[2]-dig[5])*3^(dig[3])*
高效管理Node.js版本与pnpm安装全攻略
本文提供了一套高效管理Node.js版本与pnpm安装的完整攻略。针对开发中常见的版本冲突和磁盘空间问题,详细介绍了如何在Windows和Ubuntu系统上安装并配置pnpm,并重点讲解了如何利用其内置的`pnpm env`命令进行Node.js版本管理,实现一站式环境管理,提升开发效率。
pku 3533 Light Switching Game(nim 积)
第一个nim积题目。nim积与nim和够成一个正整数域上的群。nim积用⊗表示,nim和用⊕表示。和乘法类似: x⊗1=1⊗x=x y⊗0=0 (x⊗y)⊗z=x⊗(y⊗z)⊕是异或运算。⊗的运算法则定义为: 1.The nimber product of distinct Fermat 2-powers (numbers of the form ) is equal to
利用 Openocd 和 FT2232H 实现 ARMv8(Coretex-A53)高效调试方案
本文详细介绍了如何利用开源工具OpenOCD与高性能USB转接芯片FT2232H,构建一套针对ARMv8架构(如Cortex-A53)的高效、低成本调试方案。内容涵盖从环境搭建、驱动配置、核心调试架构解析到实战问题排查的全过程,帮助开发者实现对多核处理器的透明、可控调试,是嵌入式Linux及底层开发的实用指南。
PCIe信号眼图总是不开?手把手教你调CTLE和DFE参数(附实测波形对比)
本文详细解析了PCIe信号眼图调试中CTLE和DFE参数的优化方法,帮助硬件工程师解决眼图无法张开的问题。通过实际案例和步骤指导,介绍了如何调整CTLE直流增益和DFE抽头系数,提升接收端均衡器性能,确保信号完整性。
pku 1149 PIGS(最大流)
这题的网络是这样建的。设一个源点s,s将于客户节点相连,连接方式为对考虑一个猪圈是第一次被光顾s将于这位顾客之间有一条流容量是该猪圈的猪数,若这个猪圈被人光顾过,则在这个顾客和前一个顾客间有一条无限流量的通道。依次下去完成顾客节点和s,顾客节点和顾客阶段间的网络。最后是顾客和汇点的网络,每个顾客和汇点t都有条通道,容量是顾客希望购买的数量。 /*pku1149 Name:
【openGauss实战1】openGauss基于CentOS8的部署
基于openGauss数据库在CentOS8上的安装实践。
基于频繁增长树(FP-树)的频繁项集挖掘算法实现
花了两天的时间终于完成了。一开始照着论文实现了一下,总是感觉怪怪的,结果果然不对,论文里描述看上去都差不多,就是抓不住要点,最后还是看懂了原版paper,才实现了。感觉FP-Tree的实现并不难,就是一些链表指来指去,倒是觉得FP_growth函数不好写,这个函数主要是在一棵大FP-Tree上操作,来生产小FP-Tree树,最终得到只有一个枝的树,就能打印组合了。递归是肯定的。另外,第一次用
SAP PI 系统复制,不只是把数据库拷过去,而是一次集成拓扑的重新落位
文章摘要:SAP PI/PO系统刷新生产数据到测试环境时,标准系统复制无法自动处理集成中枢特有的环境绑定问题。系统复制后,PI仍保留生产环境的连接配置,可能导致测试系统向生产环境发送消息。SAP提供的CTC模板可自动化部分后续配置,但无法替代人工对接口风险的全面评估。关键在于系统复制前绘制接口风险地图,复制后进行分层次验证:禁用生产连接、重定向测试接口、复核安全配置,并通过代表性链路测试确保系统行为符合预期。这需要结合SAP标准流程与业务语义判断,形成完整的治理闭环。
【麒麟系统】Rsync文件复制与同步工具
本文摘要: Rsync是一款Linux/Unix系统标配的高效文件同步工具,支持增量传输、SSH加密、断点续传等核心功能,相比SCP具有显著优势。文章详细解析了Rsync的五种标准语法格式和常用参数组合,重点介绍了本地同步、远程SSH同步(推送/拉取)的实操方法,并提供了密钥免密登录配置方案。针对企业运维场景,还讲解了文件过滤、镜像同步(--delete)、迁移同步(--remove-source-files)、空运行预校验(--dry-run)等高级功能,以及带宽限速等优化技巧,帮助用户安全高效地完成各类
计算几何小结
pku 1039 Pipe 这题的最优解在于最优直线至少会过两个拐点,枚举拐点对。pku 1092 Farmland 总是是过了。这题有点像找凸包,不同的是凸包是以最左下点作为参考。首先对每个顶点的邻接点排序(按极角),以源点和顶点为参照边,从小到大排序其邻接点。通过排序后各顶点的邻接点按逆时针排列。下一步就是去找所以的封闭多边形,按着从一条边以该边为轴逆时针旋转到邻近的边,由于事先对邻
【深度学习新浪潮】气候预测模型的研发进展一览(2025年版)
模型类型核心优势适用场景不足ARIMA(统计模型)简单高效、可解释性强短期单变量预测非线性、长时依赖建模差随机森林(机器学习)多特征融合、抗噪声中短期多因素预测空间相关性、时序趋势捕捉弱LSTM(深度学习)长时依赖建模、端到端中长期时序预测物理一致性差、数据需求量大物理知情AI物理规律约束、高可靠性极端天气、长期气候变化模型复杂、计算成本高。
pku 1737 Connected Graph(组合数学,高精度)
package pku1737;import java.math.BigInteger;import java.util.*;public class Main { static BigInteger f[]; public static void main(String[] args) { int n; Scanner
锂电池充电器电路设计 里面有电路
锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。
ET2012新版免狗免安装绿色软件
ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,
pku 2348 Euclid's Game
这题的意思是说:给两个数,两个人轮流减少他们,不能再减的那个人输。每次只能在这两数中选小的(倍数)减大的.可以看出这类题不是NIM类题,因为每次减少的数目是不能确定下来的。先看些简单的情况。假设这两个数是a>b. 1。当a%b==0时,先行者胜,即(N-position). 2。当a%b!=0时, 设a=b*q+r。(q>1) 可以看出先者可以做出让a减b,2b,3b..qb这q种选择。在这些
pscad IEEE标准系统搭建说明
pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。
hdu 2513 cake clicing(切蛋糕)
这题是用四维过的。dp[i][j][h][w],i,j表示蛋糕的左上角,h,w代表高和宽。在dp前还要统计一下每个子蛋糕方块中樱桃的数目。状态转移方程是这样的(考虑行,列两种切法) 在[i][j][h][w]这块蛋糕中没有樱桃,则 dp[i][j][h][w]=0 否则 dp[i][j][h][w]=min{ dp[i][j][h][w-w0]+dp[i][
Camera2Demo
在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作
pku2352 Stars(线段树实现)
第一个线段树。。。线段树真是灵活多变啊。。。看来要好好掌握还要多加练习。。/*pku2352 Name: Stars Date: 02-08-08 16:41 Description: 统计问题,线段树 */#include#define MAX 72010#define pr printf// FILE * pp=fopen("temp.txt
pku1177 Picture(矩形外围总周长)
这题我先是用离散化做了下,发现可以过,时间当然要久点。在离散化中有这样一个概念:超元线段。这些线段将平面分割成大小不相当(或相等)的矩形,这些矩形的边要么是给定矩形的边的一部份要么完全和给定矩形无关。我们只有按给定矩形的顶点的x坐标,y坐标分别画出垂直x轴,y轴的直线,用这些直线来分割平面,它们相交得到的线段就是超元线段。只有统计出超元线段出现的次数矩形的总周长就可以算到了。/*pku1177
pku2406 Power Strings(kmp字符匹配,next数组)
重看了下数据结构,发现有些知识还没有吃透。kmp算法就是一个。kmp的关键就是next数组,求出了next数组后就和O(n*m)的算法类似。求next数组有dp的思想,假设知道next[i]=k,现在要求next[i+1], next[i]+1 ch[i]=ch[i+1] next[i+1]= next[k]+1 沿着前面的next数组找到一个k
动态规划小结
pku 3132 Sum of Different Primes(素数和) 一个数被k不同的素数相加,共有多少中方法。dp[i][k][j],表示数i由k个不同的素数相加,j表示第几个素数。dp[i][k][j]=sigma(dp[i-prime[j]][k-1][h]) 1pku 3291 Cousins(贪心,LCS) 求出两个字符串的最长公共子序列,题目要求的是构造出两个串的最长公
1074



被折叠的 条评论
为什么被折叠?



