P1428 小鱼比可爱 (洛谷)
684 字
3 分钟
P1428 小鱼比可爱 (洛谷)
题目描述
人比人,气死人;鱼比鱼,难死鱼。小鱼最近参加了一个“比可爱”比赛,比的是每只鱼的可爱程度。参赛的鱼被从左到右排成一排,头都朝向左边,然后每只鱼会得到一个整数数值,表示这只鱼的可爱程度,很显然整数越大,表示这只鱼越可爱,而且任意两只鱼的可爱程度可能一样。由于所有的鱼头都朝向左边,所以每只鱼只能看见在它左边的鱼的可爱程度,它们心里都在计算,在自己的眼力范围内有多少只鱼不如自己可爱呢。请你帮这些可爱但是鱼脑不够用的小鱼们计算一下。
输入格式
第一行输入一个正整数 ,表示鱼的数目。
第二行内输入 个非负整数,用空格间隔,依次表示从左到右每只小鱼的可爱程度 。
输出格式
一行,输出 个整数,用空格间隔,依次表示每只小鱼眼中有多少只鱼不如自己可爱。
输入输出样例 #1
输入 #1
64 3 0 5 1 2输出 #1
0 0 0 3 1 2说明/提示
对于 的数据,,。
题解与分析
解题突破口
观察到数据范围 非常小。对于这种较小的数据量,我们可以直接使用时间复杂度为 的**双重循环(暴力枚举)**来解决。
具体思路如下:
- 首先,我们将所有小鱼的可爱程度存储在一个数组(或列表)中。
- 外层循环遍历每一只小鱼,假设当前小鱼的索引为
i。 - 对于每一只小鱼
i,我们需要统计在它左边(即索引从0到i-1)有多少只小鱼的可爱程度严格小于它(a[j] < a[i])。 - 内层循环遍历
0到i-1,用一个计数器count记录符合条件的小鱼数量。 - 将得到的
count依次输出即可。
代码实现
C++ 版本
#include <iostream>#include <vector>using namespace std;
int main() { int n; cin >> n;
vector<int> a(n); for (int i = 0; i < n; i++) cin >> a[i]; // 读取所有小鱼的可爱程度
for (int i = 0; i < n; i++) { int count = 0; for (int j = 0; j < i; j++) { // 遍历左边的小鱼 if (a[j] < a[i]) count++; } cout << count << (i == n - 1 ? "" : " "); } return 0;}Python 版本
n = int(input())a = list(map(int, input().split()))
# 列表推导式配合 sum 统计左边比自己小的值的数量result = [str(sum(1 for j in range(i) if a[j] < a[i])) for i in range(n)]
print(" ".join(result)) 相关文章 智能推荐
1
P1307 [NOIP 2011 普及组] 数字反转 (洛谷)
算法笔记 洛谷 P1307 [NOIP 2011 普及组] 数字反转的题解与代码实现。
2
P1089 [NOIP 2004 提高组] 津津的储蓄计划 (洛谷)
算法笔记 洛谷 P1089 [NOIP 2004 提高组] 津津的储蓄计划的题解与代码实现。
3
绵阳城市学院教务处密码加密算法分析
算法笔记 绵阳城市学院教务处登录密码加密算法分析。
4
绵阳城市学院校园网 Srun Portal 认证逆向分析
算法笔记 通过浏览器抓包与前端 JavaScript 分析,使用 Go 语言完整还原 Srun Portal 校园网认证流程,包括 HMAC-MD5、XXTEA、自定义 Base64 等加密算法的逐步分析。
5
绵阳城市学院某老师DeepAI查重系统v6.0分析
逆向工程 对绵阳城市学院某老师提供的 DeepAI 查重系统 v6.0 进行逆向分析,还原 PyInstaller 打包的 Python 源码,揭示其核心查重算法本质。
随机文章 随机推荐