每日OJ题_牛客_春游_贪心+数学_C++_Java

news2024/11/28 7:41:20

目录

牛客_春游_贪心+数学

题目解析

C++代码

Java代码


牛客_春游_贪心+数学

春游

描述:

盼望着,盼望着,东风来了,春天脚步近了。

值此大好春光,老师组织了同学们出去划船,划船项目收费如下:

双人船最多坐两人,也可以坐一人,收费a{a}a元

三人船最多坐三人,也可以坐两人或者一人,收费b{b}b元

本次出游加上带队老师共n{n}n人,如何安排能使得花费最小呢?

输入描述:

第一行给出一个正整数 T(1≤T≤1000)T(1 \le T \le 1000)T(1≤T≤1000),代表测试数据的组数。

接下来 T 行每行给出三个正整数n,a,b,1≤n,a,b≤10^9,含义如题。

输出描述:

每组输入输出一行,代表最小的花费


题目解析

        优先选性价比最高的,然后小部分改动。考虑如果先选2更优,那么最多可能选1个3,因为2和3的最小公倍数是6,如果选了2个3不如选3个2。再考虑先选3更优,那么可能会选择1个2或者2个2,如果选择3个2不如选择2个3更优。所以从这5种情况里找最优解就好了。

C++代码

#include <iostream>
using namespace std;
#define int long long

int t;
int n, a, b;

int fun()
{
    if(n <= 2)
        return min(a, b);
    int ret = 0;
    if(a * 3 < b * 2) // 尽可能的选择双⼈船
    {
        ret += n / 2 * a;
        n %= 2;
        if(n)
            ret += min(min(a, b), b - a);
    }
    else // 尽可能的选择三⼈船
    {
        ret += n / 3 * b;
        n %= 3;
        if(n == 1)
            ret += min(min(a, b), 2 * a - b);
        if(n == 2)
            ret += min(min(a, b), 3 * a - b);
    }
    return ret;
}

signed main()
{
    cin >> t;
    while(t--)
    {
        cin >> n >> a >> b;
        cout << fun() << endl;
    }

    return 0;
}

Java代码

import java.util.*;
public class Main
{
    public static void main(String[] s)
    {
        Scanner in = new Scanner(System.in);
        int t = in.nextInt();
        while(t-- != 0)
        {
            long n = in.nextLong(), a = in.nextLong(), b = in.nextLong();
            long ret = 0;
            if(n <= 2) // 边界情况
            {
                ret = Math.min(a, b);
            }
            else
            {
                if(a * 3 < b * 2) // 尽可能的选择双⼈船
                {
                    ret += n / 2 * a;
                    n %= 2;
                    if(n == 1)
                    {
                        ret += Math.min(Math.min(a, b), b - a);
                    }
                }
                else // 尽可能的选择三⼈船
                {
                    ret += n / 3 * b;
                    n %= 3;
                    if(n == 1)
                        ret += Math.min(Math.min(a, b), 2 * a - b);
                    if(n == 2)
                        ret += Math.min(Math.min(a, b), 3 * a - b);
                }
            }
            System.out.println(ret);
        }
    }
}

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

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

相关文章

关于elementui el-radio 赋值问题

今天遇到这样的问题&#xff1a; 点击的时候&#xff0c;同时选中 照抄官网&#xff01; 后来发现了问题&#xff1a; 也就是说如果你的版本太低&#xff0c;就不能用value&#xff0c;而得用label&#xff0c;于是修改 <el-radio-group v-model"searchTime"&g…

设计者模式之策略模式

前言 在软件构建过程中&#xff0c;某些对象使用的算法可能多种多样&#xff0c;经常改变&#xff0c;如果将这些算法都写在对象中&#xff0c;将会使对象变得异常复杂&#xff1b;而且有时候支持不频繁使用的算法也是一个性能负担。 如何在运行时根据需要透明地更改对象的算…

MetaGeneMark:宏转录组转录本基因预测

GeneMark™ download 下载 gunzip gm_key_64.gz tar -xvzf MetaGeneMark_linux_64.tar.gz #查看安装 (完整路径)/gmhmmp #解压文件里面这个比较重要 MetaGeneMark_linux_64/mgm/MetaGeneMark_v1.mod #复制gm_key文件到主路径 mv gm_key_64 .gm_key cp .gm_key /home/zhongpei…

阿里云-防火墙设置不当导致ssh无法连接

今天学网络编程的时候&#xff0c;看见有陌生ip连接&#xff0c;所以打开了防火墙禁止除本机之外的其他ip连接&#xff1a; 但是当我再次用ssh的时候&#xff0c;连不上了才发现大事不妙。 折腾了半天&#xff0c;发现阿里云上可以在线向服务器发送命令&#xff0c;所以赶紧把2…

【go从零单排】Strings and Runes 字符串和字符

Don’t worry , just coding! 内耗与overthinking只会削弱你的精力&#xff0c;虚度你的光阴&#xff0c;每天迈出一小步&#xff0c;回头时发现已经走了很远。 概念 在Go语言中&#xff0c;rune 是一个内置的数据类型&#xff0c;用于表示一个Unicode字符。它实际上是一个别名…

JDK1.5 java代码打包jar HmacSha256

文章目录 demo地址背景实现编写代码编译class文件打包 JAR 文件执行生成的 JAR 文件辅助验证方式 常见问题和解决方法常规生成jar方案maven插件idea工具 demo地址 https://github.com/xiangge-zx/HmacSha256 背景 最近接到一个需求,做一个可以用来HmacSha256加密的小工具&am…

