zoukankan      html  css  js  c++  java
  • UVA 11991 Easy Problem from Rujia Liu?

    //Root :: AOAPC I: Beginning Algorithm Contests -- Training Guide (Rujia Liu) :: Chapter 1. Algorithm Design :: General Problem Solving Techniques :: Examples
    //UVA 11991 - Easy Problem from Rujia Liu? // 昨晚
    /*题意:给n个数,m个询问,问第k个位置的v的序号是多少?
    思路:第一次提交 O(n)时间 ,运行错误runtime error,
    二维数组又爆,参考他人使用map容器和vector的
    //map:一对一映射,无重复元素,基于关键字查找
     C++ STL模板巧很好用  要学的东西太多了
    *///AC
    #include<cstdio>
    #include<map>
    #include<vector>
    using namespace std;
    int n,m;
    map<int ,vector<int> > s;//开辟二维向量s 记录元素、元素个数、元素位置
    int main()
    {
        int a,i,k,v;
        while(scanf("%d%d",&n,&m)!=EOF)
        {
            s.clear();//每次初始化
            for(i=1;i<=n;i++)
            {
                scanf("%d",&a);
                s[a].push_back(i);//存储a 和a的序号 并对a的个数进行累加
            }
            for(i=0;i<m;i++)
            {
               scanf("%d%d",&k,&v);
               if(s[v].size()<k) //a的总个数
               printf("0\n");
               else
               printf("%d\n",s[v][k-1]);
            }
        }
        return 0;
    }
    /*//runtime error 改的我肚子疼
    #include<stdio.h>
    #include<string.h>
    const int M=100010;
    long long  m,n;
    long long a[M],ind[M];
    int f(int x,int y)
    {
        long long  i,j=0,ok=0;
        if(ind[y]==0) return 0;
        else
        {
            for(i=0;i<n;i++)
            {
                if(a[i]==y)
                {
                    if(j<x)
                      j++;
                    if(j==x)
                    {
                        ok=1;break;
                    }

                }
            }
        }
        if(ok)return i+1;
        else return 0;
    }
    int main()
    {
        long long  i,j,k,c,b,d;
        while(scanf("%lld%lld",&n,&m)!=EOF)
        {
            memset(ind,0,sizeof(ind));
            for(i=0;i<n;i++)
            scanf("%lld",&a[i]);
            for(i=0;i<m;i++)
            {
                scanf("%lld%lld",&b,&c);
                 ind[c]++;
                d= f(b,c); printf("%lld\n",d);
            }
        }
        return 0;
    }
    /*
    8 8
    1 2 3 4 4 5 8 9

    */

    */

  • 相关阅读:
    Spring MVC(十六)--Spring MVC国际化实例
    Spring MVC(十五)--SpringMVC国际化配置项
    Spring MVC(十四)--SpringMVC验证表单
    Spring MVC(十三)--保存并获取属性参数
    Spring MVC(十二)--使用ModelView实现重定向
    Spring MVC(十一)--使用字符串实现重定向
    Spring MVC(十)--通过表单序列化传递参数
    Spring MVC(八)--控制器接受简单列表参数
    Spring MVC(七)--传递JSON参数
    接口限流算法总结
  • 原文地址:https://www.cnblogs.com/someonelikeyou/p/2907630.html
Copyright © 2011-2022 走看看