2955 问题 I: 疯狂动物城报名
时间限制: 2.0 Sec 内存限制: 128 MB
https://oj.coolguymaker.com/problem.php?tag=contest&cid=5353&pid=8
时间限制: 2.0 Sec 内存限制: 128 MB
时间限制: 2.0 Sec 内存限制: 128 MB
时间限制: 2.0 Sec 内存限制: 128 MB
c++ 问题 疯狂动物城报名
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- 阿里嘎多学长 2024-05-25 16:59关注
以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:
关于您提到的“疯狂动物城报名”的编程问题,这是一个典型的算法问题,它要求您编写一个程序来确定一系列动物身高数据中某些特定身高值的首次和最后一次出现的位置。根据搜索结果[^1^][^2^],这个问题通常涉及到以下步骤:
-
输入处理:读取队伍中的动物人数
n
和需要统计的身高数目m
,然后读取队伍中每个动物的身高数据,以及需要查询的身高值。 -
排序:确保输入的身高数据是按从小到大的顺序排列的。
-
查询处理:对于每个查询的身高值,找到它在队伍中的首次和最后一次出现的位置。
-
输出:对于每个查询的身高值,输出其在队伍中的起止位置。如果没有找到,则输出
-1 -1
。
下面是一个简单的C++代码示例,用于解决这个问题:
#include <iostream> #include <vector> #include <algorithm> using namespace std; // 函数用于找到特定身高值的首次和最后一次出现的位置 pair<int, int> findPositions(vector<int>& heights, int target) { int first = -1, last = -1; for (int i = 0; i < heights.size(); ++i) { if (heights[i] == target) { if (first == -1) first = i; // 首次出现的位置 last = i; // 最后一次出现的位置 } } return {first, last}; } int main() { int n, m; cin >> n >> m; vector<int> heights(n); vector<int> queries(m); // 读取身高数据和查询身高 for (int i = 0; i < n; ++i) cin >> heights[i]; for (int i = 0; i < m; ++i) cin >> queries[i]; // 对身高数据进行排序(如果未排序) sort(heights.begin(), heights.end()); // 处理每个查询 for (int target : queries) { auto [first, last] = findPositions(heights, target); cout << first + 1 << " " << last + 1 << endl; // 输出位置,加1是因为题目要求从1开始计数 } return 0; }
请注意,这个示例代码假设输入的身高数据已经是有序的。如果输入数据未排序,您需要在处理查询之前对其进行排序。
至于参考资料,您可以通过以下链接访问相关的讨论和解决方案:
- CSDN问答 - 疯狂动物城报名问题[^1^]
- CSDN问答 - c++ 疯狂动物城报名[^2^]
- 博客园 - GMOJ4488 疯狂动物城[^4^]
您可以通过这些链接获取更多关于问题的详细信息和可能的解决方案。如果您需要访问在线判题系统以提交您的解决方案,请直接访问您提供的链接:在线判题系统。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录 -
悬赏问题
- ¥15 TeleScan不能修改bar
- ¥100 请问我基于逐飞库写的这个有关于mp u6050传感器的函数,为什么输出的值是固定的?
- ¥15 hadoop中启动hive报错如下怎么解决
- ¥15 如何优化QWebEngineView 加载url的速度
- ¥15 关于#hadoop#的问题,请各位专家解答!
- ¥15 如何批量抓取网站信息
- ¥15 Spring Boot离线人脸识别
- ¥15 使用Ant Design Pro vue的时候,使用环境变量的时候,构建报错是什么原因
- ¥15 NRF24L01能发送但是不能接收
- ¥15 想问一下这种情况怎么解决呢(关键词-file)