QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#74005#3161. Another Coin Weighing PuzzleUCSC_Ravioli#WA 125ms3432kbC++20734b2023-01-30 08:29:242023-01-30 08:29:25

Judging History

你现在查看的是最新测评结果

  • [2023-08-10 23:21:45]
  • System Update: QOJ starts to keep a history of the judgings of all the submissions.
  • [2023-01-30 08:29:25]
  • 评测
  • 测评结果:WA
  • 用时:125ms
  • 内存:3432kb
  • [2023-01-30 08:29:24]
  • 提交

answer

#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define endl '\n'

int main(){
	ios::sync_with_stdio(false); cin.tie(0);
	int m, k;
	cin >> m >> k;
	
	const ll mod = 998244353;
	
	vector<ll> dp(m+1);
	dp[0] = 1;
	ll x = 1;
	ll y = 1;
	for(int i=1; i<=m; i++){
		x = x*k%mod;
		y = y*(k-1)%mod;
		dp[i] = x - y;
		dp[i] = (dp[i]%mod+mod)%mod;
	}
	
	// for(int i=0; i<=m; i++){
		// cout << dp[i] << ' ';
	// }
	// cout << endl;
	
	for(int i=m; i>=1; i--){
		vector<ll> ndp(m+1);
		for(int j=0; j<m; j++){
			ndp[j] = dp[j] + 2*dp[j+1];
			ndp[j] %= mod;
			// cout << i << " weighings, bits = " << j << ": " << dp[i][j] << endl;
		}
		swap(dp, ndp);
	}
	cout << dp[0] << endl;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 2ms
memory: 3384kb

input:

2 1

output:

9

result:

ok single line: '9'

Test #2:

score: 0
Accepted
time: 2ms
memory: 3400kb

input:

2 2

output:

17

result:

ok single line: '17'

Test #3:

score: -100
Wrong Answer
time: 125ms
memory: 3432kb

input:

10000 10000

output:

843432142

result:

wrong answer 1st lines differ - expected: '689223145', found: '843432142'