100,100,10。 跪求第三题解法 第二题AC代码 #include <iostream> #include <cstring> #include <cmath> #include <vector> #include <algorithm> #include <vector> #include <list> #include <stack> #include <string> #include <set> #include <queue> #include <climits> #include <unordered_set> #include <map> #include <iostream> #include <algorithm> #include <cstring> #include <unordered_map> #include <map> using namespace std; typedef  long long LL; const LL mod = 1000000007; using namespace std; const int inf = 0x7f7f7f7f; #define _for(i,l,r) for(int i=(l);i<(r);i++) int dir[4][2] = {{0,1},{1,0},{-1,0},{0,-1}}; map<string,int> is; map<string,int> val; char s[10000]; int main(){     int n;     scanf("%d\n",&n);     string ans_tmp;     _for(j,0,n){         gets(s);         int s_len = strlen(s);         int i = 0;         vector<string> var;         var.clear();         while(i < s_len){             while(i< s_len && s[i] ==' ') i++;             if(i == s_len) break;             char v[10000];             int v_len = 0;             int pre = i;             while(i< s_len && (s[i] != '=' && s[i] != '+')) i++;             while(i>=1 && s[i - 1] == ' ') i--;             for(int k = pre; k < i ;k++){                 v[v_len++] = s[k];             }             v[v_len] = '\0';             string tmp(v);             var.push_back(tmp);             while(i<s_len && s[i] == ' ') i++;             i++;         }         int sum = 0;         int flag = 0;         for(int q=1;q<var.size();q++){             if(var[q][0] >='1' && var[q][0] <= '9'){                 string tmp = var[q];                 int ans = 0;                 for(int p = 0;p<tmp.size();p++){                     ans = ans * 10 + tmp[p] - '0';                 }                 sum += ans;                 continue;             }             if(var[q][0] == '-'){                 string tmp = var[q];                 int ans = 0;                 for(int p = 1;p<tmp.size();p++){                     ans = ans * 10 + tmp[p] - '0';                 }                 sum += -ans;                 continue;             }             if(is[var[q]] == 1){                 sum += val[var[q]];                 continue;             }             if(is[var[q]] == 0){                 flag = 1;                 break;             }         }         ans_tmp = var[0];         if(flag == 0){             is[var[0]] = 1;             val[var[0]] = sum;         }     }     if(!is[ans_tmp]){         cout <<"NA"<< endl;     }     else{         cout << val[ans_tmp]<< endl;     }     return 0; }
点赞 4

相关推荐

牛客网
牛客网在线编程
牛客网题解
牛客企业服务