栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++ --- UVa10474. Where is the Marble? 解题报告

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++ --- UVa10474. Where is the Marble? 解题报告

本博文源于《算法竞赛入门经典(第二版)》,旨在解决大理石在哪儿(Where is the Marble? Uva10474)这道题目,渐渐走入题库训练。博文目录有:1.问题再现2.样例输入&样例输出3.题目分析4. 代码测试效果5.代码讲解及完整源码

文章目录
  • 1.问题再现
  • 2.样例输入&样例输出
  • 3.题目分析
  • 4. 代码测试效果
  • 5.代码讲解及完整源码

1.问题再现

现有N个大理石,每个大理石上写了一个非负整数。首先把各数从小到大排序,然后回答Q个问题。每个问题是否有一个大理石写着某个整数x,如果是,还要回答哪个大理石写着x。排序后的大理石从左到右编写为1-N。(样例中,所有大理石上的数合并到一行,所有问题也合并到一行)

2.样例输入&样例输出
4 1
2 3 5 1
5 
5 2
1 3 3 3 1
2 3 

样例输出

CASE# 1:
5 found at 4
CASE# 2:
2 not found
3 found at 3
3.题目分析
  • 题目上说“首先把各数从小到大排序” ,也就是你要先排序
  • “每个问题是否有一个大理石写着某个整数x”这句话的意思就是要去查找这个数字
  • 如果是,还要回答哪个大理石写着x 这句话的意思是,排序好后,然后进行查找,查找完,如果找到那就返回这个值的下标

例如 输入 4 1也就是输入四个数字 去问1个问题
2 3 5 1
5
输入2 3 5 1这四个数字,问5在这个石头里吗?
先排序
1 2 3 5
结果发现5在第四个,那就是说5找到了,在第四个,输出就是样例输出.

4. 代码测试效果

5.代码讲解及完整源码
#include
#include
using namespace std;
const int maxn = 10000;

int main()
{
	int n,q,x,a[maxn],kase = 0;//n:输入的数组个数 q:问题个数 x:要查找的值,maxn:数组的全部容量,kase:样例计数
	while(scanf("%d%d",&n,&q) == 2 && n){ //输入
		printf("CASE# %d:n",++kase); //样例加1
		for(int i=0;i
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/510669.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号