zoukankan      html  css  js  c++  java
  • 【UVA】1596 Bug Hunt(模拟)

    题目

    题目
     


    分析

    算是个模拟吧
     


    代码

    #include <bits/stdc++.h>
    using namespace std;
    map<int,int> a[130];
    char s[85];
    int n[130];
    int PosIs()
    {
    	int len=strlen(s);
    	for(int i=0;i<len;i++)
    		if(s[i]=='=') return i;
    	return -1;
    }
    int get_num(int k)
    {
    	int res=0;
    	if(isalpha(s[k]))
    	{
    		int t=get_num(k+2);
    		if(t<0|| t>=n[s[k]] || !a[s[k]].count(t))
    			res=-1;
    		else res=a[s[k]][t];
    	}
    	for(int i=k;isdigit(s[i]);i++)
    	{
    		if(i==k && s[i]=='0' && isalpha(s[i+1]))
    		{
    			res=-1;
    			break;
    		}
    		res=res*10+s[i]-'0';
    	}
    	return res;
    }
    int main()
    {
    	int res=0;
    	while(scanf("%s",s) && s[0]!='.')
    	{
    		int ans=0,cnt=0;
    		for(int i=0;i<130;i++) a[i].clear();
    		do
    		{
    			if(ans) continue;
    			cnt++;
    			int k=PosIs();
    			if(k<0)
    			{
    				int t=get_num(2);
    				if(t<0){ans=cnt; continue;}
    				n[s[0]]=t;
    			}
    			else
    			{
    				int t1=get_num(2);
    				if(t1<0||t1>=n[s[0]]) {ans=cnt;continue;}
    				int t2=get_num(k+1);
    				if(t2<0) {ans=cnt;continue;}
    				a[s[0]][t1]=t2;
    			}
    		}while(scanf("%s",s) && s[0]!='.');
    		printf("%d
    ",ans);
    	}
    	return 0;
    }
    
  • 相关阅读:
    Python基础实例001:数字组合问题
    Python集合
    标量、向量、矩阵、张量
    re模块函数之search
    Python常用字符串操作
    Python基础之元组
    Bai, IEEE 2019
    词嵌入
    RNN 训练时梯度爆炸和梯度消失的理解
    OCR 综述
  • 原文地址:https://www.cnblogs.com/noblex/p/7897302.html
Copyright © 2011-2022 走看看