【蓝桥杯冲冲冲】旅行计划

蓝桥杯备赛 | 洛谷做题打卡day18

文章目录

  • 蓝桥杯备赛 | 洛谷做题打卡day18
  • 旅行计划
    • 题目描述
    • 输入格式
    • 输出格式
    • 样例 #1
      • 样例输入 #1
      • 样例输出 #1
    • 提示
    • 题解代码
    • 我的一些话

旅行计划

题目描述

Kira酱要去一个国家旅游。这个国家有 N N N 个城市,编号为 1 1 1 N N N,并且有 M M M 条道路连接着,Kira准备从其中一个城市出发,并只往东走到城市 i i i 停止。

所以她就需要选择最先到达的城市,并制定一条路线以城市 i i i 为终点,使得线路上除了第一个城市,每个城市都在路线前一个城市东面,并且满足这个前提下还希望游览的城市尽量多。

现在,你只知道每一条道路所连接的两个城市的相对位置关系,但并不知道所有城市具体的位置。现在对于所有的 i i i,都需要你为Kira酱制定一条路线,并求出以城市 i i i 为终点最多能够游览多少个城市。

输入格式

第一行为两个正整数 N , M N, M N,M

接下来 M M M 行,每行两个正整数 x , y x, y x,y,表示了有一条连接城市 x x x 与城市 y y y 的道路,保证了城市 x x x 在城市 y y y 西面。

输出格式

N N N 行,第 i i i 行包含一个正整数,表示以第 i i i 个城市为终点最多能游览多少个城市。

样例 #1

样例输入 #1

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

样例输出 #1

1
2
3
4
3

提示

均选择从城市 1 1 1 出发可以得到以上答案。

  • 对于 20 % 20\% 20% 的数据, 1 ≤ N ≤ 100 1\le N ≤ 100 1N100
  • 对于 60 % 60\% 60% 的数据, 1 ≤ N ≤ 1000 1\le N ≤ 1000 1N1000
  • 对于 100 % 100\% 100% 的数据, 1 ≤ N ≤ 100000 1\le N ≤ 100000 1N100000 1 ≤ M ≤ 200000 1\le M ≤ 200000 1M200000

在这里插入图片描述

题解代码

学会利用新知,自己多试试并尝试积攒一些固定解答方案,debug,以下是题解代码 ~

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<queue>
#include<map>
#include<cmath> //别忘记头文件哦
using namespace std;
int n,m,lin[100010],in[100010],total,f[100010];
queue<int>q;
struct cym{int to,next;
}e[400010];
int main()
{scanf("%d%d",&n,&m);for(int i=1;i<=m;i++){int x,y;scanf("%d%d",&x,&y);e[++total].to=y;e[total].next=lin[x];lin[x]=total;in[y]++;}for(int i=1;i<=n;i++)if(in[i]==0){f[i]=1;q.push(i);}while(!q.empty()){int cnt=q.front();q.pop();for(int i=lin[cnt];i;i=e[i].next){f[e[i].to]=max(f[e[i].to],f[cnt]+1);if(--in[e[i].to]==0)q.push(e[i].to);	}	}for(int i=1;i<=n;i++)printf("%d\n",f[i]);
}

