本文主要是介绍11991 - Easy Problem from Rujia Liu?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题意:输入一串整型数列,再输入两个数k,v,输出第k个v的序号。不存在则输出0,如第一个样例
8 4 1 3 2 2 4 3 2 1 1 3 //第1个3,序号为2,输出2 2 4 //第2个4,不存在,输出0 3 2 //第3个2,序号为7,输出7 4 2思路:
struct num
{
int value;
vector<int> xuhao;//存值为value的序号
};
vector<struct num> L;
解题心得:
敲题时同时注解,方便查错,细心
代码:
#include<stdio.h>
#include<iostream>
#include<vector>
using namespace std;
struct num
{int value;vector<int> xuhao;
};
vector<struct num> L;
int main()
{int n,m;while(~scanf("%d%d",&n,&m)){int i=1;int temp;for(i=1;i<=n;i++){scanf("%d",&temp);//寻找L中是否存在value=temp的结构体vector<struct num>::iterator it;for(it=L.begin();it!=L.end();it++){if(it->value==temp)//存在,则插入下标{it->xuhao.push_back(i);break;}}if(it==L.end())//不存在{//创建一个结构体,value=temp,下标以插入xuhaostruct num num_1;num_1.value=temp;num_1.xuhao.push_back(i);L.push_back(num_1);}}//处理输出部分int a1,a2;for(i=1;i<=m;i++){scanf("%d%d",&a1,&a2);//先判断是否存在a2vector<struct num>::iterator it;for(it=L.begin();it!=L.end();it++){if(it->value==a2)//存在a2,继续判断是否存在,第a1个a2;{if(it->xuhao.size()<a1) printf("0\n");else{printf("%d\n",it->xuhao[a1-1]);}break;}}if(it==L.end()){printf("0\n");}}}return 0;
}
这篇关于11991 - Easy Problem from Rujia Liu?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!