本文主要是介绍WING,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目描述
输入
输出
样例输入
样例输出
-1
1
2
说明
对于40%的数据满足:n<=5,c<=1000;
对于100%的数据满足:n<=10;c<=10^6;
.
.
.
.
.
.
分析
注意可以拿重组串继续重组。对于一个询问串,考虑什么时候可以覆盖整个串。所以对于每个位置每个字母记录最早出现的修改次数。查询只要查询这个串对应位置的字母的最早修改次数的最大值。
.
.
.
.
.
程序:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<map>
#include<cmath>
#include<algorithm>
using namespace std;int n,m,a[20][5],cnt;
char s[100];
map<char,int> p;int main()
{p['W']=1;p['I']=2;p['N']=3;p['G']=4;cin>>m>>n;for (int i=1;i<=n;i++){int x;scanf("%d",&x);scanf("%s",s);if (x==0){cnt++;for (int j=0;j<m;j++)if (a[j][p[s[j]]]==0) a[j][p[s[j]]]=cnt;} else{int ans=0;for (int j=0;j<m;j++)if (a[j][p[s[j]]]==0){ans=-1;j=m;} else ans=max(ans,a[j][p[s[j]]]);cout<<ans<<endl;}}return 0;
}
这篇关于WING的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!