zoukankan      html  css  js  c++  java
  • 2017百度之星程序设计大赛

    http://acm.hdu.edu.cn/showproblem.php?pid=6144

    解法:一个简单的模拟

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 int t;
     4 int mod=1e9+7;
     5 string s;
     6 int main(){
     7     cin>>t;
     8     while(t--){
     9         int flag=0;
    10         long long sum=0;
    11         cin>>s;
    12         int len=s.length();
    13         for(int i=0;i<len;i++){
    14             if(s[i]=='('){
    15                 flag=1;
    16             }
    17         }
    18         if(flag==0){
    19             for(int i=0;i<len;i++){
    20                 sum%=mod;
    21                 sum*=10;
    22                 sum+=s[i]-'0';
    23                 sum%=mod;
    24             }
    25             cout<<sum%mod<<endl;
    26         }else{
    27             string s1="";
    28             string s2="";
    29             s+='(';
    30             int y=0;
    31             int st=0;
    32             if(s[0]>='0'&&s[0]<='9'){
    33                 while(s[st]!='('){
    34                         s2+=s[st];
    35                         st++;
    36                 }
    37             }
    38             for(int i=st;i<len;){
    39                 if(s[i]=='('){
    40                     s1="";
    41                     i++;
    42                     while(s[i]!=')'){
    43                         s1+=s[i];
    44                         i++;
    45                     }
    46                     i++;
    47                 }
    48                 if(s[i]=='#'){
    49                     i+=2;
    50                     y=0;
    51                     while(s[i]!=')'){
    52                         y*=10;
    53                         y+=s[i]-'0';
    54                         y%=mod;
    55                         i++;
    56                     }
    57                     i++;
    58                     for(int j=1;j<=y;j++){
    59                         s2+=s1;
    60                     }
    61                     if(s[i]>='0'&&s[i]<='9'){
    62                         while(s[i]!='('){
    63                                 s2+=s[i];
    64                                 i++;
    65                             }
    66                     }
    67                 }
    68             }
    69             long long ans=0;
    70             int Len=s2.length();
    71             for(int i=0;i<Len;i++){
    72                 ans*=10;
    73                 ans%=mod;
    74                 ans+=s2[i]-'0';
    75                 ans%=mod;
    76             }
    77             cout<<ans%mod<<endl;
    78         }
    79     }
    80     return 0;
    81 }
    82 /*
    83 10
    84 1(1)#(1)
    85 11
    86 1(1)#(1)11
    87 1111
    88 1(1)#(1)101
    89 11101
    90 1(1)#(1)1000
    91 111000
    92 01(1)#(1)1000
    93 111000
    94 */
  • 相关阅读:
    集合
    第五天
    第四天
    第二天
    ieee 期刊缩写(转载)
    JAVA学习笔记03
    JAVA学习笔记2
    JAVA学习笔记01
    Latex 图片排版
    非奇异终端滑模
  • 原文地址:https://www.cnblogs.com/yinghualuowu/p/7391525.html
Copyright © 2011-2022 走看看