python 基础知识点(蓝桥杯python科目个人复习计划42)

今日复习内容:重新学习一下贪心算法

今天做题的时候,想了半天贪心算法,结果没全想出来,所以菜就多练,重新学一下呗。

贪心算法是一种常见的算法范式,通常用于求解最优化过程。在每一步的选择中,贪心算法总是做出当前看起来最优的选择,而不考虑当前选择之后的结果。贪心算法的核心思想是通过局部最优解来寻求全局最优解。

贪心算法具有以下特点:

(1)局部最优性:每一步选择都是局部最优的,即当前情况下的最优选择。

(2)不可回退行:一旦做出了选择,就不会再改变,这意味着贪心算法做出的选择是永久性的,不会考虑后续的情况。

(3)简单高效:贪心算法通常实现简单,执行效率高,适用于解决某些特定类型的问题。

贪心算法通常适用于满足以下条件的问题:

(1)问题可以通过局部最优解达到全局最优解;

(2)问题的求解过程可以划分为一系列步骤,每一步选择都是局部最优的,且当前选择不影响后续步骤的选择;

(3)问题的求解过程不需要回退或者回溯,即一旦做出选择就无需再修改。

实例:

(1)找零问题:给定一定面额的货币,如何用最少的数量的货币来完成找零?贪心算法可以从面额最大的货币开始,逐步选取,直到找零完成。

(2)背包问题:给定一个背包和一组物品,每个物品有自己的价值和重量,如何在背包容量限制下装入尽可能多的价值?如果物品可以分割,可以使用贪心算法按照单位重量的价值从大到小选择物品装入背包。

(3)活动选择问题:给定一系列活动,每个活动都有开始时间和结束时间,同时只能进行一个活动,如何安排活动使得参加的活动数量最多?贪心算法可以按照结束时间从早到晚排序,然后依次选择结束时间最早且与之前活动不冲突的活动。

值得注意的是,贪心算法虽然较简单,但并不是所有问题都适合用贪心算法求解。在某些情况下,贪心算法可能无法得到最优解,或者需要证明才能确保其正确性。因此,在应用贪心算法时,需要谨慎选择问题和验证算法的有效性。

我找了好多题,我觉得多做几个题,应该就OK了。

例题1:答疑

有n位同学同时找老师答疑。每位同学都预先估计了自己答疑的时间。

老师可以安排答疑的顺序,同学们要依次进入老师办公室答疑,一位同学答疑的过程如下:

1.首先进入办公室,编号位i的同学需要si毫秒的时间。

2.然后同学问问题老师解答,编号位i的同学有ai毫秒的时间。

3.答疑完成后,同学很高兴,会在课程群里面发一条消息,需要的时间可以忽略。

4.最后同学收拾东西离开办公室,需要ei毫秒的时间,一般需要10秒,20秒或30秒,即ei取值为10000,20000或30000。

一位同学离开办公室后,紧接着下一位同学就可以进办公室了。

答疑从0时刻开始,老师想合理的安排答疑的顺序,使得同学们在课程群里面发消息的时刻之和最小。

输入描述:

输入第一行包含一个整数n,表示同学的数量;

接下来n行,描述每位同学的时间,其中第i行包含三个整数si,ai,ei,意义如上所述。

其中,1 <= n <= 1000,1 <= si <= 60000,1 <= ai <= 10^6,ei 一定为10000,20000,30000之一。

输出描述:

输出一个整数,表示同学们在课程群里面发消息的时刻之和最小是多少?

分析:我写出前三个同学的情况

第一个同学:sum1(time) = s1 + a1 + e1

第二个同学:sum2(time) = s2 + a2 + s1 + a1 + e1

第三个同学:sum3(time) = s3 + a3 + s2 + a2 + e2 + s1 + a1 + e1

我们要求的是s1 + a1 + e1 ,s2 + a2 + e2,s3 + a3 + e3谁最小

参考答案:

n = int(input())
ls = []
for i in range(n):ls.append(list(map(int, input().split())))
count = 0
t = 0
ls.sort(key=lambda x: sum(x))for i in range(n):t += sum(ls[i])count += t - ls[i][-1]print(count)

运行结果:

例题2:重复字符串

题目描述:

如果一个字符串s恰好可以由某个字符串重复k次得到,我们就称s是k次重复字符串。例如abcabcabc可以看作abc重复3次得到,所以abcabcabc是3次重复字符串。

