题意:给一个字符串,把他赋值k编,然后有m个操作,删除某个字母第x次出现的位置,输出所有操作结束后的字符串
题解:vector的应用
代码:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<vector>
using namespace std;
int vis[1000010];
vector<int> G[27];
string s, c;
int k;
int m;
int main(){
scanf("%d", &k);
k--;
cin>>s;
c = s;
while(k--){
s+=c;
}
for(int i = 0; i<s.size(); i++){
G[s[i]-'a'].push_back(i+1);
}
scanf("%d", &m);
while(m--){
int x;
char ch[3];
scanf("%d %s", &x, ch);
vis[G[ch[0]-'a'][x-1]] = 1;
G[ch[0]-'a'].erase(G[ch[0]-'a'].begin()+x-1);
}
for(int i = 0; i<s.length(); i++){
if(!vis[i+1]) printf("%c", s[i]);
}
printf("\n");
return 0;
}