problem description
眾所周知,度度熊非常喜歡數字。
它最近在學習小學算術,第一次發現這個世界上居然存在兩位數,三位數……甚至n位數!
但是這回的算術題可並不簡單,由於含有表示bomb的#號,度度熊稱之為 arithmetic of bomb。
bomb number中的bomb,也就是#號,會展開一些數字,這會導致最終展開的數字超出了度度熊所能理解的範疇。比如」(1)#(3)」表示」1」出現了3次,將會被展開為」111」,
同理,」(12)#(2)4(2)#(3)」將會被展開為」12124222」。
為了方便理解,下面給出了bomb number的bnf表示。
:= | := | '(' ')' '#' '(' ')'
:= | := '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'
:= '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'
請將bomb number中所有的#號展開,由於數字可能很長,結果對 1 000 000 007 取模。
input
第一行為t,表示輸入資料組數。
每組資料報含乙個bomb expression。
output
對每組資料輸出表示式的結果,結果對 1 000 000 007 取模。
sample input
4sample output1(1)#(3)
(12)#(2)4(2)#(3)
(12)#(5)
1簡單的模擬題11112124222
212121205
#include#include#include#include#include#include#include#include#include#include#include#include//#define mem(dp,a) memset(dp,a,sizeof(dp))
//#define fo(i,n) for(int i=0;i
//#define inf 0x3f3f3f3f
#define fread() freopen("data.txt","r",stdin)
#define fwrite() freopen("out.out","w",stdout)
using namespace std;
typedef long long ll;
const ll mod = 1000000007;
int dir[4][2] = , , , };
string s;
string re;
string st,tn;
int t;
int main()
;ll b[n]=;
ll re[n];
int t,n;
int main()
ll &now = dp[pos][pre][up][t];
if (!limit && now != -1)
ll ret = 0;
int d = limit ? str[pos] - '0' : 9;
for (int i=0; i<=d; ++i)
}else
else}}
if (!limit)
return ret;
}int main()
return 0;
}
2017 百度之星複賽題解 01 03 05
01 有個易錯點,我卡了好久,就是 1 012 1 答案是1012,我剛開始把012的前導0去掉了。03 原題 05 數字dp,記憶化搜尋 dp p q limit ceng 表示前一位是 p,前面處於遞增 遞減 狀態q,當前位上限是多少limit,還有多少位ceng 根據不同情況遞迴即可,可以先不...
2016 百度之星 複賽 拍照
小明在旅遊的路上看到了一條美麗的河,河上有許多船隻,有的船隻向左航行,有的船隻向右航行。小明希望拍下這一美麗的風景,並且把盡可能多的船隻都完整地拍到一張 中。小明位於河的邊上,並且可以在河邊的任意位置進行拍照,照相機的視野恰好為90度角,只能以垂直於河邊的方向進行拍照。河上的船隻全都可看作是平行於河...
2014百度之星複賽解題報告複賽 Race
race 時間限制 10s 記憶體限制 64mb 問題描述 度度熊最近參加了一場勁跑比賽,但是這個勁跑比賽的規則比較特殊。比賽方預先在地上畫了一些橫線和豎線 可以認為這些線為無限長的直線 要求選手從指定的位置出發,在最短時間內按照規定的順序經過所有的直線 只要到達直線上的任意一點即為經過 為了幫助度...