Aizu Online Judge(AOJ)の過去問から、その提出コードの解答例です。
・問題 "Repeated Spell"
https://onlinejudge.u-aizu.ac.jp/problems/0341
・繰り返す呪文
僕が作成、提出したコードは、以下のとおりです。
・Aizu Online Judge in C++ #Volume3 - 0341 : Repeated Spell
/* Aizu Online Judge in C++ #Volume3 - 0341 : Repeated Spell https://onlinejudge.u-aizu.ac.jp/problems/0341 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; using ll=long long; const ll mod=1e9+7; int main(void){ string t,b; cin>>t>>b; vector<ll> dp(b.size()+1,0); dp[0]=1; for(ll i=0;i<t.size();i++){ for(ll j=b.size();j>=0;j--){ if(t[i]==b[j]){ dp[j+1]+=dp[j]; dp[j+1]%=mod; } } } cout<<dp[b.size()]<<endl; return 0; }
設問の出典は、プログラミング問題のオンライン採点システム「Aizu Online Judge(AOJ)」です。
http://judge.u-aizu.ac.jp/onlinejudge/