提出 #25065595
ソースコード 拡げる
#include <bits/stdc++.h>
//#include <ext/pb_ds/assoc_container.hpp>
//#include <ext/pb_ds/tree_policy.hpp>
#define ld long double
#define ull unsigned long long
#define ll long long
#define pb push_back
#define ppb pop_back
#define eb emplace_back
#define pii pair<int, int>
#define pll pair<ll, ll>
#define all(x) x.begin(), x.end()
#define rall(x) x.rbegin(), x.rend()
#define fast_io cout.tie(0), cin.tie(0), ios_base::sync_with_stdio(0)
//#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
//#pragma GCC optimize("Ofast")
//#pragma GCC optimize("O3")
using namespace std;
//using namespace __gnu_pbds;
//typedef tree<ll, null_type, less_equal<>, rb_tree_tag,
// tree_order_statistics_node_update> ordered_set;
ld eps = (ld) 1 / 1e6;
ll inf_ll = 1e18 + 100, mod1 = 1e9 + 7, mod2 = 998244353;
ll mersen_mod = 2305843009213693951;
ll sqr(ll a) { return a * a; }
ll qb(ll a) { return a * a * a; }
ll gcd(ll a, ll b) { return !a ? b : gcd(b % a, a); }
ll add(ll a, ll b, ll mod) {
a += b;
if (a >= mod) a -= mod;
return a;
}
ll sub(ll a, ll b, ll mod) {
a -= b;
if (a < 0) a += mod;
return a;
}
ll binpow(ll a, ll b, ll mod) {
return b ? (b % 2 ? (a * (sqr(binpow(a, b / 2, mod)) % mod)) % mod :
sqr(binpow(a, b / 2, mod)) % mod) : 1;
}
ll binmult(ll a, ll b, ll mod) {
return b ? (b % 2 ? (2 * binmult(a, b / 2, mod) + a) % mod :
(2 * binmult(a, b / 2, mod)) % mod) : 0;
}
/// Code here
ll dp[200001];
int main() {
fast_io;
string a;
ll i, j, n, ans;
cin >> a;
n = a.size();
a = '0' + a;
dp[1] = 1, ans = 1;
for (i = 2; i <= n; i++) {
if (a[i] == a[i - 1]) dp[i] = dp[i - 2];
else {
for (j = i - 2; j > 0 && a[i] != a[j]; j--) dp[i] = add(dp[i], dp[j], mod1);
dp[i] = add(dp[i], dp[j], mod1);
if (!j) dp[i] = add(dp[i], 1, mod1);
else dp[i] = add(dp[i], dp[j - 1], mod1);
}
ans = add(ans, dp[i], mod1);
}
cout << ans;
//cerr << '\n' << "Time execute: " << clock() / (double)CLOCKS_PER_SEC << " sec" << '\n';
return 0;
}
提出情報
ジャッジ結果
| セット名 |
Sample |
All |
| 得点 / 配点 |
0 / 0 |
500 / 500 |
| 結果 |
|
|
| セット名 |
テストケース |
| Sample |
sample_00.txt, sample_01.txt, sample_02.txt, sample_03.txt |
| All |
case_00.txt, case_01.txt, case_02.txt, case_03.txt, case_04.txt, case_05.txt, case_06.txt, case_07.txt, case_08.txt, case_09.txt, case_10.txt, case_11.txt, case_12.txt, case_13.txt, case_14.txt, case_15.txt, case_16.txt, case_17.txt, case_18.txt, case_19.txt, case_20.txt, case_21.txt, case_22.txt, case_23.txt, case_24.txt, case_25.txt, case_26.txt, sample_00.txt, sample_01.txt, sample_02.txt, sample_03.txt |
| ケース名 |
結果 |
実行時間 |
メモリ |
| case_00.txt |
AC |
16 ms |
5268 KiB |
| case_01.txt |
AC |
15 ms |
5168 KiB |
| case_02.txt |
AC |
15 ms |
5228 KiB |
| case_03.txt |
AC |
16 ms |
5264 KiB |
| case_04.txt |
AC |
16 ms |
5248 KiB |
| case_05.txt |
AC |
18 ms |
5264 KiB |
| case_06.txt |
AC |
24 ms |
5228 KiB |
| case_07.txt |
AC |
18 ms |
5280 KiB |
| case_08.txt |
AC |
21 ms |
5268 KiB |
| case_09.txt |
AC |
15 ms |
5156 KiB |
| case_10.txt |
AC |
15 ms |
5248 KiB |
| case_11.txt |
AC |
19 ms |
5228 KiB |
| case_12.txt |
AC |
14 ms |
5224 KiB |
| case_13.txt |
AC |
20 ms |
5160 KiB |
| case_14.txt |
AC |
19 ms |
5280 KiB |
| case_15.txt |
AC |
13 ms |
5216 KiB |
| case_16.txt |
AC |
17 ms |
5156 KiB |
| case_17.txt |
AC |
13 ms |
5176 KiB |
| case_18.txt |
AC |
15 ms |
5280 KiB |
| case_19.txt |
AC |
18 ms |
5276 KiB |
| case_20.txt |
AC |
13 ms |
4680 KiB |
| case_21.txt |
AC |
2 ms |
3556 KiB |
| case_22.txt |
AC |
13 ms |
4984 KiB |
| case_23.txt |
AC |
5 ms |
3832 KiB |
| case_24.txt |
AC |
4 ms |
3784 KiB |
| case_25.txt |
AC |
5 ms |
5216 KiB |
| case_26.txt |
AC |
2 ms |
3624 KiB |
| sample_00.txt |
AC |
2 ms |
3624 KiB |
| sample_01.txt |
AC |
2 ms |
3536 KiB |
| sample_02.txt |
AC |
2 ms |
3624 KiB |
| sample_03.txt |
AC |
2 ms |
3492 KiB |