結果

問題 No.2023 Tiling is Fun
ユーザー vjudge1
提出日時 2025-02-14 16:19:19
言語 C++14
(gcc 13.3.0 + boost 1.87.0)
結果
AC  
実行時間 19 ms / 2,000 ms
コード長 912 bytes
コンパイル時間 1,826 ms
コンパイル使用メモリ 160,540 KB
実行使用メモリ 8,420 KB
最終ジャッジ日時 2025-02-14 16:19:23
合計ジャッジ時間 3,306 ms
ジャッジサーバーID
(参考情報)
judge4 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 2
other AC * 18
権限があれば一括ダウンロードができます

ソースコード

diff #

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int M = 1.5e6 + 5 , MOD = 998244353;
int a , b , c , fac[M] , ifac[M];
int Qpow(int x , int p)
{
	int res = 1; 
	for(; p ; p >>= 1 , x = (ll)x * x % MOD)
		if(p & 1)res = (ll)res * x % MOD;
	return res;
}
void Init(int n)
{
	fac[0] = ifac[0] = 1;
	for(int i = 1 ; i <= n ; i++)
		fac[i] = (ll)fac[i - 1] * i % MOD;
	ifac[n] = Qpow(fac[n] , MOD - 2);
	for(int i = n - 1 ; i >= 1 ; i--)
		ifac[i] = (ll)ifac[i + 1] * (i + 1) % MOD;
}
int A(int n , int m)
{
	return (ll)fac[n] * ifac[n - m] % MOD;
}
int main()
{
   	ios::sync_with_stdio(0);
   	cin.tie(0) , cout.tie(0);
   	cin >> b >> c; a = 1;
   	b-- , c--; Init(a + b + c);
   	int p = 1 , q = 1;
   	for(int i = 0 ; i < a ; i++)
   	{
   		p = (ll)p * A(b + c + i , b) % MOD;
   		q = (ll)q * A(b + i , b) % MOD;
   	}
   	cout << (ll)p * Qpow(q , MOD - 2) % MOD << "\n";
	return 0;
}
0