QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#709960#9536. Athlete Welcome Ceremonykinoko777WA 207ms455356kbC++233.4kb2024-11-04 17:39:142024-11-04 17:39:14

Judging History

This is the latest submission verdict.

  • [2024-11-04 17:39:14]
  • Judged
  • Verdict: WA
  • Time: 207ms
  • Memory: 455356kb
  • [2024-11-04 17:39:14]
  • Submitted

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)
    {
        cnt1 += s[i] == '?';
        per(j, 0, 300)
            per(k, 0, 300)
            {
                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: 181ms
memory: 242700kb

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: 190ms
memory: 240728kb

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: 186ms
memory: 230444kb

input:

1 1
?
0 1 1

output:

2

result:

ok single line: '2'

Test #4:

score: 0
Accepted
time: 180ms
memory: 250924kb

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: 196ms
memory: 250832kb

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: 207ms
memory: 341132kb

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: 177ms
memory: 341572kb

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: 175ms
memory: 453664kb

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: 179ms
memory: 455356kb

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'