zoukankan      html  css  js  c++  java
  • 【SSL 1503】WING

    题目大意:

    给几个操作,每次操作给出一个只包含 ‘W’、‘I’、‘N’、‘G’ 的字符串加入一个库里,再给出几个询问,每次询问求出被查询串最早第几次加入库。

    正文:

    神怖题,开个桶记录某字符第几次入库。

    代码:

    inline int read(){
    	char ch = getchar();
    	int x = 0, f = 1;
    	while(ch < '0' || ch > '9'){
    		if(ch == '-') f = -1;
    		ch = getchar();
    	}
    	while('0' <= ch && ch <= '9'){
    		x = x * 10 + ch - '0';
    		ch = getchar();
    	}
    	return x * f;
    }
     
    inline void write(int x){
    	if (x < 0) x = ~x + 1, putchar('-');
    	if (x > 9) write(x / 10);
    	putchar(x % 10 + '0');
    }
    
    char s[N];
    int n,m,ans,t;
    int a[N][4];
    
    int getnum(char ch)
    {
    	if (ch=='W') return 0;
    	if (ch=='I') return 1;
    	if (ch=='N') return 2;
    	return 3;
    }
    
    int main()
    {
    	n = read(), m = read();
    	for (int i=1;i<=m;i++)
    	{
    		int op = read();
    		for (int j = 1; j <= n; j++)
    			s[j] = getchar();
    		if (op)
    		{
    			ans=0;
    			for (int j=1;j<=n;j++)
    			{
    				if (!a[j][getnum(s[j])]) { ans=-1;break;}
    			    ans=max(ans,a[j][getnum(s[j])]);
    		    }
    			write(ans);
    			putchar(10);
    		}
    		else
    		{
    			t++;
    			for (int j=1;j<=n;j++) if (!a[j][getnum(s[j])]) a[j][getnum(s[j])]=t;
    		}
    	}
    }
    
  • 相关阅读:
    贪婪算法
    递归 快速排序
    递归 判断数组最大数字
    加法递归
    快速排序
    二分查找
    介绍求解AX=b:可解性与解的结构
    消元法求解线性方程组
    内容说明-线性代数
    gis
  • 原文地址:https://www.cnblogs.com/GJY-JURUO/p/13537855.html
Copyright © 2011-2022 走看看