同理,aaaaaa既是2次重复字符串,又是3次重复字符串和6次重复字符串。

现在给定一个字符串s,请你判断至少要修改其中几个字符串,可以使s变成一个k次字符串?

输入描述:

输入第一行包含一个整数k;

第二行包含一个只含小写字母的字符串s。

其中,1 <= k <= 10^5,1<= |s| <= 10^5,其中|s|表示s的长度。

输出描述:

输出一个整数代表答案,如果s无法修改成k次字符串,就输出-1。

参考答案:

k = int(input())
s = input()
l = len(s) // k
num = 0
for i in range(l):ls = s[i:len(s):l]lis = {}for i in ls:lis[i] = lis.get(i,0) + 1lis = sorted(lis.items(),key = lambda x:x[1])for i,j in lis[:-1]:num += j
print(num)

OK,我做不下去了,这篇就这样吧,下一篇继续!

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

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

相关文章

Excel一键导入导出-EasyPOI

EasyPOI是一款优秀的开源Java库&#xff0c;专为简化和优化Excel文件的导入导出操作而设计。下面&#xff0c;我会介绍EasyPOI在项目中使用EasyPOI&#xff0c;实现Excel文件的高效操作。帮助读者全面了解和掌握这一工具。 EasyPOI简介 官网&#xff1a; http://www.wupaas.co…

Stable Diffusion系列(五):原理剖析——从文字到图片的神奇魔法(扩散篇)

文章目录 DDPM论文整体原理前向扩散过程反向扩散过程模型训练过程模型生成过程概率分布视角参数模型设置论文结果分析 要想完成SD中从文字到图片的操作&#xff0c;必须要做到两步&#xff0c;第一步是理解文字输入包含的语义&#xff0c;第二步是利用语义引导图片的生成。下面…

【Java程序员面试专栏 分布式中间件】ElasticSearch 核心面试指引

关于ElasticSearch 部分的核心知识进行一网打尽,包括ElasticSearch 的基本概念,基本架构,工作流程,存储机制等,通过一篇文章串联面试重点,并且帮助加强日常基础知识的理解,全局思维导图如下所示 基础概念 从数据分类入手,考察全文索引的基本概念 现实世界中数据有哪…

【蓝桥杯单片机入门记录】认识单片机

目录 单片机硬件平台 单片机的发展过程 单片机开发板 单片机基础知识 电平 数字电路中只有两种电平&#xff1a;高和低 二进制&#xff08;8421码&#xff09; 十六进制 二进制数的逻辑运算 “与” “或” “异或” 标准C与C51 如何学好单片机 端正学习的态度、培…

前端秘法基础式(HTML)(第二卷)

目录 一.表单标签 1.表单域 2.表单控件 2.1input标签 2.2label/select/textarea标签 2.3无语义标签 三.特殊字符 一.表单标签 用来完成与用户的交互,例如登录系统 1.表单域 <form>通过action属性,将用户填写的数据转交给服务器 2.表单控件 2.1input标签 type…

Postgresql 的编译安装与包管理安装, 全发行版 Linux 通用

博客原文 文章目录 实验环境信息编译安装获取安装包环境依赖编译安装安装 contrib 下工具代码 创建用户创建数据目录设置开机自启动启动数据库常用运维操作 apt 安装更新源安装 postgresql开机自启修改配置修改密码 实验环境信息 Ubuntu 20.04Postgre 16.1 编译安装 获取安装…

微服务学习Day3

文章目录 初始DockerDocker介绍Docker与虚拟机镜像和容器 Docker的基本操作镜像操作容器命令数据卷挂载数据卷 Dockerfile自定义镜像Docker-Compose介绍Docker-Compose部署微服务镜像仓库 初始Docker Docker介绍 Docker与虚拟机 镜像和容器 Docker的基本操作 镜像操作 容器命…

SpringCloud-Ribbon:负载均衡(基于客户端)

6. Ribbon&#xff1a;负载均衡(基于客户端) 6.1 负载均衡以及Ribbon Ribbon是什么&#xff1f; Spring Cloud Ribbon 是基于Netflix Ribbon 实现的一套客户端负载均衡的工具。简单的说&#xff0c;Ribbon 是 Netflix 发布的开源项目&#xff0c;主要功能是提供客户端的软件负…

2024LeetCode分类刷题

