zoukankan      html  css  js  c++  java
  • 模拟类似括号匹配

    http://   www.bnuoj.com/bnuoj/contest_show.php?cid=3902#problem/44159

    在数的两边加上一对括号

    #include<stdio.h>
    #include<string.h>
    #define N 200
    #include<stack>
    using namespace std;
    struct node {
       int c,h;
    }cur,next;
    int main() {
      int i,len;
      char s[N];
      while(scanf("%s",s)!=EOF) {
            stack<node>q;
        cur.c=0;cur.h=0;
       len=strlen(s);
       s[len]=')';
       s[len+1]='1';
       cur.c=0;cur.h=0;
       q.push(cur);
      q.push(cur);
       for(i=0;i<=len+1;i++) {
        if(s[i]=='C') {
            if(s[i+1]>='0'&&s[i+1]<='9') {
                cur.c+=s[i+1]-'0';
                i++;
            }
            else
                cur.c++;
        }
        if(s[i]=='H') {
            if(s[i+1]>='0'&&s[i+1]<='9') {
                cur.h+=s[i+1]-'0';
                i++;
            }
            else
                cur.h++;
        }
        if(s[i]=='(') {
            next=q.top();
            q.pop();
            next.c+=cur.c;
            next.h+=cur.h;
            q.push(next);
            cur.c=0;cur.h=0;
            q.push(cur);
           }
           if(s[i]==')') {
            next=q.top();
            q.pop();
            next.c+=cur.c;
            next.h+=cur.h;
            if(s[i+1]>='0'&&s[i+1]<='9') {
                cur=q.top();
                q.pop();
                cur.c=cur.c+next.c*(s[i+1]-'0');
                cur.h=cur.h+next.h*(s[i+1]-'0');
                q.push(cur);i++;
            }
            else  {
                cur=q.top();
                q.pop();
                cur.c+=next.c;
                cur.h+=next.h;
                q.push(cur);
            }
            cur.c=0;
            cur.h=0;
           }
       }
       next=q.top();
       if(next.h==next.c*2+2)
        printf("Alkane
    ");
       else
       printf("Alkene
    ");
      }
    return 0;
    }

  • 相关阅读:
    MySQL主从复制集群添加slave节点
    GTID主从 与 传统主从复制
    20201207总结
    202011051 每周例行报告
    202011121 每周例行报告
    202010081 每周例行报告
    202011261 每周例行报告
    202010153 每周例行报告
    202010291 每周例行报告
    202011201 每周例行报告
  • 原文地址:https://www.cnblogs.com/thefirstfeeling/p/4410762.html
Copyright © 2011-2022 走看看