news 2026/4/17 18:09:14

打卡信奥刷题(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:38:19

HoRain云--Redis超时排查全攻略

&#x1f3ac; HoRain 云小助手&#xff1a;个人主页 ⛺️生活的理想&#xff0c;就是为了理想的生活! ⛳️ 推荐 前些天发现了一个超棒的服务器购买网站&#xff0c;性价比超高&#xff0c;大内存超划算&#xff01;忍不住分享一下给大家。点击跳转到网站。 目录 ⛳️ 推荐 …

作者头像 李华
网站建设 2026/4/16 21:23:33

智能技术加持软件工程毕设:8款AI应用加速论文与编程流程

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

作者头像 李华
网站建设 2026/4/16 12:48:45

精讲面试题Redis事务 vs 管道:一张图看懂区别

Redis事务 vs 管道&#xff1a;一张图看懂区别 零基础全栈开发Java微服务版本实战-后端-前端-运维-实战企业级三个实战项目 资源获取&#xff1a;关注公众号: 小坏说Java &#xff0c;获取本文所有示例代码、配置模板及导出工具。 一句话说清楚 事务&#xff1a;把多个命令…

作者头像 李华
网站建设 2026/4/8 19:04:06

PHP版CKEDITOR如何通过示例实现图片自动上传?

军工集团项目技术日志 - 信创环境下的富文本内容迁移解决方案 2023年X月X日 于长沙研发中心 一、需求背景与痛点分析 近期承接某部委涉密项目时&#xff0c;客户反馈现有CMS系统存在以下问题&#xff1a; 政务公文迁移效率低下&#xff1a;需手动调整Word文档格式&#xff0c…

作者头像 李华
网站建设 2026/4/14 11:17:39

ALLOS 与 Ennostar 结成 microLED 战略合作伙伴关系

德国的 ALLOS Semiconductors 与中国台湾的 Ennostar 正式宣布缔结合作伙伴关系&#xff0c;其目标明确&#xff0c;致力于将应用于 microLED 的 200 毫米&#xff08;mm&#xff09;氮化镓 - 硅&#xff08;GaN - on - Si&#xff09;LED 外延片推向大规模量产阶段。此次合作堪…

作者头像 李华
网站建设 2026/4/16 11:56:36

新中地系统学习3个月能做出什么效果?

新中地GIS开发特训营系统课学习时长为5个月左右&#xff0c;每个阶段学习会有一些小练习&#xff0c;阶段结束时会有阶段性项目考核。 那么在新中地系统学习3个月&#xff0c;能做出什么样的效果&#xff1f; 首先来看下学那些内容&#xff1f; 第一阶段&#xff1a;Web开发…

作者头像 李华