一、数组 88. 合并两个有序数组 public void merge(int[] nums1, int m, int[] nums2, int n) {int p1 0, p2 0;int[] sorted new int[m n];while (p1 < m || p2 < n) {int current;if (p1 m) {current nums2[p2];} else if (p2 n) {current nums1[p1];} else i…

扶贫|精准扶贫管理系统|基于Springboot的精准扶贫管理系统设计与实现(源码+数据库+文档)

精准扶贫管理系统目录 目录 基于Springboot的精准扶贫管理系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、管理员模块的实现 &#xff08;1&#xff09;用户信息管理 &#xff08;2&#xff09;贫困户信息管理 &#xff08;3&#xff09;新闻类型管理 &a…

推荐《架构探险:从零开始写Java Web框架》

版权声明 本文原创作者&#xff1a;谷哥的小弟作者博客地址&#xff1a;http://blog.csdn.net/lfdfhl 春节读了《架构探险&#xff1a;从零开始写Java Web框架》&#xff0c;一本大概10年前的好书。 本书的作者是阿里巴巴架构师黄勇。黄勇对分布式服务架构与大数据技术有深入…

C# CAD SelectionFilter下TypedValue数组

SelectionFilter是用于过滤AutoCAD实体的类&#xff0c;在AutoCAD中&#xff0c;可以使用它来选择具有特定属性的实体。构造SelectionFilter对象时&#xff0c;需要传入一个TypedValue数组&#xff0c;它用于定义选择规则。 在TypedValue数组中&#xff0c;每个元素表示一个选…

【Java程序设计】【C00251】基于Springboot的医院信息管理系统(有论文)

基于Springboot的医院信息管理系统&#xff08;有论文&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的医院信管系统 本系统分为管理员功能模块、系统功能模块以及医生功能模块。 系统功能模块&#xff1a;医院信管系统&#xff0c;…

使用securecrt+xming通过x11访问ubuntu可视化程序

windows使用securecrtxming通过x11访问ubuntu可视化程序 windows机器IP&#xff1a;192.168.9.133 ubuntu-desktop20.04机器IP&#xff1a;192.168.9.190 windows下载xming并安装 按照图修改xming配置 开始->xming->Xlaunch 完成xming会在右下角后台运行 windows在…

[GXYCTF2019]禁止套娃

进来发现只有这句话&#xff0c;习惯性访问一下flag.php&#xff0c;发现不是404&#xff0c;那就证明flag就在这了&#xff0c;接下来要想办法拿到flag.php的源码。 这道题是.git文件泄露网页源码&#xff0c;githack拿到index.php源码 这里观察到多次判断&#xff0c;首先要…

HTML5+CSS3+JS小实例:锥形渐变彩虹按钮

实例:锥形渐变彩虹按钮 技术栈:HTML+CSS+JS 效果: 源码: 【HTML】 <!DOCTYPE html> <html lang="zh-CN"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /…

如何从 iPhone 恢复已删除的视频:简单有效方法

无论您是在尝试释放空间时不小心删除了 iPhone 上的视频&#xff0c;还是在出厂时清空了手机&#xff0c;现在所有数据都消失了&#xff0c;都不要放弃。有一些方法可以恢复这些视频。 在本文中&#xff0c;我们将向您展示六种最有效的数据恢复方法&#xff0c;可以帮助您从 i…

uniapp 开发一个密码管理app

密码管理app 介绍 最近发现自己的账号密码真的是太多了&#xff0c;各种网站&#xff0c;系统&#xff0c;公司内网的&#xff0c;很多站点在登陆的时候都要重新设置密码或者通过短信或者邮箱重新设置密码&#xff0c;真的很麻烦 所以准备开发一个app用来记录这些站好和密码…

如何给最小化安装的CentOS主机装个远程桌面?

正文共&#xff1a;888 字 18 图&#xff0c;预估阅读时间&#xff1a;1 分钟 前面我们领微软云Azure的免费主机时&#xff08;白嫖党618福利&#xff01;来Azure领200美刀&#xff01;外加云主机免费用一年&#xff01;&#xff09;&#xff0c;发现“有资格免费试用服务”的主…

Ps:直接从图层生成文件(图像资源)

通过Ps菜单&#xff1a;文件/导出/将图层导出到文件 Layers to Files命令&#xff0c;我们可以快速地将当前文档中的每个图层导出为同一类型、相同大小和选项的独立文件。 Photoshop 还提供了一个功能&#xff0c;可以基于文档中的图层或图层组的名称&#xff0c;自动生成指定大…