Peter算法小课堂—贪心算法

课前思考:贪心是什么?贪心如何“贪”?

课前小视频:什么是贪心算法 - 知乎 (zhihu.com)

贪心

贪心是一种寻找最优解问题的常用方法。

贪心一般将求解过程分拆成若干个步骤,自顶向下,解决问题

太戈编程第1377题 抓娃娃

题目描述:

你有一台抓娃娃机器,玩法有点特别:机器会随机给你一排N个娃娃(1≤N≤100),编号1到N,但是顺序已经打乱了,你需要把他们重新排序变成1号到N号递增。

每一次你可以抓起最左边的娃娃沿着队伍向后移动到k个娃娃后的位置,k可以是范围1…N−1中的任意数。每次操作只能对最左边娃娃操作,不能对其他娃娃操作。

例如,假设N=4,娃娃开始时是这样的顺序:

4, 3, 2, 1

现在唯一可以移动的娃娃是4号。当把它向队伍后移动2步之后,队伍的顺序会变成:

3, 2, 4, 1

现在唯一可以移动的娃娃是3号,如此进行直到娃娃们排好了顺序。

请求出将娃娃们排好顺序所需要的最小操作次数。

 举例子,找规律

经过几小时的找规律,我们会发现……

 

所以说呢…… 

如果排列最后有连续最多k个数严格上升,则最少移动次数为n-k!

上代码八

#include <bits/stdc++.h>
using namespace std;
int n,a[105];
int main(){freopen("doll.in","r",stdin);freopen("doll.out","w",stdout);cin>>n;for(int i=1;i<=n;i++) cin>>a[i];int ans=n-1;for(int i=n-1;i>=1;i--){if(a[i]<a[i+1]) ans--;else break;}cout<<ans<<endl;return 0;
}

太戈编程第1423题 大堵车1

题目描述:

在一条无限长的直线公路上,有n辆车正在从左向右行驶。每辆车的当前位置各不相同,各自的速度也可能不同。因为只有一条车道,所以车辆无法进行超车,当左边一辆高速车接近右侧一辆低速车时,为了避免车祸,高速车会把速度降下来和低速车紧贴着行驶。这样的车辆就会属于同一个同速度同位置的小组。请问最终会形成多少个小组?

一步一步来,先填空

 

再举例子,找规律……

当然,我不会告诉你们规律的哈,说也不会说给你们听的哈

代码来啦

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll N=100010;
ll n,x,s[N];
int main(){freopen("jam1.in","r",stdin);freopen("jam1.out","w",stdout);cin>>n;for(ll i=0;i<n;i++){cin>>x>>s[i];}ll ans=1;ll speed=s[n-1];for(ll i=n-2;i>=0;i--){if(s[i]<=speed) ans++;speed=min(s[i],speed);}cout<<ans<<endl;return 0;
}

希望这些对大家有用,三连必回

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

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

相关文章

yum源不起作用_yum无法安装程序_Linux默认源替换---Linux工作笔记067

今天在一台机器上进行安装yum install的时候提示,yum不可用,这时候,折腾了一会 后来更换了默认源就可以了. 首先: 可以看到原来的里面有个 yum.repos.d 里面放了很多源,但是这些源是不可以联网的. 是内网的源,所以,我对他进行了 mv yum.repos.d yum.repos.d.bak 重命名 然…

pycharm中py文件设置参数

在py文件中右键 直接对应复制进去即可

openGauss学习笔记-147 openGauss 数据库运维-备份与恢复-逻辑备份与恢复之gs_dump

文章目录 openGauss学习笔记-147 openGauss 数据库运维-备份与恢复-逻辑备份与恢复之gs_dump147.1 背景信息147.2 注意事项147.3 语法147.4 参数说明147.4.1 通用参数&#xff1a;147.4.2 转储参数&#xff1a;147.4.3 连接参数&#xff1a; 147.5 说明147.6 示例 openGauss学习…

Windows故障排除 – 连接WiFi却无法上网

Windows故障排除 – 连接WiFi却无法上网 Windows Troubleshooting - Connecting WiFi but PC Cannot Browse Internet By JacksonML 有个同学买了一台崭新的D品牌游戏本&#xff0c;i7处理器&#xff0c;英伟达RTX系列独立显卡及15寸液晶显示器&#xff0c;可谓功能强大。但是…

Ubuntu宝塔面板本地部署轻论坛系统HadSky并远程访问

文章目录 前言1. 网站搭建1.1 网页下载和安装1.2 网页测试1.3 cpolar的安装和注册 2. 本地网页发布2.1 Cpolar临时数据隧道2.2 Cpolar稳定隧道&#xff08;云端设置&#xff09;2.3 Cpolar稳定隧道&#xff08;本地设置&#xff09;2.4 公网访问测试 总结 前言 经过多年的基础…

系列八、SpringBoot中自定义SpringMVC配置

一、概述 作为Spring家族的明星产品&#xff0c;SpringBoot极大地简化了程序员的日常开发&#xff0c;提高了开发效率。我们很容易得借助于SpringBoot就可以快速开发业务代码。一般情况下&#xff0c;公司的日常开发都是基于web服务的&#xff0c;我们在使用idea等工具初始化一…

JavaScript如何实现按键音效、视频播放,标签分类切换横向滚动

1.使用HTML5的audio标签 &#xff08;音频播放&#xff09; <audio id"click-sound"><source src"audio/show.mp3" type"audio/mpeg"> </audio> <button id"button">按钮</button> var clickSound d…

Spring Boot的日志

打印日志 打印日志的步骤: • 在程序中得到日志对象. • 使用日志对象输出要打印的内容 在程序中得到日志对象 在程序中获取日志对象需要使用日志工厂LoggerFactory,代码如下: package com.example.demo;import org.slf4j.Logger; import org.slf4j.LoggerFactory;public c…

Arrays类练习 - Java

案例&#xff1a;自定义Book类&#xff0c;里面包含name和price&#xff0c;按price排序(从大到小)。要求使用两种方式排序&#xff0c;有一个 Book[] books 4本书对象。 使用前面学习过的传递实现Comparator接口匿名内部类&#xff0c;也称为定制排序。可以按照price (1)从大到…

temu缺货订单号在哪里查

在拼多多的商家后台管理系统Temu中&#xff0c;查找缺货订单号是非常重要的。及时了解缺货订单的情况&#xff0c;可以帮助商家更好地处理订单&#xff0c;提供良好的客户服务。本文将介绍在Temu中如何查找缺货订单号&#xff0c;以及处理缺货订单的步骤和注意事项。 先给大家推…

春风十里不如你——掌握Spring Boot的常用关键注解

引言 在Java的世界里&#xff0c;Spring Boot以其简化的配置和开箱即用的特性&#xff0c;成为了构建现代微服务和企业级应用的首选框架。Spring Boot的注解是这一切的核心。在本文中&#xff0c;我们将深入探讨最常用的Spring Boot注解&#xff0c;帮助你轻松驾驭Spring Boot…

Ubuntu宝塔面板本地部署Emlog个人博客网站并远程访问【内网穿透】

文章目录 前言1. 网站搭建1.1 Emolog网页下载和安装1.2 网页测试1.3 cpolar的安装和注册 2. 本地网页发布2.1 Cpolar临时数据隧道2.2.Cpolar稳定隧道&#xff08;云端设置&#xff09;2.3.Cpolar稳定隧道&#xff08;本地设置&#xff09; 3. 公网访问测试总结 前言 博客作为使…