2017百度之星程序设计大赛 - 复赛 Arithmetic of Bomb
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 */
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~