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

    */

    */

  • 相关阅读:
    poj 2046 Power Strings KMP
    谈谈需求变更的用户签字确认问题
    Oracle 10g客户端 安装(配图)
    如何让有能力的下属承担更多职责
    软件性能测试工具在测试工作中的重要性
    Oracle 10g 服务器端 安装图解
    JS 操作页面基础操作:禁止另存 防止复制 防止选择
    Javascript 长整型 转 C# DateTime
    配置AJAX Enabled WCF在hosting时: Showing the serviceMetadata in an ASP.NET AJAX Service
    ICON资源网站
  • 原文地址:https://www.cnblogs.com/someonelikeyou/p/2907630.html
Copyright © 2011-2022 走看看