当前位置: 首页 > news >正文

csp信奥赛C++高频考点专项训练之前缀和差分 --【一维差分】:[USACO07JAN] Tallest Cow S

csp信奥赛C++高频考点专项训练之前缀和&差分 --【一维差分】:[USACO07JAN] Tallest Cow S

题目描述

FJ 的N NN头奶牛(1 ≤ N ≤ 10 , 000 1 \le N \le 10,0001N10,000)按编号1 11N NN排成一行。每头奶牛有一个正整数表示的身高(这是个秘密)。现在你只知道最高奶牛的身高H HH1 ≤ H ≤ 1 , 000 , 000 1 \le H \le 1,000,0001H1,000,000),以及它的编号I II

FJ 提供了R RR条信息(0 ≤ R ≤ 10 , 000 0 \le R \le 10,0000R10,000),每条信息形如“奶牛 17 能看到奶牛 34”。这意味着奶牛 34 的身高不小于奶牛 17 的身高,并且编号在 17 和 34 之间的所有奶牛,其身高都严格小于奶牛 17 的身高。

现在请你计算出对于每一头奶牛(编号从1 11N NN),在所有给定信息都成立的前提下,它可能具有的最大身高。

题目保证一定存在满足条件的解。

输入格式

1 11行:四个用空格分隔的整数:N NNI IIH HHR RR

2 22到第R + 1 R+1R+1行:每行两个不同的整数A AAB BB1 ≤ A 1 \le A1A,B ≤ N B \le NBN),表示奶牛A AA能看到奶牛B BB

输出格式

N NN行,第i ii行输出奶牛i ii的最大可能身高。

输入输出样例 1
输入 1
9 3 5 5 1 3 5 3 4 3 3 7 9 8
输出 1
5 4 5 3 4 4 5 5 5

思路分析

  • 初始时,假设所有奶牛身高均为最高身高 H。
  • 对于每条信息 A 看到 B(假设 (A<B)),意味着区间 (A,B) 内的所有奶牛身高必须严格小于 A 的身高。为了最大化每头奶牛的身高,我们只需将区间 (A,B) 内的所有奶牛身高减少 1(因为 A本身身高不变,中间奶牛减 1 后必定小于 A)。
  • 使用差分数组维护区间减操作:对区间 [A+1, B-1] 整体 -1,即diff[A+1]--diff[B]++
  • 注意去除重复的关系,避免多次减同一个区间。
  • 最后对差分数组求前缀和,得到每头奶牛相对于初始身高 (H) 的减少量,输出 (H − 减少量 H - \text{减少量}H减少量) 即可。

代码实现

#include<bits/stdc++.h>usingnamespacestd;intn,id,h,r,d[10005];// d为差分数组set<pair<int,int>>st;// 记录已处理的关系,去重intmain(){ios::sync_with_stdio(false);cin.tie(0);// 加速IOcin>>n>>id>>h>>r;// 读入N, I, H, Rfor(inti=0;i<r;++i){inta,b;cin>>a>>b;// 读入A, Bif(a>b)swap(a,b);// 使a<bif(st.count({a,b}))continue;// 重复关系跳过st.insert({a,b});if(b-a>1){// 区间内至少有一个奶牛d[a+1]--;d[b]++;// 差分区间减1}}intcur=0;// 当前减少量for(inti=1;i<=n;++i){cur+=d[i];// 前缀和得到i的减少量cout<<h+cur<<'\n';// 身高 = H - 减少量(cur为负)}return0;}

功能分析

  • 去重:使用set<pair<int,int>>确保每条关系只处理一次,防止重复减操作。
  • 差分维护:对区间[a+1, b-1]进行整体 (-1),时间复杂度 (O(1))。
  • 前缀和还原:最后遍历一次,累加差分值得到每个位置的减少量,输出H + 减少量

【完整系列请查看专栏】:
信奥赛C++普及组CSP-J一等奖通关刷题题单及题解:
https://blog.csdn.net/weixin_66461496/category_12673810.html 点击跳转


各种学习资料,助力大家一站式学习和提升!!!

#include<bits/stdc++.h>usingnamespacestd;intmain(){cout<<"########## 一站式掌握信奥赛知识! ##########";cout<<"############# 冲刺信奥赛拿奖! #############";cout<<"###### 课程购买后永久学习,不受限制! ######";return0;}

【秘籍汇总】(完整csp信奥赛C++学习资料):

1、csp/信奥赛C++,完整信奥赛系列课程(永久学习):

https://edu.csdn.net/lecturer/7901 点击跳转

2、CSP信奥赛C++竞赛拿奖视频课:

https://edu.csdn.net/course/detail/40437 点击跳转

https://edu.csdn.net/course/detail/41081 点击跳转

3、csp信奥赛高频考点知识详解及案例实践:

