news 2026/5/1 10:00:08

打卡信奥刷题(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/5/1 4:56:48

微软MOS认证2月份考试时间

1月马上接近尾声&#xff0c;微软MOS认证2月份都有哪些考试排期呢&#xff0c;快来看看吧~

作者头像 李华
网站建设 2026/5/1 6:11:18

8款AI应用改变软件工程毕设:智能论文撰写与程序复现

文章总结表格&#xff08;工具排名对比&#xff09; 工具名称 核心优势 aibiye 精准降AIGC率检测&#xff0c;适配知网/维普等平台 aicheck 专注文本AI痕迹识别&#xff0c;优化人类表达风格 askpaper 快速降AI痕迹&#xff0c;保留学术规范 秒篇 高效处理混AIGC内容&…

作者头像 李华
网站建设 2026/5/1 0:38:46

CKEDITOR粘贴WORD图片失败时如何通过示例排查?

企业级文档导入与粘贴解决方案 项目背景与需求综述 作为西安高新技术企业和软件企业项目负责人&#xff0c;我们近期在企业网站后台管理系统的升级中遇到了一系列文档处理的需求。这些需求源于我们服务的党政、国防军工、金融、高校、医疗、汽车制造等多个关键行业的客户&…

作者头像 李华
网站建设 2026/5/1 8:09:18

Ollama REST API - OpenAI Compatibility

本节内容我们来看一下 OpenAI Compatibility。 OpenAI 的 API 接口是大模型应用开发中最常用、且集成度最高的 API 接口规范&#xff0c;其兼容接口主要包括&#xff1a; chat/completionscompletionsmodelsembeddings 我们上两节课程内容中介绍的/api/generate 和 /api/chat…

作者头像 李华