题目地址:
分析:这道题挺水的,就是讲(a)#(b)表示有b个相连的a,当然也有可能有穿插不是这样表示直接给数字的,比如题目的(12)#(2)4(2)#(3)表示12124222,照着模拟就行了,注意下要到处取模,要不可能出现溢出啥的
代码如下:
#includeusing namespace std;typedef long long LL;const LL mod = 1000000007;LL num10[1005];int main() { int T; num10[0] = 1; for(int i= 1; i <= 1005; i++) { num10[i] = (num10[i-1] * 10) % mod; } scanf("%d",&T); while(T--) { string str; cin>>str; LL sum = 0; for(int i = 0; i < str.length(); i++) { if(str[i] <= '9' && str[i] >= '0') sum = (sum * 10 + str[i] - '0') % mod; else { i++; LL tmp = 0; LL number = 0; while(i < str.length() && str[i] != ')') { tmp = (tmp * 10 + (str[i++] - '0')) % mod; number++; }//cout< < <