CSP信奥赛C++动态规划:
https://blog.csdn.net/weixin_66461496/category_13096895.html点击跳转

CSP信奥赛C++标准模板库STL:
https://blog.csdn.net/weixin_66461496/category_13108077.html 点击跳转

信奥赛C++提高组csp-s知识详解及案例实践:
https://blog.csdn.net/weixin_66461496/category_13113932.html 点击跳转

4、csp信奥赛冲刺一等奖有效刷题题解:

信奥赛C++普及组CSP-J一等奖通关刷题题单及题解:
https://blog.csdn.net/weixin_66461496/category_12673810.html 点击跳转

信奥赛C++提高组csp-j初赛&复赛真题题解(持续更新):https://blog.csdn.net/weixin_66461496/category_12808781.html 点击跳转

信奥赛C++提高组csp-s初赛&复赛真题题解(持续更新):
https://blog.csdn.net/weixin_66461496/category_13125089.html 点击跳转

5、GESP C++考级真题题解:

GESP(C++ 一级+二级+三级)真题题解(持续更新):https://blog.csdn.net/weixin_66461496/category_12858102.html 点击跳转

GESP(C++ 四级+五级+六级)真题题解(持续更新):https://blog.csdn.net/weixin_66461496/category_12869848.html 点击跳转


GESP(C++ 七级+八级)真题题解(持续更新):
https://blog.csdn.net/weixin_66461496/category_13117178.html 点击跳转

· 文末祝福 ·

#include<bits/stdc++.h>usingnamespacestd;intmain(){cout<<"跟着王老师一起学习信奥赛C++";cout<<" 成就更好的自己! ";cout<<" csp信奥赛一等奖属于你! ";return0;}
http://www.gsyq.cn/news/1415305.html

相关文章:

  • 2026湖南五大商务宴请推荐:2026郴州汝城最新排名出炉,汝城县鸿福楼餐饮有限公司以全场景服务实力领先 - 十大品牌榜
  • IDR终极指南:如何用专业工具逆向Delphi程序的完整教程
  • 2026年杭州电商技术新突破:如何引领未来商业潮流
  • 个人用OpenClaw配置难、耗设备?零门槛国产平替个人AI高效用法 - 极欧测评
  • 基于Arduino Uno的户外气象站搭建:从传感器选型到数据采集全解析
  • 大学生写作业竞赛用什么AI编程软件 最新热门学生免费编程助手盘点
  • 2026年资产管理软件大盘点:主流系统有哪些? - 品牌2025
  • ARM DS-5调试中镜像不匹配警告的解决方案
  • Galanin (1-13)-Bradykinin (2-9) amide;GWTLSAGYLLGPPPGFSPFR-NH₂
  • 2026兰州加固公司技术解析:甘肃结构碳纤维加固/甘肃老旧建筑加固维修/甘肃老旧建筑地基加固/老旧建筑补强全攻略 - 优质品牌商家
  • 3分钟快速修复损坏MP4视频:untrunc终极指南
  • 5分钟终极指南:用望言OCR实现10倍速视频字幕提取
  • 包头本地金饰变现哪家更省心 六家回收门店真实对比帮你拿主意 - 专业黄金回收
  • 卫浴散热器厂家哪家专业?专业厂家的核心体现 - 资讯速览
  • 告别杂乱Mac菜单栏:Ice让你重获清爽高效的工作空间
  • MoneyPrinterTurbo深度解析:AI视频创作从零到一的完整指南
  • 2026 重庆奢侈品回收选择指南,添价收打造安全交易环境 - 薛定谔的梨花猫
  • 湖北白蚁防治哪家专业?2026本地实力机构汇总 - 资讯焦点
  • 2026 全网测评防晒霜哪款更好用?这几款防晒霜,抵御高温暴晒,防护续航更持久 - 资讯焦点
  • 5大核心功能ChanlunX缠论插件:面向通达信用户的完整技术分析指南
  • 2026亲测:专业降AI率网站选这款就对了3秒改写无痕迹
  • 2026年新鲜出炉!烟台口碑好的装修公司性价比排名大揭秘 - 资讯速览
  • GraG:基于高斯和与生成先验的单目手物交互三维动态重建
  • 如何在VSCode中高效学习英语:Qwerty Learner插件完整使用指南
  • 探索Wan2.2-TI2V-5B:揭秘开源视频生成的混合专家架构突破
  • 2026免费视频文字提取器哪个好用?保姆级教程手把手教你一键提取视频文案 - 软件小管家
  • 新手避坑指南:在VulnFocus靶场搭建ThinkPHP漏洞环境(CVE-2018-1002015)的常见问题
  • 在Taotoken平台管理界面回顾历史账单与导出数据
  • 长期使用Taotoken服务对其API稳定性和路由能力的感受
  • 从手机无线充电到航天供电:拆解WPT(无线电能传输)S-S/S-P耦合的底层电路与设计考量