news 2026/4/15 20:50:01

打卡信奥刷题(2750)用C++实现信奥题 P3657 [USACO17FEB] Why Did the Cow Cross the Road II P

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
打卡信奥刷题(2750)用C++实现信奥题 P3657 [USACO17FEB] Why Did the Cow Cross the Road II P

P3657 [USACO17FEB] Why Did the Cow Cross the Road II P

题目背景

本题与 金组同名题目 在题意上一致,唯一的差别是数据范围。

题目描述

Farmer John 饲养了N NN种奶牛,编号从1 11N NN。一些品种的奶牛和其他奶牛间相处良好,事实证明,如果两个品种的奶牛编号分别为a , b a,ba,b,当∣ a − b ∣ ≤ 4 |a-b| \leq 4ab4时,这两个品种的奶牛能友好相处,否则不能友好相处。

一条长长的道路贯穿整个农场,道路的左侧有N NN个牧场(每个品种的奶牛恰好占据一个牧场),道路的右侧也有N NN个牧场(每个品种的奶牛恰好占据一个牧场)。为了让奶牛们安全穿过马路,Farmer John 希望能在马路上画出一些人行道(牛行道?),要求这些人行道满足如下条件:

  1. 人行道从左侧的某个牧场出发,连接到右侧的某个牧场;
  2. 人行道连接的两个牧场的奶牛要能友好相处;
  3. 人行道不能在道路中间相交;
  4. 每个牧场只能与一条人行道相连。

你需要帮 FJ 求出最多能有多少条人行道。

输入格式

输入第一行一个整数N NN1 ≤ N ≤ 10 5 1 \leq N \leq 10^51N105)。

接下来N NN行,每行一个整数a i a_iai,代表道路左侧第i ii个牧场的奶牛品种编号。

接下来N NN行,每行一个整数b i b_ibi,代表道路右侧第i ii个牧场的奶牛品种编号。

输出格式

输出最多能画多少条人行道。

输入输出样例 #1

输入 #1

6 1 2 3 4 5 6 6 5 4 3 2 1

输出 #1

5

说明/提示

保证a i , b i a_i,b_iai,bi均为从1 11N NN的排列。

C++实现

#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>usingnamespacestd;#defineregregisterinlinechargc(){staticconstintbs=1<<22;staticunsignedcharbuf[bs],*st,*ed;if(st==ed)ed=buf+fread(st=buf,1,bs,stdin);returnst==ed?EOF:*st++;}#definegcgetcharinlineintread(){intres=0;charch=gc();boolfu=0;while(!isdigit(ch))fu|=(ch=='-'),ch=gc();while(isdigit(ch))res=(res<<3)+(res<<1)+(ch^48),ch=gc();returnfu?-res:res;}#defineN100005intn;inta[N],b[N];intpos[N];intc[N*9],cnt,tmp[10];intlow[N*9],ans;intmain(){n=read();for(reginti=1;i<=n;i++)a[i]=read();for(reginti=1;i<=n;i++)pos[b[i]=read()]=i;for(reginti=1;i<=n;i++){inttop=0;for(regintj=max(1,a[i]-4);j<=min(n,a[i]+4);j++)tmp[++top]=pos[j];sort(tmp+1,tmp+1+top);for(regintj=top;j>=1;j--)c[++cnt]=tmp[j];}low[++ans]=c[1];for(reginti=2;i<=cnt;i++){if(c[i]>low[ans])low[++ans]=c[i];else{intt=lower_bound(low+1,low+1+ans,c[i])-low;low[t]=c[i];}}cout<<ans<<endl;return0;}

后续

接下来我会不断用C++来实现信奥比赛中的算法题、GESP考级编程题实现、白名单赛事考题实现,记录日常的编程生活、比赛心得,感兴趣的请关注,我后续将继续分享相关内容

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/14 0:28:37

企业级工厂车间管理系统管理系统源码|SpringBoot+Vue+MyBatis架构+MySQL数据库【完整版】

摘要 现代制造业的快速发展对工厂车间的管理提出了更高的要求&#xff0c;传统的管理方式已无法满足高效、精准、实时监控的需求。随着工业4.0和智能制造的推进&#xff0c;企业亟需一套集成化、数字化的车间管理系统&#xff0c;以实现生产流程的自动化、数据的可视化以及资源…

作者头像 李华
网站建设 2026/4/10 19:26:11

蜜语聊带后台源码 好玩的秘密语言工具 多种类型可选

内容目录一、详细介绍二、效果展示1.部分代码2.效果图展示三、学习资料下载一、详细介绍 好玩的秘密语言工具&#xff0c;带后台支持在线加解密&#xff0c;有多种类型可选 二、效果展示 1.部分代码 代码如下&#xff08;示例&#xff09;&#xff1a; 2.效果图展示 三、学…

作者头像 李华
网站建设 2026/4/13 14:35:55

[特殊字符]_微服务架构下的性能调优实战[20260126045356]

作为一名经历过多个微服务架构项目的工程师&#xff0c;我深知在分布式环境下进行性能调优的复杂性。微服务架构虽然提供了良好的可扩展性和灵活性&#xff0c;但也带来了新的性能挑战。今天我要分享的是在微服务架构下进行性能调优的实战经验。 &#x1f4a1; 微服务架构的性…

作者头像 李华
网站建设 2026/4/9 20:58:05

互联网产品CKEDITOR粘贴截图生成URL的示例?

CMS企业官网Word导入功能开发手记 需求分析与技术调研 作为北京的一名.NET开发工程师&#xff0c;最近接手的企业CMS官网项目新增了文档导入需求。客户希望在新闻发布模块中实现Word/Excel/PPT/PDF文档导入和一键粘贴功能&#xff0c;同时保留完整样式和多媒体内容。 需求拆…

作者头像 李华
网站建设 2026/4/12 2:28:26

实用蛋白质谱分析数据库资源

实用蛋白质谱分析数据库资源 1. GPMdb GPMdb全称为Global Proteome Machine Database。这是一个持续更新的大型数据库&#xff0c;包含许多被质谱鉴定过的蛋白质质谱数据。 网站链接&#xff1a;http://gpmdb.thegpm.org 用蛋白质谱分析数据库资源 网站界面很简单&#xff0…

作者头像 李华
网站建设 2026/4/10 10:00:29

弗劳恩霍夫,填补有机半导体表征领域的空白

弗劳恩霍夫 IPMS 测量适配器&#xff1a;为精准材料分析树立全新标杆弗劳恩霍夫光子微系统研究所&#xff08;IPMS&#xff09;成功研发出一款创新芯片&#xff0c;宣称此芯片将彻底变革有机材料的表征模式&#xff0c;并加速新型电子应用的研发进程。新开发的一款测量适配器&a…

作者头像 李华