当前位置: 首页 > news >正文

[LGR-233-Div.4]洛谷入门赛#37——8道题题解

大家好,我是Zac。不知道各位氪官有木有参加昨天晚上的洛谷入门赛,如果参加了的话,欢迎各位神犇小伙伴们把自己的排名打在评论区~(反正本蒟蒻排名570,最后一道题点上提交键了结果21:00了qwq)

T1 季风

题目描述

已是夏季,S 市刮起了季风。N 大学环境学院对某日的季风进行了监测,监测结果为两个非零整数 a,b。

  • a 表示在南北方向上的风速,若 a>0 则表示刮风速为 a 米每秒的北风,若 a<0 则表示刮风速为 −a 米每秒的南风。
  • b 表示在东西方向上的风速,若 b>0 则表示刮风速为 b 米每秒的东风,若 b<0 则表示刮风速为 −b 米每秒的西风。

请你判断季风的实际方向,具体地:

  • 若在南北方向上刮北风,东西方向上刮东风,则实际方向为东北,输出 NorthEast
  • 若在南北方向上刮北风,东西方向上刮西风,则实际方向为西北,输出 NorthWest
  • 若在南北方向上刮南风,东西方向上刮东风,则实际方向为东南,输出 SouthEast
  • 若在南北方向上刮南风,东西方向上刮西风,则实际方向为西南,输出 SouthWest

输入格式

输入一行两个用空格分隔的非零整数 a,b。

输出格式

输出一行一个字符串,表示季风的方向。字符串的格式如【题目描述】中所述。

输入输出样例

输入 #1

1 2

输出 #1

NorthEast

输入 #2

-20 20

输出 #2

SouthEast

说明/提示

样例 1 解释

由于 a>0,则在南北方向上刮北风;由于 b>0,则在东西方向上刮东风。

因此实际方向为东北,输出 NorthEast

数据范围与约定

对于全部数据,满足 1≤∣a∣,∣b∣≤20。

其中,∣x∣ 代表 x 的绝对值,即,将 x 的符号去掉后得到的非负值。如果 x 是正数和 0,∣x∣=x;如果 x 是负数,∣x∣=−x。

思路:

这道题其实是一道水题,只要你找到了方法。

题目要求根据给定的两个非零整数a和b来判断季风的方向。

根据题目描述:

- a表示南北方向:a>0为北风(风速a米/秒),a<0为南风(风速|a|米/秒,但方向是南)。

- b表示东西方向:b>0为东风(风速b米/秒),b<0为西风(风速|b|米/秒,方向是西)。

实际方向由南北和东西方向的组合决定:

北风 + 东风 -> 东北(NorthEast)

北风 + 西风 -> 西北(Northwest)

南风 + 东风 -> 东南(Southeast)

南风 + 西风 -> 西南(Southwest)

注意:题目明确a和b都是非零整数,所以不需要考虑为零的情况。

因此,我们可以根据a和b的正负来组合:

a>0 表示北风,a<0 表示南风。

b>0 表示东风,b<0 表示西风。

具体判断:

如果a为正,b为正,输出"NorthEast"

如果a为正,b为负,输出"Northwest"

如果a为负,b为正,输出"Southeast"

如果a为负,b为负,输出"Southwest"

所以,我们只需要取这四个字符中的一个即可,也就是先判断南北方向,再分别判断东西方向。

AC Code:

#include <iostream>
using namespace std;
int main() {int a, b;cin >> a >> b;if (a > 0) {if (b > 0) {cout << "NorthEast";} else {cout << "NorthWest";}} else {if (b > 0) {cout << "SouthEast";} else {cout << "SouthWest";}}return 0;
}

T2 购票

题目描述

H 市 W 公园的门票分为单次票和年票,单次票的售价为 a 元,年票的售价为 b 元。若购买年票,则可以在今年无限次进入公园。

今年你想去 n 次 W 公园,你最少要花多少钱购买门票?

输入格式

输入一行三个由空格分隔的非负整数 n,a,b。

输出格式

输出一行一个整数,表示购买门票的最少花费。

输入输出样例

输入 #1

100 1 50

输出 #1

50

输入 #2

2 10 50

输出 #2

20

输入 #3复制

987654321 123456789 999999999999999999

输出 #3复制

121932631112635269

输入 #4复制

0 100 200

输出 #4复制

0

说明/提示

样例 1 解释

如果购买单次门票,则总花费为 100×1=100 元。

如果购买年票,则总花费为 50 元。

因此购买年票可以使总花费最少,最少花费为 50 元。

样例 2 解释

如果购买单次门票,则总花费为 2×10=20 元。

如果购买年票,则总花费为 50 元。

因此购买单次门票可以使总花费最少,最少花费为 20 元。

样例 3 解释

请注意答案可能超过 int 类型所能表示的范围。

样例 4 解释

输入的数据中可能含有 0。

数据范围与约定

对于全部数据,满足 0≤a,b,n≤1018。各测试点的详细数据范围见下表。

