Submission #33870319
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define MOD 998244353
#define rep(i,a,n) for (ll i=a;i<(ll)n;i++)
#define per(i,a,n) for (ll i=n;i-->(ll)a;)
#define pb push_back
ll read(){ll r;scanf("%lld",&r);return r;} // read
int n;
int qpow(ll v,int pwr){
ll r = 1;
while(pwr){
if(pwr%2) (r*=v)%=MOD;
(v*=v)%=MOD;
pwr/=2;
}
return r;
}
int fac[20000010] = {1};
int ifac[20000010];
ll binom(ll n,ll m){
if(n < 0 || m < 0 || m > n) return 0;
return fac[n]*(ll)ifac[m]%MOD*(ll)ifac[n-m]%MOD;
}
int main(){
int n = read();
rep(i,1,2*n+1) fac[i] = fac[i-1]*(ll)i % MOD;
ifac[2*n] = qpow(fac[2*n],MOD-2);
per(i,0,2*n) ifac[i] = ifac[i+1] * (ll)(i+1) % MOD;
ll ans = 0;
ll p3 = qpow(3,n-1);
ll inv3_sq = qpow(3*3, MOD-2);
// sum_{i=[0..2n]}binom(2n,i)binom(2n-i,n-1-2i) 3^{n-1-2i}
rep(i,0,2*n+1) {
if(n-1-2*i < 0) break;
(ans += binom(2*n,i)*binom(2*n-i,n-1-2*i)%MOD*p3) %= MOD;
(p3 *= inv3_sq)%=MOD;
}
printf("%lld\n",ans*qpow(n,MOD-2) % MOD); // 1/n
return 0;
}
Submission Info
| Submission Time |
|
| Task |
H - Beautiful Binary Tree |
| User |
cromarmot |
| Language |
C++ (GCC 9.2.1) |
| Score |
600 |
| Code Size |
1049 Byte |
| Status |
AC |
| Exec Time |
334 ms |
| Memory |
159988 KiB |
Compile Error
./Main.cpp: In function ‘ll read()’:
./Main.cpp:10:21: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
10 | ll read(){ll r;scanf("%lld",&r);return r;} // read
| ~~~~~^~~~~~~~~~~
Judge Result
| Set Name |
Sample |
All |
| Score / Max Score |
0 / 0 |
600 / 600 |
| Status |
|
|
| Set Name |
Test Cases |
| Sample |
00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt |
| All |
00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt, 01_small_00.txt, 01_small_01.txt, 01_small_02.txt, 01_small_03.txt, 01_small_04.txt, 01_small_05.txt, 01_small_06.txt, 01_small_07.txt, 02_medium_00.txt, 02_medium_01.txt, 02_medium_02.txt, 02_medium_03.txt, 02_medium_04.txt, 02_medium_05.txt, 02_medium_06.txt, 02_medium_07.txt, 02_medium_08.txt, 02_medium_09.txt, 03_large_00.txt, 03_large_01.txt, 03_large_02.txt, 03_large_03.txt, 03_large_04.txt, 04_max_00.txt, 04_max_01.txt, 04_max_02.txt, 05_random_00.txt, 05_random_01.txt, 05_random_02.txt, 05_random_03.txt, 05_random_04.txt |
| Case Name |
Status |
Exec Time |
Memory |
| 00_sample_00.txt |
AC |
8 ms |
3764 KiB |
| 00_sample_01.txt |
AC |
1 ms |
3760 KiB |
| 00_sample_02.txt |
AC |
2 ms |
3752 KiB |
| 00_sample_03.txt |
AC |
15 ms |
7216 KiB |
| 01_small_00.txt |
AC |
2 ms |
3656 KiB |
| 01_small_01.txt |
AC |
3 ms |
3872 KiB |
| 01_small_02.txt |
AC |
2 ms |
3756 KiB |
| 01_small_03.txt |
AC |
2 ms |
3764 KiB |
| 01_small_04.txt |
AC |
3 ms |
3768 KiB |
| 01_small_05.txt |
AC |
2 ms |
3868 KiB |
| 01_small_06.txt |
AC |
2 ms |
3680 KiB |
| 01_small_07.txt |
AC |
2 ms |
3768 KiB |
| 02_medium_00.txt |
AC |
2 ms |
3768 KiB |
| 02_medium_01.txt |
AC |
2 ms |
3656 KiB |
| 02_medium_02.txt |
AC |
2 ms |
3768 KiB |
| 02_medium_03.txt |
AC |
2 ms |
3680 KiB |
| 02_medium_04.txt |
AC |
2 ms |
3864 KiB |
| 02_medium_05.txt |
AC |
2 ms |
3864 KiB |
| 02_medium_06.txt |
AC |
2 ms |
3732 KiB |
| 02_medium_07.txt |
AC |
3 ms |
3676 KiB |
| 02_medium_08.txt |
AC |
2 ms |
3760 KiB |
| 02_medium_09.txt |
AC |
2 ms |
3804 KiB |
| 03_large_00.txt |
AC |
278 ms |
133984 KiB |
| 03_large_01.txt |
AC |
302 ms |
146496 KiB |
| 03_large_02.txt |
AC |
270 ms |
128760 KiB |
| 03_large_03.txt |
AC |
322 ms |
155924 KiB |
| 03_large_04.txt |
AC |
215 ms |
102412 KiB |
| 04_max_00.txt |
AC |
334 ms |
159948 KiB |
| 04_max_01.txt |
AC |
332 ms |
159988 KiB |
| 04_max_02.txt |
AC |
330 ms |
159948 KiB |
| 05_random_00.txt |
AC |
114 ms |
54732 KiB |
| 05_random_01.txt |
AC |
193 ms |
92936 KiB |
| 05_random_02.txt |
AC |
167 ms |
78192 KiB |
| 05_random_03.txt |
AC |
280 ms |
135168 KiB |
| 05_random_04.txt |
AC |
65 ms |
31036 KiB |