我的一些话

  • 今天来巩固动态规划dp,很显然,每个点的答案是它所有前驱节点的答案加1,即f[i]=max(f[i],f[j]+1); 考虑空间复杂度用邻接表存图,在拓扑排序同时DP就好了不用再外面再做什么工作。多思考思路还是很好掌握的,虽然一次性AC有一定难度,需要通盘的考虑和理解,以及扎实的数据结构基础才能独立写出AC代码。但无论难易,大家都要持续做题,保持题感喔!一起坚持(o´ω`o)

  • 如果有非计算机专业的uu自学的话,关于数据结构的网课推荐看b站上青岛大学王卓老师的课,讲的很细致,有不懂都可以私信我喔

  • 总结来说思路很重要,多想想,多在草稿纸上画画,用测试数据多调试,debug后成功编译并运行出正确结果真的会感到很幸福!

  • 关于之前蓝桥杯备赛的路线和基本方法、要掌握的知识,之前的博文我都有写,欢迎大家关注我,翻阅自取哦~

  • 不管什么都要坚持吧,三天打鱼两天晒网无法形成肌肉记忆和做题思维,该思考的时候一定不要懈怠,今天就说这么多啦,欢迎评论留言,一起成长:)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/651132.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机网络(第六版)复习提纲11

二、CSMA/CD协议 1.广播信道上的一对一通信 2.以太网的两个措施 a)采用无连接的方法&#xff0c;不可靠 b)发送的数据都是用曼彻斯特编码 3.CSMA/CD协议&#xff08;先听后说&#xff0c;边听边说&#xff09; a)前身是ALOHA协议&#xff0c;想发就发&#xff0c;冲突时随机等待…

SpringSecurity(16)——OAuth2客户端授权模式

工作流程 基本使用 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId><version>2.3.12.RELEASE</version> </dependency> <dependency><groupId>…

大数据Doris(五十九):SQL函数之字符串函数(三)

文章目录 SQL函数之字符串函数(三) 一、​​​​​​​NULL_OR_EMPTY (VARCHAR str)

力扣1312. 让字符串成为回文串的最少插入次数

动态规划 思路&#xff1a; 通过插入字符构造回文串&#xff0c;要想插入次数最少&#xff0c;可以将字符串 s 的逆序 s 进行比较找出最长公共子序列&#xff1b;可以先分析&#xff0c;字符串 s 通过插入得到回文串 ps&#xff0c;其中间的字符应该不会变化&#xff1a; 若 s…

IO复用之epoll模型

什么是epoll epoll 是 Linux 操作系统提供的一种高性能的事件通知机制&#xff0c;用于处理大量文件描述符上的事件。它是一种 I/O 事件通知机制&#xff0c;通常用于处理网络编程中的并发连接。 在传统的 I/O 模型中&#xff0c;程序通常使用 select 或 poll 函数来等待多个…

基于springboot+vue的校园资料分享平台(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容&#xff1a;毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目背景…

数据灾难恢复:应对._locked勒索病毒的有效方法

导言&#xff1a; 近年来&#xff0c;网络犯罪愈发猖獗&#xff0c;其中一种威胁备受关注——._locked勒索病毒。这种恶意软件的攻击方式主要通过加密用户的数据文件&#xff0c;随后勒索受害者以解密密钥为代价。在这篇文章中&#xff0c;我们将介绍._locked勒索病毒的特点、…

qt学习:实战 http请求获取qq的吉凶

目录 利用的api是 聚合数据 的qq号码测吉凶 编程步骤 配置ui界面 添加头文件&#xff0c;定义网络管理者和http响应槽函数 在界面的构造函数里创建管理者对象&#xff0c;关联http响应槽函数 实现按钮点击事件 实现槽函数 效果 利用的api是 聚合数据 的qq号码测吉凶 先…

2024 高级前端面试题之 CSS 「精选篇」

该内容主要整理关于 CSS 的相关面试题&#xff0c;其他内容面试题请移步至 「最新最全的前端面试题集锦」 查看。 CSS模块精选篇 1. 盒模型2. BFC3. 层叠上下文4. 居中布局5. 选择器权重计算方式6. 清除浮动7. link 与 import 的区别8. CSS3的新特性9. CSS动画和过渡10. 有哪些…

LabVIEW继电器触点接触电阻自动测试

继电器作为工业中的重要组件&#xff0c;其性能直接影响着整个生产线的可靠性和安全性。触点接触电阻是衡量继电器性能的重要参数&#xff0c;传统的测试方法效率低下且成本高昂。为了解决这些问题&#xff0c;采用LabVIEW软件&#xff0c;结合专业的硬件平台&#xff0c;实现了…

OceanMind海睿思入选《2023大数据产业年度创新技术突破奖》,并蝉联多项图谱

近日&#xff0c;由数据猿和上海大数据联盟主办&#xff0c;上海市经济和信息化委员会、上海市科学技术委员会指导的“第六届金猿季&魔方论坛——大数据产业发展论坛”在上海成功举行&#xff0c;吸引了数百位业界精英的参与。中新赛克海睿思作为国内数字化转型优秀厂商代表…

用C语言实现贪吃蛇游戏!!!(破万字)

前言 大家好呀&#xff0c;我是Humble&#xff0c;不知不觉在CSND分享自己学过的C语言知识已经有三个多月了&#xff0c;从开始的C语言常见语法概念说到C语言的数据结构今天用C语言实现贪吃蛇已经有30余篇博客的内容&#xff0c;也希望这些内容可以帮助到各位正在阅读的小伙伴…

【 C++私房菜】模板的入门与进阶

目录 一、模板的定义 a.函数模板的调用 b.类模板的定义 2、模板的重载 3、非类型模板参数和模板类型参数 4、模板的编译 二、模板的特化 1、函数模板特化 2、类模板特化 a.全特化 b.偏特化 三、模板相关定义 一、模板的定义 a.函数模板的调用 理在的 C编译器实现…

头歌C++之For循环性质编程实训

目录 第1关:求1到n间所有整数的和 本关必读 本关任务 测试说明 第2关:求s=a+aa+aaa+aaaa+aa...a的值 本关必读 本关任务 测试说明 第3关:求1!+2!+3!+⋯+n!的值 本关必读 本关任务

确定软件项目范围基准 5个重点

软件项目范围基准明确了项目的边界、目标和主要交付成果&#xff0c;有助于提高项目成本、进度和资源估算的准确性&#xff0c;便于实施项目控制&#xff0c;而且还可以帮助我们清楚分派责任&#xff0c;防止范围蔓延&#xff0c;从而提升项目的成功率。 如果没有明确确定范围基…

Pointnet++改进优化器系列:全网首发AdamW优化器 |即插即用,实现有效涨点

简介:1.该教程提供大量的首发改进的方式,降低上手难度,多种结构改进,助力寻找创新点!2.本篇文章对Pointnet++特征提取模块进行改进,加入AdamW优化器,提升性能。3.专栏持续更新,紧随最新的研究内容。 目录 1.理论介绍 2.修改步骤 2.1 步骤一 2.2 步骤二 2.3 步

网络基础---初识网络

前言 作者&#xff1a;小蜗牛向前冲 名言&#xff1a;我可以接受失败&#xff0c;但我不能接受放弃 如果觉的博主的文章还不错的话&#xff0c;还请点赞&#xff0c;收藏&#xff0c;关注&#x1f440;支持博主。如果发现有问题的地方欢迎❀大家在评论区指正 目录 一、局域网…

算法训练营Day59(单调栈)

下一个更大元素II 503. 下一个更大元素 II - 力扣&#xff08;LeetCode&#xff09; 最直接的方法&#xff0c;我自己写的。。 class Solution {public int[] nextGreaterElements(int[] nums) {int len nums.length*2;int [] nums2 new int[len];for(int i 0;i<len;i…

Nav2笔记

1、源码安装 git clone https://github.com/ros-planning/navigation2.git -b humble 1.1 一键安装依赖 wget http://fishros.com/install -O fishros && . fishros rosdepc install -r --from-paths src --ignore-src --rosdistro $ROS_DISTRO -y 1.2 编译 colc…

动态规划学习——背包问题

问题&#xff1a; 有一个背包&#xff0c;有最大的可以承受的重量Weight 有一些物品&#xff0c;每个物品都有相应的重量和价值 给两个数组w[]和v[]&#xff0c;其中w[i]表示第i个物品的重量&#xff0c;v[i]表示第i个物品的价值 求如何拿才能在不超过背包承重的情况下拿到的最…