测试点特殊性质
1∼120≤a,b,n≤104
13∼160≤a,b,n≤109
17∼20

思路 

这道题其实是一道水题,只要你找到了方法。

题目描述:

小G有一排n台抽奖机,从第1台开始依次游玩。初始积分x。

对于第i台抽奖机,需要a_i积分才能玩,玩完后获得b_i积分(注意:玩之前需要满足当前积分>=a_i,玩之后积分变化:当前积分 = 当前积分 - a_i + b_i)。

游玩规则:

1. 从第1台开始,依次游玩。

2. 在游玩第i台之前,如果当前积分 < a_i,则停止游玩(并且不再游玩后面的)。

3. 在游玩第i台之后,如果当前积分 >= y,则停止游玩(不再游玩后面的)。

给定n, x, y,以及每台抽奖机的a_i和b_i,求小G停止游玩后拥有的积分数量。

输入格式:

第一行:n, x, y 接下来n行:每行两个正整数a_i, b_i 输出格式: 一个整数,表示最终积分。

注意:游玩是依次进行的,可能因为不够钱玩下一台而停止,也可能因为达到y分而提前停止。

示例:

假设n=2, x=10, y=100。

第一台:a1=5, b1=10 -> 游玩前10>=5,可以玩,玩后积分=10-5+10=15

第二台:a2=10, b2=100 -> 游玩前15>=10,可以玩,玩后积分=15-10+100=105,然后105>=y(100),停止。所以输出105。

另一种情况:

n=2, x=10, y=100 。

第一台:a1=5, b1=10 -> 玩后15

第二台:a2=20, b2=100 -> 当前15<20,所以不能玩第二台,停止。最终积分15。

因此,我们需要模拟过程:

当前积分 = x 从第一台到第n台,依次判断:

如果当前积分 < a_i:则停止,输出当前积分。

否则,玩这台抽奖机:当前积分 = 当前积分 - a_i + b_i

然后判断当前积分是否>=y,如果是,则停止,输出当前积分。

如果所有机器都玩完了,则输出最后的积分。

注意:题目要求是依次游玩,并且每台只能玩一次

由于n最大是10^18,我们可以使用循环模拟。

代码步骤:

1. 读入n, x, y。

2. 用循环读入n组a_i和b_i,可以存储到两个数组,或者直接边读边处理(因为不需要重复使用,而且顺序处理)。

3. 初始化当前积分cur = x。

4. 遍历每一台抽奖机(i从0到n-1):

if cur < a_i: 则break跳出循环。

 else: cur = cur - a_i + b_i

if cur >= y: break跳出循环

5. 输出cur。

但是注意:题目中在游玩后如果积分>=y则停止,所以先判断是否满足条件再决定是否继续。

考虑边界:可能一台都不能玩,那么直接输出x。

例如:n=1, x=0, a1=10 -> 不能玩,输出0。 因此,我们按上述模拟。

AC code:

#include <iostream>
using namespace std;
int main() {long long n, a, b;cin >> n >> a >> b;if (a * n > b) {cout << b << endl;} else {cout << a * n << endl;}return 0;
}

T3 百万富翁

http://www.dtcms.com/a/287789.html

相关文章:

  • CF 训练 2 D - E参考代码
  • 面试高频题 力扣 130. 被围绕的区域 洪水灌溉(FloodFill) 深度优先遍历(dfs) 暴力搜索 C++解题思路 每日一题
  • Maven 依赖管理
  • 5.组合模式
  • lowbit小解
  • C#操作WPS表格
  • LVS工作模式和算法的总结
  • 【RK3576】【Android14】摄像头MIPI开发调试
  • 基于单片机智能插座设计/智能开关
  • 了解pycharm的基本运用
  • Qt笔记整理(1)
  • 使用PyInstaller打包 Python 工程
  • 【C++基础】内存对齐原则与性能影响:面试高频考点与真题解析
  • CSS篇——第二章 六十五项关键技能(下篇)
  • 统计学习方法的三要素
  • Github Actions Workflows 上传 Dropbox
  • 物联网-规则引擎的定义
  • 解决问题七大步骤
  • python基础复习
  • 【RL第一篇】强化学习入门:核心概念全面详解
  • 永磁同步电机控制算法--弱磁控制(变交轴CCR-VQV)
  • vue2 面试题及详细答案150道(141 - 150)
  • VUE2 学习笔记1
  • ndexedDB 与 LocalStorage:全面对比分析
  • 4 ASPICE的支持过程
  • docker构建springboot镜像
  • 【初识数据结构】CS61B中的基本图算法:DFS, BFS, Dijkstra, A* 算法及其来历用法
  • 字节跳动开源Seed-X 7B多语言翻译模型:28语种全覆盖,性能超越GPT-4、Gemini-2.5与Claude-3.5
  • 【开源项目】GPT学术优化 - GPT Academic
  • 探秘边缘安全架构设计要点解析