QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#709926 | #9536. Athlete Welcome Ceremony | kinoko777 | WA | 212ms | 453640kb | C++23 | 3.4kb | 2024-11-04 17:28:06 | 2024-11-04 17:28:07 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
#define int long long
typedef long long ll;
typedef unsigned long long ull;
typedef long double ld;
typedef pair<int, int> p11;
typedef pair<string, int> ps1;
typedef pair<ll, ll> p1111;
#define vv vector
#define pb emplace_back
#define IOS ios::sync_with_stdio(false); cin.tie(0); cout.tie(0)
#define fi first
#define se second
#define endl '\n'
#define Endl '\n'
#define all(x) (x).begin(), (x).end()
#define rall(x) (x).rbegin(), (x).rend()
#define per(a, b, c) for(int a = b; a <= c; a ++)
#define iper(a, b, c) for(int a = b; a < c; a ++)
#define rep(a, b, c) for(int a = b; a >= c; a --)
#define irep(a, b, c) for(int a = b; a > c; a --)
#define aper(A) for(auto i : A) cout << i << ' ';cout << '\n'
#define lowbit(x) ((x) & (-x))
#define debug(x) cout << (x) << endl
#define yes cout << "Yes" << endl
#define no cout << "No" << endl
#define YES cout << "YES" << endl
#define NO cout << "NO" << endl
#define PAI acos(-1)
using ll = long long;
mt19937_64 rnd(chrono::steady_clock::now().time_since_epoch().count());
template<class T> void umin(T &x,T y){if(x>y)x=y;}
template<class T> void umax(T &x,T y){if(x<y)x=y;}
const int mod = 1e9 + 7, inf = 1e18;
const double eps = 1e-9;
void add(int &x, int y){x = (x + y) % mod;}
void pre_work(){}
const int N = 310;
int dp[N][N][N][3];
int cnt[N][N][N];
int n, m;
void solve()
{
dp[0][0][0][0] = dp[0][0][0][1] = dp[0][0][0][2] = 1;
cin >> n >> m;
string s;
cin >> s;
s = ' ' + s;
int c = 0;
per(i, 1, n)
c += s[i] == '?';
int cnt1 = 0;
per(i, 1, n)
per(j, 0, 300)
per(k, 0, 300)
{
cnt1 += s[i] == '?';
if(s[i] == 'a')
dp[i][j][k][0] = (dp[i - 1][j][k][1] + dp[i - 1][j][k][2]) % mod;
else if(s[i] == 'b')
dp[i][j][k][1] = (dp[i - 1][j][k][0] + dp[i - 1][j][k][2]) % mod;
else if(s[i] == 'c')
dp[i][j][k][2] = (dp[i - 1][j][k][0] + dp[i - 1][j][k][1]) % mod;
else if(s[i] == '?')
{
if(j) dp[i][j][k][0] = (dp[i - 1][j - 1][k][1] + dp[i - 1][j - 1][k][2]) % mod;
if(k) dp[i][j][k][1] = (dp[i - 1][j][k - 1][0] + dp[i - 1][j][k - 1][2]) % mod;
if(cnt1 - j - k >= 0) dp[i][j][k][2] = (dp[i - 1][j][k][0] + dp[i - 1][j][k][1]) % mod;
}
}
per(i, 0, 300)
per(j, 0, 300)
if(c - i - j >= 0)
cnt[i][j][c - i - j] = (dp[n][i][j][0] + dp[n][i][j][1] + dp[n][i][j][2]) % mod;
per(i, 0, 300)
per(j, 0, 300)
per(k, 1, 300)
cnt[i][j][k] = (cnt[i][j][k] + cnt[i][j][k - 1]) % mod;
per(i, 0, 300)
per(j, 1, 300)
per(k, 0, 300)
cnt[i][j][k] = (cnt[i][j][k] + cnt[i][j - 1][k]) % mod;
per(i, 1, 300)
per(j, 0, 300)
per(k, 0, 300)
cnt[i][j][k] = (cnt[i][j][k] + cnt[i - 1][j][k]) % mod;
while(m -- )
{
int x, y, z;
cin >> x >> y >> z;
cout << cnt[x][y][z] / 2 << endl;
}
}
signed main()
{
#ifdef LOCAL
freopen("oo.in", "r", stdin);
freopen("oo.out", "w", stdout);
#endif
IOS;
int tt = 1;
// cin >> tt;
pre_work();
while(tt --)
{
solve();
}
return 0;
}
/*
3 1
1 2
*/
詳細信息
Test #1:
score: 100
Accepted
time: 191ms
memory: 242908kb
input:
6 3 a?b??c 2 2 2 1 1 1 1 0 2
output:
3 1 1
result:
ok 3 lines
Test #2:
score: 0
Accepted
time: 193ms
memory: 242800kb
input:
6 3 ?????? 2 2 2 2 3 3 3 3 3
output:
30 72 96
result:
ok 3 lines
Test #3:
score: 0
Accepted
time: 176ms
memory: 230284kb
input:
1 1 ? 0 1 1
output:
2
result:
ok single line: '2'
Test #4:
score: 0
Accepted
time: 212ms
memory: 250912kb
input:
10 10 acab?cbaca 0 2 0 1 1 2 4 2 3 1 1 1 3 5 1 0 5 2 2 2 0 1 2 5 4 3 0 1 1 3
output:
0 1 1 1 1 0 1 1 1 1
result:
ok 10 lines
Test #5:
score: 0
Accepted
time: 201ms
memory: 250904kb
input:
10 10 ?c?c?cbac? 10 5 1 5 8 7 9 2 6 5 7 1 5 2 6 5 6 5 5 10 3 9 1 10 2 5 9 1 2 9
output:
16 16 11 16 11 16 16 5 11 0
result:
ok 10 lines
Test #6:
score: 0
Accepted
time: 193ms
memory: 341108kb
input:
50 100 ?abacbacab?cbcbcb?acabcbabcbcacbababc?caba?acacbca 8 3 8 2 4 8 8 7 3 0 9 2 10 8 7 7 6 5 4 10 2 6 9 3 3 6 6 9 10 8 2 5 8 8 1 0 3 5 0 1 0 6 5 0 8 6 5 5 1 7 9 7 7 10 4 7 5 6 6 4 10 1 2 4 1 7 10 0 8 7 6 3 1 9 1 4 7 2 8 4 0 8 6 1 5 10 4 5 8 2 5 8 4 4 5 9 5 2 1 1 10 9 4 10 1 8 4 3 8 9 9 8 0 1 0 8 0...
output:
8 8 8 0 8 8 6 8 8 8 8 0 0 0 1 8 4 8 8 8 2 4 1 8 1 6 0 2 8 6 8 8 1 4 2 8 8 0 0 8 2 0 8 8 8 4 8 8 8 8 2 0 0 4 8 8 1 8 7 6 7 0 8 8 8 0 4 7 8 4 0 8 0 4 8 8 8 7 8 4 7 2 8 8 8 0 2 2 8 8 8 4 4 0 8 0 8 8 1 1
result:
ok 100 lines
Test #7:
score: 0
Accepted
time: 199ms
memory: 341440kb
input:
50 100 b????????bca?????c?b??ca?acac?b?b???ca?ab???a?a??? 35 43 36 12 49 47 7 11 34 38 44 22 42 17 10 49 8 38 18 26 44 6 18 14 28 29 6 48 32 47 29 15 48 1 5 33 24 17 18 10 27 32 19 10 34 2 23 9 14 24 39 46 12 34 9 49 26 21 8 46 43 43 3 31 16 2 8 27 7 24 41 35 17 25 31 0 13 47 24 31 23 33 40 30 36 39...
output:
34272000 31599360 497244 34272000 17637520 12290752 34272000 93044 415832 34272000 34272000 0 34272000 16360704 27933952 0 34272000 33886976 7896832 12290752 718 24 0 34272000 34272000 0 34272000 34272000 34272000 32254720 0 5666944 34256640 34272000 34272000 12290752 30493248 34256640 20630016 0 10...
result:
ok 100 lines
Test #8:
score: 0
Accepted
time: 203ms
memory: 453640kb
input:
100 1000 c?cbababcabacbacbacacbacabcbabababacababcbcab?cbabacbacbcbcacbab?bcabcbcababcacbabacbcb?babcbab?baca 13 11 4 4 17 20 14 5 2 16 14 15 8 12 17 19 5 11 5 17 12 20 7 6 19 10 1 6 5 0 13 1 9 7 17 1 20 4 16 11 12 18 19 2 16 18 1 11 19 16 3 7 1 0 6 9 16 6 9 16 6 20 7 0 16 20 1 2 8 16 5 20 18 14 18 ...
output:
16 15 14 16 16 16 16 16 8 2 16 8 16 16 16 16 16 2 16 16 16 0 1 16 16 5 1 5 16 16 16 16 16 15 16 13 16 15 2 16 16 1 8 16 16 16 15 0 16 15 16 16 16 16 8 8 16 16 16 16 16 16 8 16 16 1 8 8 16 16 1 16 1 0 16 2 2 16 7 16 16 8 16 16 16 16 1 16 14 16 16 16 16 5 16 16 14 16 11 16 15 11 2 1 8 16 16 7 16 5 16 ...
result:
ok 1000 lines
Test #9:
score: -100
Wrong Answer
time: 207ms
memory: 453352kb
input:
100 1000 ?????c??????????????????????????b???a????a?????????????????????????c???????????????????????????????? 43 38 20 27 40 32 39 27 33 28 50 43 50 3 46 38 46 14 42 48 10 45 25 28 49 10 49 38 17 42 41 49 22 41 18 44 46 47 25 17 44 35 34 43 22 47 42 32 32 44 40 36 41 24 45 38 45 49 44 18 42 34 32 43...
output:
490475656 143989836 119661929 207864463 10104 219100551 479284703 264218525 403846227 159694544 204287063 105920502 191779504 182802705 215438611 438692314 297581200 403917416 393995824 287222624 78695825 95654849 457810426 209349791 85961844 423330490 283007502 111119718 295402274 241594071 5168019...
result:
wrong answer 4th lines differ - expected: '707864467', found: '207864463'