贪心算法4(c++)

过河的最短时间
题目描述
输入
在漆黑的夜里,N位旅行者来到了一座狭窄而且没有护栏的桥边。如果不借助手电筒的话,大家是无论如何也不敢过桥去的。不幸的是,N个人一共只带了一只手电筒,而桥窄得只够让两个人同时过,如果各自单独过桥的话,N人所需要的时间已知:而如果两人同时过桥,所需要的时间就是走得比较慢的那个人单独行动时所需的时间。问题是,如何设计一个方案,让这N人尽快过桥,计算成绩这N个人的最短过桥时间。
每组测试数据的第一行是一个整数N(1<=N<=1000)表示共有N个人要过河
每组测试数据的第二行是N个整数Si,表示这N个人过河所需要花时间。(0<Si<=100)
输出
比如:有四个人甲乙丙丁,他们过河需要的时间分别为,甲:1乙:2丙:5所有人过河的最短时间悶Ž閨辰:10第一种办法:最快的2个人先过桥,然后让跑的最快的人来回去接剩下的人:先让甲乙过去(2分钟),甲回来(1分钟),甲丙过去(5分钟),甲回来(1分钟),甲丁再过去(10分钟),总共需要19分钟就可以让四个人都过去。第二种办法:让最慢的地2个人一起过桥,减少最慢的人在桥上的次数先让甲乙过去(2分钟),甲回来(1分钟),丙丁过去(10分钟),乙回来(2分钟),甲乙再过去(2分钟)总共需要17分钟可以让四个人都过去。。那么最慢的时间就是需要17分钟!
样例
输入复制
4
1 2 5 10
输出复制
17

#include <iostream>
#include <algorithm>
using namespace std;
int main()
{int n;cin>>n;int a[1010] = {0};for(int i = 0;i<n;i++){cin>>a[i];}sort(a+0,a+n);int k1 = n-2;int k2 = n-1;int t = a[1];while(true){int t1 = a[0]+a[k2]+a[1]+a[1];int t2 = a[0]+a[k2]+a[0]+a[k1];if(t1<t2) t = t+t1;else t = t+t2;k1--;k1--;k2--;k2--;if(k1==0||k1==1) break;}if(k1==1) t = t+a[0]+a[3];cout<<t;return 0;
}

特殊密码锁
描述有一种特殊的二进制密码锁,由n个相连的按钮组成(n<30),按钮有凹/凸两种状态,用手按按钮会改变其状态。然而让人头疼的是,当你按一个按钮时,跟它相邻的两个按钮状态也会反转。当然,如果你按的是最左或者最右边的按钮,该按钮只会影响到跟它相邻的一个按钮。
当前密码锁状态已知,需要解决的问题是,你至少需要按多少次按钮,才能将密码锁转变为所期望的目标状态,
输入
两行,给出两个由0、1组成的等长字符串,表示当前/目标密码锁状态,其中0代表凹,1代表凸。输出
至少需要进行的按按钮操作次数,如果无法实现转变,则输出impossible
样例输入
011
000
样例输出

1

#include <iostream>
#include <algorithm>
using namespace std;
int main()
{string a,b;cin>>a>>b;int cnt = 0;for(int j = 0;j<10;j++){for(int i = 0;i<a.size();i++){if(a==b){cout<<cnt;return 0;}if(a[i]!=b[i]){if(i==0&&a[0]!=b[0]&&a[1]!=b[1]&&a[2]==b[2]){cnt++;a[0] = b[0];a[1] = b[1];i = i+2;}else if(i==0&&a[0]!=b[0]&&a[1]!=b[1]&&a[2]!=b[2]){cnt++;a[0] = b[0];a[1] = b[1];a[2] = b[2];i = i+3;}else{int ii = i+1;if(ii<a.size()){int i2 = (int)(a[ii]-48);i2 = (i2+1)%2;a[ii] = (char)(i2+48);}if(ii<a.size()){int i3 = (int)(a[ii+1]-48);i3 = (i3+1)%2;a[ii+1] = (char)(i3+48);}if(ii>=0){int i1 = (int)(a[ii-1]-48);i1 = (i1+1)%2;a[ii-1] = (char)(i1+48);}cnt++;}}}}cout<<"impossible";return 0;
}