履带机器人(一、STM32控制部分--标准库)

一、履带机器人整体逻辑框架 通过在PC端搭建上位机,使得在PC端可以给STM32发送控制指令并且接受STM32的状态信息。 通过RS485通信,使得STM32可以和电机进行通信,STM32发送启动、停止、转速、方向等指令,并接受电机返回的状态信息。 二、STM32逻辑框架 整体逻辑: 1、先…

yakit中的规则详细解释

官方文档 序列前置知识之高级配置 | Yak Program Language 本文章多以编写yaml模版的视角来解释 规则一览 匹配器 在编写yaml中会使用到这里两个东西 点击添加会在返回包的右下角出现匹配器 上面有三个过滤器模式&#xff0c;官方解释 丢弃&#xff1a;丢弃模式会在符合匹配…

从0开始学习机器学习--Day14--如何优化神经网络的代价函数

在上一篇文章中&#xff0c;解析了神经网络处理分类问题的过程&#xff0c;类似的&#xff0c;在处理多元分类问题时&#xff0c;神经网络会按照类型分成多个输出层的神经元来表示&#xff0c;如下&#xff1a; 处理4个分类问题时的神经网络 我们可以看到&#xff0c;相较于之…

LINUX下的Myql:库的操作

目录 1.库的创建 2.字符集和校验集 1.查看db1默认的字符集合校验集 2.设置字符集和校验集 3.库的查看 4.数据库的修改 5.数据库的删除 6.数据库的备份 1.库的创建 create database db1; 创建一个名为db1的数据库&#xff0c;LINUX会创建一个名为db1的文件夹。 show data…

Java多线程详解⑤(全程干货!!!)线程安全问题 || 锁 || synchronized

这里是Themberfue 在上一节的最后&#xff0c;我们讨论两个线程同时对一个变量累加所产生的现象 在这一节中&#xff0c;我们将更加详细地解释这个现象背后发生的原因以及该如何解决这样类似的现象 线程安全问题 public class Demo15 {private static int count 0;public …

【taro react】 ---- 常用自定义 React Hooks 的实现【六】之类渐入动画效果的轮播

1. 效果 2. 场景 css 效果实现:可以看到效果图中就是一个图片从小到大的切换动画效果,这个效果很简单,使用 css 的 transform 的 scale 来实现图片的从小到大的效果,切换就更加简单了,不管是 opacity 还是 visibility 都可以实现图片的隐藏和显示的切换。React.Children.m…

杨辉三角,洗牌算法

杨辉三角 给定一个非负整数numRows&#xff0c;生成杨辉三角的前numRows行。 在杨辉三角中&#xff0c;每个数是它的左上方和右上方的数的和。 public List<List<Integer>> generate(int numRows){List<List<Integer>> ret new ArrayList<>();…

ssm068海鲜自助餐厅系统+vue(论文+源码)_kaic

设计题目&#xff1a;海鲜自助餐厅系统的设计与实现 摘 要 网络技术和计算机技术发展至今&#xff0c;已经拥有了深厚的理论基础&#xff0c;并在现实中进行了充分运用&#xff0c;尤其是基于计算机运行的软件更是受到各界的关注。加上现在人们已经步入信息时代&#xff0c;所…

ENSP ISOLATE隔离区域

如果用户想进行二层隔离&#xff0c;用户可以将不同的端口加入不同的VLAN&#xff0c;但这样会浪费有限的VLAN资源。采用端口隔离功能&#xff0c;可以实现同一VLAN内端口之间的隔离。用户只需要将端口加入到隔离组中&#xff0c;就可以实现隔离组内端口之间二层数据的隔离。端…

自攻螺钉的世纪演变:探索关键设计与应用

自攻螺钉作为现代工业和建筑中的不可或缺的标准部件&#xff0c;经过了超过100年的发展和创新。从1914年最早的铁螺钉设计到今天的自钻自攻螺钉&#xff0c;自攻螺钉的设计不断优化&#xff0c;以适应更复杂的应用需求。本文将回顾自攻螺钉的演变历程&#xff0c;分析其设计原理…

KTHREAD结构-->ApcState

1. ApcListHead[2] 2. KernelApcInProgress

深入浅出 Spring Boot 与 Shiro:构建安全认证与权限管理框架

一、Shiro框架概念 &#xff08;一&#xff09;Shiro框架概念 1.概念&#xff1a; Shiro是apache旗下一个开源安全框架&#xff0c;它对软件系统中的安全认证相关功能进行了封装&#xff0c;实现了用户身份认证&#xff0c;权限授权、加密、会话管理等功能&#xff0c;组成一…

魅力标签云,奇幻词云图 —— 数据可视化新境界

目录 目的原理详解建议 标签云&#xff1a;用于汇总生成的标签&#xff0c;一般是独立词汇运行前的准备代码示例 词云&#xff1a;对本文中出现频率较高的词&#xff0c;视觉上突出显示总结 目的 掌握文本与文档可视化&#xff1a;使用特定软件或编程语言&#xff08;如Python…

正则表达式在Kotlin中的应用:提取图片链接

在现代的Web开发中&#xff0c;经常需要从网页内容中提取特定的数据&#xff0c;例如图片链接。Kotlin作为一种现代的编程语言&#xff0c;提供了强大的网络请求和文本处理能力。本文将介绍如何使用Kotlin结合正则表达式来提取网页中的图片链接。 正则表达式基础 正则表达式是…