大理石在哪儿(UVa10474)

  

  题目具体描述见:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=835&page=show_problem&problem=1415

C++ 11代码如下:

 1 #include<iostream>
 2 #include<algorithm>
 3 using namespace std;
 4 int num[10000];
 5 int main() {
 6     int q, n, t,k=0;
 7     while ((cin >> n >> q) && n != 0) {
 8         cout << "CASE# " << ++k << ‘:‘ << endl;
 9         for (int i = 0; i < n; i++) cin >> num[i];
10         sort(num, num + n);  //默认升序
11         while (q--) {
12             cin >> t;
13             int p = lower_bound(num, num + n, t) - num;  //lower_bound输出大于或者等于t的第一个位置,下面还需判断此位置处元素是否等于t
14             if (num[p] == t) cout << t << " found at " << p+1 << endl; //大理石从1开始排序,所以输出p+1
15             else cout << t << " not found" << endl;
16         }
17     }
18     return 0;
19 }

原文地址:https://www.cnblogs.com/pgzhang/p/9267807.html

时间: 2024-11-01 11:36:03

大理石在哪儿(UVa10474)的相关文章

大理石在哪儿 UVa10474

现有N个大理石,每个大理石写了一个非负整数.首先把各数从小到大排序,然后回答Q个问题.每个问题是否有一个大理石写着某个整数x,如果是,还要回答哪个大理石上写着x.排序后的大理石从左到右编号为1~N.(在样例中,为了节约篇幅,所有大理石上的数合并到一行,所有问题也合并到一行.) 样例输入: 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 //UVa 10474

UVA10474 大理石在哪儿 Where is the Marble?

UVA10474 大理石在哪儿 Where is the Marble? 题意翻译 现有N个大理石,每个大理石上写了一个非负整数.首先把各数从小到大排序,然后回 答Q个问题.每个问题问是否有一个大理石写着某个整数x,如果是,还要回答哪个大理石上 写着x.排序后的大理石从左到右编号为1-N. 输入输出样例: //输入 4 1 4个大理石 1个问题 2 2 3 5 1 大理石上写的数字 3 5 1 5 这个5是问题 是否有一个大理石写着5 5 2 1 3 3 3 1 2 3 0 0 //输出 CAS

uva10474大理石在哪儿where is the marble?

背景:做了这么久的题,唯一一道一次ac的,可见这道题是如何的简单. 思路:思路很清楚的模拟题,先排序再查找. 学习:sort函数和lower_bound函数,sort函数排序就不多说了,lower_bound函数作用是查找一个数组中大于等于x的第一个位置. #include <iostream> #include <stdio.h> #include <algorithm> using namespace std; int figue[10000]; void prin

UVA10474 Where is the Marble?

问题链接:UVA10474 Where is the Marble?. 题意简述:输入n个整数,代表大理石编号:再输入q个数(编号),问是否有这个编号的大理石,位置在哪里? 这个问题用C++语言编写程序,主要是为了练习使用STL的功能. 程序中,使用了算法库(algorithm)中的两个函数:使用sort()函数用于对数据排序,该函数的参数比C语言的同类函数简单,程序更加易于书写:使用函数lower_bound()查找元素,简单方便. AC的C++语言程序如下: /* UVA10474 Wher

Android apps浅析01-Amazed:一个简单但令人上瘾的加速度为基础的大理石指导游戏。

Android apps浅析01-Amazed:一个简单但令人上瘾的加速度为基础的大理石指导游戏. 这个例子中只有4个类,一个绘制大理石类Marble,一个绘制迷宫类Maze,一个Amazed视图类,一个Amazed活动类 1. 绘制大理石类Marble通过Canvas和Paint绘制,同时提供移动x轴和y轴坐标的方法,每个大理石都有一个状态值:活的/死的 /* * Copyright (C) 2008 Jason Tomlinson. * * Licensed under the Apache

互联网+大理石新商业模式高峰论坛开幕

全球石材企业市场竞争格局 根据中国石材协会的统计数据, 2012 年世界石材荒料产量最大的 10 个国家 是中国.印度.土耳其.巴西.意大利.伊朗.西班牙.埃及.葡萄牙和美国. 从产出规模上来看,中国和印度分别占总产量的 30.08%和 14.20%,合计占 40% 以上;土耳其.巴西.意大利.伊朗和西班牙合计约占总产量的30%;其他国家 占据剩余不到 30%. 从世界主要石材企业竞争格局来看,石材生产.大型贸易企业主要集中在日本.印度.美国.意大利.西班牙等石材强国,如日本的ADVAN.印度的

「CJOJ2736」「POJ1014」大理石分割

Problem Description Marsha和Bill收藏了一些大理石.他们想要把这些大理石平均分配给两个人.如果大理石的价值一样,这将很容易做到,因为他们可以简单的对半分.不幸的是,一些大理石比其他的更大或者更漂亮.因此Marsha和Bill给每个大理石都规定了一个价值,它是一个1~6之间的自然数.现在他们想要把这些大理石分成两部分,每部分的价值之和相等.但他们很快意识到有可能不存在这样的分法(即使大理石的价值之和是偶数).例如,如果大理石的价值分别是1,1,3,4,4,就不可能被分为

CH5E07 划分大理石(背包dp+二进制拆分)

传送门     大意: 有价值分别为1..6的大理石各a[1..6]块,现要将它们分成两部分,使得两部分价值之和相等,问是否可以实现.其中大理石的总数不超过20000. 解题思路: 妥妥的多重背包+二进制拆分,主要写一下二进制拆分存个档(儿时的噩梦). 总所周知,20,21,22,……2k-1从中挑选若干个相加可以得到0~2k-1中的任意数.那么将一个数s进行二进制拆分,首先要做的就是找到最大k满足2k-1<=s,设c=s-2k+1.显而易见20,21,……,2k-1,c可以从中挑选若干个数相加

大理石在哪里UVa 10474

我自己写的代码 #include<iostream>#include<algorithm>using namespace std;int main(){    int N,a[100],b[100],Q,flag;    int k=1;    while(cin>>N>>Q)    {        for(int i=0;i<N;i++)        {            cin>>a[i];        }        fo