#include <bits/stdc++.h>
using namespace std;
int main()
{int n,m;cin>>n>>m;int a[1010] = {0};for(int i = 0;i<n;i++){cin>>a[i];}if(n<=m){cout<<a[n-1];return 0;}int b[1010] = {0};for(int i = 0;i<m;i++){b[i] = a[i];}for(int i = m;i<n;i++){sort(b+0,b+m);b[0] = b[0]+a[i];}sort(b+0,b+n);cout<<b[n-1];return 0;
}

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

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

相关文章

YOLOv8_pose预测流程-原理解析[关键点检测理论篇]

YOLOv8_seg的网络结构图在博客YOLOv8网络结构介绍_CSDN博客已经更新了,由网络结构图可以看到相对于目标检测网络,实例分割网络只是在Head层不相同,如下图所示,在每个特征层中增加了KeyPoint分支(浅绿色),通过两个卷积组和一个Conv卷积得到得到通道数为51的特征图,51表示…

window环境下QT5开发环境的搭建

1、安装visual Stusio 15 生成工具2012 2、安装Visual studio Enterprise 2017 3、Visual studio Enterprise 2017安装完成之后&#xff0c; 修改&#xff1a;选择桌面调试&#xff0c;如下&#xff1a; 4、打开QTcreator&#xff0c;选项中&#xff0c;配置编译器&#xff…

摸鱼大数据——Hive基础理论知识——Hive环境准备

Hive环境准备 1、shell脚本执行方式 方式1: sh 脚本 注意: 需要进入脚本所在目录,但脚本有没有执行权限不影响执行 方式2: ./脚本 注意: 需要进入脚本所在目录,且脚本必须有执行权限 方式3: /绝对路径/脚本 注意: 不需要进入脚本所在目录,但必须有执行…

线程池,日志

所要用到的知识点&#xff1a; 多线程的创建 生产消费模型&#xff0c; 线程锁 条件变量 代码&#xff1a; 线程池日志

基于STC12C5A60S2系列1T 8051单片机的TM1638键盘数码管模块的数码管显示与单片机连接的按键的按键值的功能

基于STC12C5A60S2系列1T 8051单片机的TM1638键盘数码管模块的数码管显示与单片机连接的按键的按键值应用 STC12C5A60S2系列1T 8051单片机管脚图STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式及配置STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式介绍TM1638键盘数码…

C++面向对象程序设计 - 输入和输出

程序的输入指的是文件将数据传送给程序&#xff0c;程序的输出指的是从程序将数据传送输出文件。 C的输入和和输出包括以下三个方面&#xff1a; 对系统指定的标准设备的输入和输出&#xff0c;即从键盘输入数据&#xff0c;输出到显示器屏幕。以外存磁盘&#xff08;或光盘、…

初探 Spring Boot Starter Security:构建更安全的Spring Boot应用

引言 Spring Boot 作为 Java 生态系统下的热门框架&#xff0c;以其简洁和易上手著称。而在构建 Web 应用程序时&#xff0c;安全性始终是开发者必须重视的一个方面。Spring Boot Starter Security 为开发者提供了一个简单但功能强大的安全框架&#xff0c;使得实现身份验证和…

从动态代理角度简单理解Spring AOP

1. 概述 动态代理 是指在运行时&#xff0c;动态地创建目标类的代理对象&#xff0c;并对其中特定的方法进行拦截或增强的技术。这种技术主要用于在不修改目标类代码的情况下&#xff0c;增强目标类的功能。 在Java中&#xff0c;动态代理主要基于Java的反射机制和接口来实现…

gdc2024:Raytracing in Snowdrop技术实现与性能优化策略

在今年的GDC&#xff08;游戏开发者大会&#xff09;的Advanced Graphics Summit上&#xff0c;关于Snowdrop引擎中光线追踪技术的讨论引起了广泛关注。 一、光线追踪全局照明的实现细节 屏幕空间追踪&#xff1a; 屏幕空间追踪从相机出发&#xff0c;对屏幕上的每个像素点生成…

DDL—表—数据类型—字符串类型相关语法

&#xff08;1&#xff09;表格可视化 普通字符串 类型大小描述CHAR0~255 bytes定长字符串&#xff0c;其表示即使你存储一个字符&#xff0c;它也会占用你括号里个数的字符的空间&#xff0c;因为未占用的字符的其它空间会用空格进行补位。需要再后面跟一个参数&#xff1a;…

