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

解法:一个简单的模拟

 #include <bits/stdc++.h>
using namespace std;
int t;
int mod=1e9+;
string s;
int main(){
cin>>t;
while(t--){
int flag=;
long long sum=;
cin>>s;
int len=s.length();
for(int i=;i<len;i++){
if(s[i]=='('){
flag=;
}
}
if(flag==){
for(int i=;i<len;i++){
sum%=mod;
sum*=;
sum+=s[i]-'';
sum%=mod;
}
cout<<sum%mod<<endl;
}else{
string s1="";
string s2="";
s+='(';
int y=;
int st=;
if(s[]>=''&&s[]<=''){
while(s[st]!='('){
s2+=s[st];
st++;
}
}
for(int i=st;i<len;){
if(s[i]=='('){
s1="";
i++;
while(s[i]!=')'){
s1+=s[i];
i++;
}
i++;
}
if(s[i]=='#'){
i+=;
y=;
while(s[i]!=')'){
y*=;
y+=s[i]-'';
y%=mod;
i++;
}
i++;
for(int j=;j<=y;j++){
s2+=s1;
}
if(s[i]>=''&&s[i]<=''){
while(s[i]!='('){
s2+=s[i];
i++;
}
}
}
}
long long ans=;
int Len=s2.length();
for(int i=;i<Len;i++){
ans*=;
ans%=mod;
ans+=s2[i]-'';
ans%=mod;
}
cout<<ans%mod<<endl;
}
}
return ;
}
/*
10
1(1)#(1)
11
1(1)#(1)11
1111
1(1)#(1)101
11101
1(1)#(1)1000
111000
01(1)#(1)1000
111000
*/

最新文章

  1. VS2013中的MVC5模板部署到mono上的艰辛历程
  2. mapReduce编程之Recommender System
  3. makefile 笔记
  4. dsquery、netdom工具示例
  5. SVN中Branch和Merge实践
  6. java 入门 第二季3
  7. [原创]java WEB学习笔记69:Struts2 学习之路-- 消息处理与国际化,概述,配置国际资源文件,访问国际化消息,通过超链接切换语言
  8. Android之sdcard操作
  9. spring源码分析之spring-messaging模块详解
  10. DragSortListView学习总结
  11. Port 8081 already in use, packager is either not running or not running correctly
  12. 使用Blender的UV映射制作一个地球
  13. 面向对象JavaScript的基本概念
  14. js判断一些时间范围是否有重复时间段
  15. python基础的输入字符串的格式化
  16. 要学好JAVA要注意些什么?
  17. [转帖]Oracle 补丁体系(PSR/PSU/CPU) 及 opatch 工具 介绍
  18. 10 个非常实用的 SVG 动画操作JavaScript 库
  19. Neural style transfer
  20. topcoder srm 689 div1 -3

热门文章

  1. 一次php脚本出现段错误(Segment fault)的经历
  2. 跨线程send message
  3. HihoCoder1650 : 扁平化管理([Offer收割]编程练习赛38)(二分)
  4. manacher(无讲解)
  5. codevs 1531山峰
  6. 相对路径转绝对路径C++实现
  7. 洛谷 P4721 [模板]分治FFT —— 分治FFT / 多项式求逆
  8. poj2127——LCIS
  9. RT-Thread的线程(任务)处理 rt_thread_create/rt_thread_init区别
  10. DataTable批量插入数据库