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

信息学奥赛初赛天天练-86-NOIP2014普及组-基础题5-球盒问题、枚举算法、单源最短路、Dijkstra算法、Bellman-Ford算法

1 NOIP 2014 普及组 基础题5

21 把 M个同样的球放到 N个同样的袋子里,允许有的袋子空着不放,问共有多少种不同的放置方法?

(用 K表示)( )

例如,M=7,N=3 时,K=8;在这里认为 (5,1,1)和 (1,5,1)是同一种放置方法。

问:M=8,N=5时,K=( )

22 如图所示,图中每条边上的数字表示该边的长度,则从A到E的最短距离是

2 相关知识点

  1. 枚举算法

枚举法是训练我们逻辑思维严密性的一种数学逻辑

在计算的过程中,我们一定要遵循枚举法的思路,把所有的情况,按照一定的顺序,一一列举出来

所以我们在学习枚举法的时候,一定要从小到大一一列举,不重不漏

例题

有红色和蓝色两种文具盒,小黄人要把8只相同的铅笔放到这两个文具盒中,每个文具盒至少放一支铅笔,那么一共有多少种不同的方法?

答案 7种

分析

红色和蓝色总共8只

每个文具盒子至少一只,固定红色最少1只,最多7只,从红色从小到大顺序枚举,可以做到不重不漏

总共有红色和蓝色2种,红色固定后,蓝色也固定了

红色 蓝色
1 7
2 6
3 5
4 4
5 3
6 2
7 1
2) 单源最短路

单源最短路算法计算了图论中的一个经典问题,给出从给定的一个节点(称为源节点)出发到其余各节点的最短路径长度。

单源最短路算法适用于网络路由、路径设计等场景。Bellman-Ford算法和Dijkstra算法都是求解图的最短路径的算法

Dijkstra算法

Dijkstra算法的特点主要是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra算法采用的是贪心策略,其基本算法思想是指定起点s,再引进2个集合S和U,S用来记录已经找到最短路径的顶点,而U里包含未找到最短路径的顶点。系统不断地找出路径最短的顶点,并且将其移出U集,加入S集中。初始时S为空集,U集包含全部顶点,系统不断执行,遍历完所有顶点后,U集更新为空集,任务结束。

Bellman-Ford算法

Bellman-Ford算法的原理是连续地进行松弛,在每次松弛时更新每条边,若在n-1次松弛后还能更新,说明图中有负环,因此无法得出结果,否则任务完成。Bellman-Ford算法首先计算除源点外的所有顶点的最短距离估计值,然后对边集中的每条边进行松弛操作,使得每个顶点距离源点的最短距离估计值逐渐逼近其实际的最短距离

3 思路分析

21 把 M个同样的球放到 N个同样的袋子里,允许有的袋子空着不放,问共有多少种不同的放置方法?

(用 K表示)( )

例如,M=7,N=3 时,K=8;在这里认为 (5,1,1)和 (1,5,1)是同一种放置方法。

问:M=8,N=5时,K=( 18 )

分析

枚举-非递减整数枚举
允许空着不放
5个袋子,可以放1个袋子,空4个袋子
8
总共1种

5个袋子,可以放2个袋子,空3个袋子
1 7
2 6
3 5
4 4
总共4种

5个袋子,可以放3个袋子,空2个袋子
1 1 6
1 2 5
1 3 4
2 2 4
2 3 3
总共5种

5个袋子,可以放4个袋子,空1个袋子
1 1 1 5
1 1 2 4
1 1 3 3
1 2 2 3
2 2 2 2
总共5种

5个袋子,可以放5个袋子,空0个袋子
1 1 1 1 4
1 1 1 2 3
1 1 2 2 2
总共3种
22 如图所示,图中每条边上的数字表示该边的长度,则从A到E的最短距离是( 11 )

分析

从A出发,和A相邻的点为B,G,F,到B最短,长度为3
从A-B出发,和C,D相邻,到C最短,长度为3+1=4
从A-C出发,和E,F,G相邻,到F最短,长度为4+1=5
从A-F出发,和D,E相邻,到D最短,长度为5+2=7
从A-F出发,和D,E相邻,到E的长度为5+6=11
从A-D出发,到E距离为4,长度为7+4=11
所以最短距离为11

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 营养方案调整执行流程 第十篇
  • Spring Batch
  • FPGA开发:Verilog数字设计基础
  • [论文笔记]QLoRA: Efficient Finetuning of Quantized LLMs
  • ios免签H5
  • tiptap parseHTML renderHTML 使用
  • 系统架构师考试学习笔记第三篇——架构设计高级知识(19)嵌入式系统架构设计理论与实践
  • 安卓下载工具箱_3.8.1/去浏览器跳转登录就是会员
  • 【一文读懂】NTN(非地面网络)技术介绍
  • vulhub GhostScript 沙箱绕过(CVE-2018-16509)
  • JS_循环结构
  • 【Python知识宝库】上下文管理器与with语句:资源管理的优雅方式
  • 归并排序/计数排序
  • Spring Boot之数据访问集成入门
  • 秋招想要过在线测评,这些知识必须刷
  • Apache Zeppelin在Apache Trafodion上的可视化
  • LeetCode541. Reverse String II -- 按步长反转字符串
  • miniui datagrid 的客户端分页解决方案 - CS结合
  • MobX
  • Node 版本管理
  • PaddlePaddle-GitHub的正确打开姿势
  • Xmanager 远程桌面 CentOS 7
  • 动态魔术使用DBMS_SQL
  • 工程优化暨babel升级小记
  • 基于遗传算法的优化问题求解
  • 计算机常识 - 收藏集 - 掘金
  • 精彩代码 vue.js
  • 快速构建spring-cloud+sleuth+rabbit+ zipkin+es+kibana+grafana日志跟踪平台
  • 用Visual Studio开发以太坊智能合约
  • 责任链模式的两种实现
  • [地铁译]使用SSD缓存应用数据——Moneta项目: 低成本优化的下一代EVCache ...
  • Android开发者必备:推荐一款助力开发的开源APP
  • ​软考-高级-信息系统项目管理师教程 第四版【第19章-配置与变更管理-思维导图】​
  • #70结构体案例1(导师,学生,成绩)
  • #Java第九次作业--输入输出流和文件操作
  • (173)FPGA约束:单周期时序分析或默认时序分析
  • (2)STM32单片机上位机
  • (a /b)*c的值
  • (iPhone/iPad开发)在UIWebView中自定义菜单栏
  • (rabbitmq的高级特性)消息可靠性
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • (附源码)springboot“微印象”在线打印预约系统 毕业设计 061642
  • (六)软件测试分工
  • (十六)视图变换 正交投影 透视投影
  • (四)库存超卖案例实战——优化redis分布式锁
  • (一)utf8mb4_general_ci 和 utf8mb4_unicode_ci 适用排序和比较规则场景
  • (转)四层和七层负载均衡的区别
  • (转)为C# Windows服务添加安装程序
  • .Net Core与存储过程(一)
  • .net MVC中使用angularJs刷新页面数据列表
  • .Net 路由处理厉害了
  • .net 前台table如何加一列下拉框_如何用Word编辑参考文献
  • .Net 中的反射(动态创建类型实例) - Part.4(转自http://www.tracefact.net/CLR-and-Framework/Reflection-Part4.aspx)...
  • .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件)
  • .Net8 Blazor 尝鲜