harmony 鸿蒙ArkUI动画/交互事件开发常见问题(ArkTS)

ArkUI动画/交互事件开发常见问题(ArkTS) 焦点事件onBlur/onFocus回调无法触发(API 9) 问题现象 焦点事件onBlur/onFocus回调无法触发 解决措施 焦点事件默认情况下需要外接键盘的Tab键&#xff0c;或方向键触发&#xff0c;点击触发焦点事件需要添加焦点控制属性focusOnTo…

Linux 监控USB硬盘插拔事件并自动挂载和卸载

定义udev规则来监控USB插拔事件。 一、在/etc/udev/rules.d目录下随意创建一个规则文件&#xff0c;例&#xff1a;99-usb-mount.rules KERNEL"sd[b-z]?",SUBSYSTEM"block",RUN"/usr/local/src/mountusb.sh %k $env{ACTION}"二、创建 /usr/lo…

基于arm64架构国产操作系统|Linux下的RTMP|RTSP低延时直播播放器开发探究

技术背景 2014年4月8日起&#xff0c;美国微软公司停止了对Windows XP SP3操作系统提供服务支持&#xff0c;这引起了社会和广大用户的广泛关注和对信息安全的担忧。而2020年对Windows7服务支持的终止再一次推动了国产系统的发展。工信部对此表示&#xff0c;将继续加大力度&a…

C++ 红黑树

目录 1.红黑树的概念 2.红黑树的性质 3.红黑树节点的定义 4.红黑树的插入操作 5.数据测试 1.红黑树的概念 红黑树&#xff0c;是一种二叉搜索树&#xff0c;但在每个结点上增加一个存储位表示结点的颜色&#xff0c;可以是Red或Black。 通过对任何一条从根到叶子的路径上各个…

C++基础与深度解析 | 泛型算法 | bind | Lambda表达式

文章目录 一、泛型算法1.泛型算法的分类2.迭代器分类 二、bind与lambda表达式1.bind2.lambda表达式 三、泛型算法的改进--ranges(c20) 一、泛型算法 C中的泛型算法是标准模板库&#xff08;STL&#xff09;的一部分&#xff08;这里重点讨论 C 标准库中定义的算法&#xff0c;而…

【vue-cli搭建vue项目的过程2.x】

vue-cli搭建vue项目 vue-cli搭建vue项目安装node安装vue-cli脚手架并创建项目安装 Ant Design Vue或element-ui(笔者使用Ant-design-vue组件&#xff0c;并全局引入)开发安装三方库包1、Package.json文件---引入如下package.json文件执行npm i或npm install命令即可下载如下依赖…

数据结构~~链式二叉树

目录 一、基本概念 链式存储概念 二、链式二叉树的结构 链式二叉树结构 构建链式二叉树 二叉树的遍历 二叉树节点和高度等 二叉树销毁 三、链式二叉树的练习 相同的树 对称二叉树 另外一颗子树 二叉树前序遍历 二叉树遍历 四、完整代码 Tree.h Tree.c 五、总结 一…

Linux服务升级:Predixy 升级代理 Redis-cluster 集群

目录 一、实验 1.环境 2. 启动Redis服务 3.Predixy 升级代理 Redis-cluster 集群 二、问题 1. Predixy进行set操作报错 2.如何创建脚本启动predixy 3.Redis代理对比 一、实验 1.环境 &#xff08;1&#xff09;主机 表1 主机 系统版本节点软件IP备注CentOS7.9Redis…

Springboot开发 -- Postman 调试类型详解

引言 在 Spring Boot 应用开发过程中&#xff0c;接口测试是必不可少的一环。Postman 作为一款强大的 API 开发和测试工具&#xff0c;可以帮助开发者轻松构建、测试和管理 HTTP 请求。本文将为大家介绍如何在 Spring Boot 开发中使用 Postman 进行接口测试。 一、准备工作 安…

C/C++|malloc分配内存详解

看本节前&#xff0c;希望读者有linux内存分布的基本概念&#xff0c;可以阅读这篇文章&#xff1a; 进程虚拟地址空间和函数调用栈 在本节中希望读者可以一口气阅读完所有内容。 本博客内容全部来自小林coding&#xff1a;malloc 是如何分配内存的&#xff1f; 这里仅为笔记记…