2.23数据与结构算法学习日记(贪心)

洛谷P1109 学生分组

题目描述

有 n 组学生,给出初始时每组中的学生个数,再给出每组学生人数的上界 R 和下界 L (L≤R),每次你可以在某组中选出一个学生把他安排到另外一组中,问最少要多少次才可以使 N 组学生的人数都在 [L,R] 中。

输入格式

第一行一个整数 n,表示学生组数;

第二行 n 个整数,表示每组的学生个数;

第三行两个整数 L,R,表示下界和上界。

输出格式

一个数,表示最少的交换次数,如果不能满足题目条件输出 −1−1。

输入输出样例

输入 #1复制

2
10 20
10 15

输出 #1复制

5

说明/提示

数据范围及约定

对于全部数据,保证 1≤n≤50。

题目分析

1,贪心策略,进行模拟,首先判断是否能满足题目条件,满足题目条件的根本原因是输入n个数的总和必须满足在n组l和r的区间,所以就演变成了sum>l*n&&sum<r*n;

2,满足题目条件后,根据题目,分别统计超出右界和左界,因为右界的值是可以填补左界的,所以统计最大的值

代码示例

#include<bits/stdc++.h>
using namespace std;
int a[51],l,r,sum=0;
int main(){int n,k=0,m=0;cin>>n;for(int i=0;i<n;i++){cin>>a[i];sum+=a[i];//总和}cin>>l>>r;if(sum<l*n||sum>r*n){cout<<-1;return 0;}//判断是否符合题目条件for(int i=0;i<n;i++){if(a[i]>r)k+=a[i]-r;//超出右界if(a[i]<l)m+=l-a[i];//超出左界}printf("%d",k>m?k:m);}

洛谷P2708 硬币翻转

题目描述

有很多个硬币摆在一行,有正面朝上的,也有背面朝上的。正面朝上的用 1 表示,背面朝上的用 0 表示。

现在要求从这行的第一个硬币开始,将从第一个硬币开始的前若干个硬币同时翻面,求如果要将所有硬币翻到正面朝上,最少要进行这样的操作多少次?

输入格式

一个字符串,由 0 和 1 组成,表示硬币的初始状态。

输出格式

一个整数,表示要翻转的最少次数。

输入输出样例

输入 #1复制

10

输出 #1复制

2

说明/提示

样例解释

  • 第 1次翻转:把第一个硬币翻到反面,字符串为 00;
  • 第 2 次翻转:把第一、二个硬币一起翻到正面,字符串为 11,翻转完成,输出 2。

数据范围

记 �n 表示硬币的总个数,

  • 对于 20%20% 的数据,1≤n≤10;
  • 对于 50%50% 的数据,1≤n≤104;
  • 对于 100%100% 的数据,1≤n≤106。

题目分析 

1,运用模拟可以得出一直如果当前的值与下一个不一样,则次数肯定要加一(翻转),最后会得到一个全是1或者全是0

2.判断最后一个字符,如果是0,就再翻转一次,是1的话直接输出

3,注意,这里的翻转,是将1到i全翻转一次

代码示例

#include<iostream>
#include<cstdio>
using namespace std;
int main()
{string s;cin>>s;int sum=0;int len=s.length();for(int i=0;i<len-1;i++)//一直比较{if(s[i]!=s[i+1])sum++;}if(s[len-1]=='0')//判断加一sum++;cout<<sum;
}

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

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

相关文章

大项目中,某个cpp文件读取所在包路径的方法

在一个比较大的C项目中&#xff0c;我们有很多包&#xff0c;每个包都有一个自己的src、include、CMakeLists.txt和其它文件&#xff0c;比如以下文件结构&#xff1a; project- pkg1- datas- data.json- src- xxx1.cpp- include- xxx1.h - CMakeLists.txt- pkg2- src- xxx2.…

为什么vue3内不使用this

在 Vue 3 中&#xff0c;this 的使用受到了限制&#xff0c;主要是因为在 Vue 3 中引入了 Composition API&#xff0c;它提供了一种更灵活、更可组合的方式来组织和管理组件的逻辑。在 Composition API 中&#xff0c;不再使用传统的选项&#xff08;如 data、methods、comput…

前端(vue)数据存储方案

引言 本需求文档旨在明确前端项目中的数据存储需求&#xff0c;包括数据类型、数据结构、数据交互方式等。它定义了前端项目中需要存储和处理的数据&#xff0c;以及对这些数据进行访问和操作的要求。 功能需求 数据存储按数据类型分为 持久存储、内存存储&#xff08;响应式…

AD24-蛇形走线

一、单端蛇形走线 1、公差参数 2、布线-网络等长调节 3、参数说明 ①手工输入绕线的长度 ②参照个网络的长度绕线 ③按照自身设置的规绕线&#xff08;一般选用) 4、调节 5、最后 二、差分蛇形走线 1、布线-差分对网络等长调节 2、如在选中的时候出现问题&#xff0c;按CtrlD…

273.【华为OD机试真题】园区参观路径(动态规划-JavaPythonC++JS实现)

🚀点击这里可直接跳转到本专栏,可查阅顶置最新的华为OD机试宝典~ 本专栏所有题目均包含优质解题思路,高质量解题代码(Java&Python&C++&JS分别实现),详细代码讲解,助你深入学习,深度掌握! 文章目录 一. 题目-园区参观路径二.解题思路三.题解代码Python题解…

Linux学习方法-框架学习法——Linux应用程序编程框架

配套视频学习链接&#xff1a;https://www.bilibili.com/video/BV1HE411w7by?p4&vd_sourced488bc722b90657aaa06a1e8647eddfc 目录 Linux应用程序编程 Linux应用程序编程 Linux文件I/O(input/output) Linux文件I/O(五种I/O模型) Linux多进程 Linux多线程 网络通信(s…

集合、List、Set、Map、Collections、queue、deque

概述 相同类型的数据进行统一管理操作&#xff0c;使用数据结构、链表结构&#xff0c;二叉树 分类&#xff1a;Collection、Map、Iterator 集合框架 List接口 有序的Collection接口&#xff0c;可以对列表中的每一个元u尿素的插入位置进行精确的控制&#xff0c;用户可以根…

k8s之nodelocaldns与CoreDNS组件

在 Kubernetes 集群中&#xff0c;通常是先通过 NodeLocal DNS Cache 进行域名解析&#xff0c;如果 NodeLocal DNS Cache 没有找到对应的域名解析结果&#xff0c;才会向 CoreDNS 发起请求。在部署层面上看nodelocaldns会在每个节点上运行一个 DNS 缓存服务&#xff0c;而Core…

Qt事件过滤器

1. 事件过滤器 void QObject::installEventFilter(QObject *filterObj) bool eventFilter(QObject *obj, QEvent *event); filterObj表示事件筛选器对象&#xff0c;它接收发送到此QObject对象&#xff08;安装事件过滤器的部件对象&#xff09;的所有事件。筛选器可以停止事件…

SpringCloud-Gateway解决跨域问题

Spring Cloud Gateway是一个基于Spring Framework的微服务网关&#xff0c;用于构建可扩展的分布式系统。在处理跨域问题时&#xff0c;可以通过配置网关来实现跨域资源共享&#xff08;CORS&#xff09;。要解决跨域问题&#xff0c;首先需要在网关的配置文件中添加相关的跨域…

Qt应用软件【协议篇】websocket的介绍和代码示例

WebSocket简介 WebSocket是一种网络通信协议,它使得浏览器(客户端)和服务器之间的通信变得更加高效和实时。这种技术特别适用于需要快速、双向交换数据的应用,比如实时聊天应用、在线游戏、实时股票交易平台等。WebSocket协议在2011年被标准化(RFC 6455),它旨在通过一个…

Spring Boot 常用注解大全

以下是Spring Boot中常用的注解及其详细解释以及相应的代码示例&#xff1a; SpringBootApplication: 这个注解用于标识一个Spring Boot应用的主类。它整合了 Configuration&#xff0c;EnableAutoConfiguration 和 ComponentScan。 SpringBootApplication public class Demo…

(六)激光线扫描-三维重建

本篇文章是《激光线扫描-三维重建》系列的最后一篇。 1. 基础理论 1.1 光平面 在之前光平面标定的文章中,已经提到过了,是指 激光发射器投射出一条线,形成的一个扇形区域平面就是光平面。 三维空间中平面的公式是: A X + B Y + C Z + D = 0 A X+B Y+C Z+D=0

矿产达人小程序修复前端

应用介绍 本文来自&#xff1a;矿产达人小程序修复前端 - 源码1688 矿产达人小程序&#xff1a; 矿产小游戏小程序是一款以矿产资源为主题的休闲娱乐游戏。以下是该小程序的主要功能特点&#xff1a; 游戏画面精美&#xff1a;小程序采用卡通化的设计风格&#xff0c;画面色…

程序媛的mac修炼手册-- 小白入门Java篇

最近因为要用CiteSpace做文献综述&#xff0c;间接接触Java了。所以&#xff0c;继Python、C之后&#xff0c;又要涉猎Java了。刺激&#xff01;&#xff01; 由于CiteSpace与Java要求版本高度匹配&#xff0c;有个匹配详情明天为大家讲解。总之&#xff0c;我的Java之旅开始于…

我们有在线社区啦!快来加入一起玩儿~

&#x1f64c;大噶好呀&#xff01;春节假期转瞬即逝&#xff0c;小陈已经正式开工啦&#xff5e;虽然不知道大家啥时候收假&#xff0c;但是 RTE 开发者社区㊗️诸位&#xff1a; &#x1f9e7;&#x1f432;&#x1f647;2024 开工大吉&#x1f647;&#x1f432;&#x1f9…

企业级SAS盘SSDPM1643a PM1653 Nytro 2050 KPM71VUG3T20固态硬盘

今天给大家介绍一下KIOXIA铠侠PM7系列均衡性硬盘KPM71VUG3T20 存储容量&#xff1a;3200 GB 接口类型&#xff1a;SAS-4 读取速度&#xff1a;4,200 MB/s 写入速度&#xff1a;3,650 MB/s 工作温度&#xff1a;0 ℃ to 75 ℃ 储存温度&#xff1a;40 ℃ to 85 ℃ MTTF&a…

投放效果难衡量?如何精准提升ROI

在当前的移动互联网环境下&#xff0c;App获客和转化成为了许多应用面临的一大难题。随着广告买量成本的不断攀升&#xff0c;用户增长遭遇了瓶颈。同时&#xff0c;由于移动环境广告标识难以完整获取&#xff0c;投放效果的衡量也变得更加困难。那么&#xff0c;如何打破这一困…

跨环境前端组件库打包方案(node+esm)

背景 最近项目中需要把一个功能做成通用方案&#xff0c;抽离一个公共组件库。方案由两部分组成&#xff0c;包括一个用在页面上的组件库&#xff08;lib.ts&#xff09;&#xff0c;以及一个用在打包期间的vite插件&#xff08;plugin.ts&#xff09;。 - src- lib.ts- plug…

高录用快见刊【最快会后两个月左右见刊】第三届社会科学与人文艺术国际学术会议 (SSHA 2024)

第三届社会科学与人文艺术国际学术会议 (SSHA 2024) 2024 3rd International Conference on Social Sciences and Humanities and Arts *文章投稿均可免费参会 *高录用快见刊【最快会后两个月左右见刊】 重要信息 会议官网&#xff1a;icssha.com 大会时间&#xff1a;202…