zoukankan      html  css  js  c++  java
  • 排序与检索,UVa 10474,(大理石在哪里)

    题目:有n个大理石,每个大理石上写了一个非负整数,首先对其进行排序,然后回答q个问题,每个问题问是否有一个大理石上写着某个整数x,如是,则回答哪个大理石上写着x,排序后的大理石从左到右编号为1-n;//可以循环输入

    • 分析:
    • 第一步先进行排序,用algorithmi头文件中的sort进行排序,sort(aa,aa+n)//begin(),end();
    • 第二步:寻找写有数字x的大理石,可以用algorithmi头文件中的lower_bound()进行查找;
    • lower_bound的作用是“查找大于或者等于x的第一个位置”;
    #include <cstdio>
    #include <algorithm>
    #include <sstream>
    
    using namespace std;
    const int maxn = 10000;
    int main()
    {
    	int n, q, x, aa[maxn], k = 0;
    	while (scanf_s("%d %d", &n, &q) == 2)
    	{
    		printf("CASE# %d:
    ", ++k);
    		for (int i = 0; i < n; i++)
    		{
    			scanf_s("%d", &aa[i]);
    		}
    		sort(aa, aa + n);//进行排序
    		while (q--)
    		{
    			scanf_s("%d", &x);//寻找的数字
    			int p = lower_bound(aa, aa + n, x) - aa;
    			if (aa[p] == x) {
    				printf("%d found at %d
    ", x, p + 1);
    			}
    			else {
    				printf("%d not found
    ", x);
    			}
    		}
    	}
    
    	return 0;
    }
    

    作者:Better又
    出处:https://www.cnblogs.com/lwyy1223-/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    没有完成的题目
    哈尔滨工程大学 ACM online contest 1008 how many
    POJ 2976 分数规划
    长沙理工 ACM 数位 DP 1488
    POJ 2663
    USETC 1821 AC 自动机
    长沙理工 ACM 分数规划 1494
    正则表达式基础知识(转)
    上传头像代码
    datalist 分页(转)
  • 原文地址:https://www.cnblogs.com/lwyy1223-/p/13733043.html
Copyright © 2011-2022 走看看