提出 #75456688


ソースコード 拡げる

#include<bits/stdc++.h>
#define ll long long
#define rep(i,l,r)for(int i=(l);i<=(r);++i)
#define per(i,r,l)for(int i=(r);i>=(l);--i)

using namespace std;
const int N=2e5+10,P=998244353;
ll f[N+5],v[N+5],p[N+5],r[N+5];
int n,m,c[N+5];
struct node{int l,n;};
vector<node>g;

ll ks(ll a,ll b){ll r=1;for(;b;b>>=1,a=a*a%P)if(b&1)r=r*a%P;return r;}
void init(int n){
    f[0]=p[0]=1;rep(i,1,n)f[i]=f[i-1]*i%P,p[i]=p[i-1]*2%P;
    v[n]=ks(f[n],P-2);per(i,n-1,0)v[i]=v[i+1]*(i+1)%P;
}
ll C(int n,int m){return(m<0||m>n)?0:f[n]*v[m]%P*v[n-m]%P;}
ll H(int n,int k){
    if(n<0)return 0;if(!n)return 1;
    ll s=0;for(int i=0;i*(k+2)<=n;++i){
        ll t=C(n-i*(k+1),i)*p[n-i*(k+2)]%P;
        s=(i&1)?(s-t+P)%P:(s+t)%P;
    }
    return s;
}

signed main(){
    ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
    string s;cin>>n>>s;init(n+2);int l=0;ll d=0;
    for(char x:s)if(x=='.')l++,d++;else{if(l)c[l]++,m=max(m,l);l=0;}
    if(l)c[l]++,m=max(m,l);
    rep(i,1,n)if(c[i])g.push_back({i,c[i]});
    ll pr=1,al=ks(2,d);
    rep(k,1,n){
        if(k>=m){cout<<(al-pr+P)%P<<"\n";pr=al;continue;}
        ll nw=1;
        for(auto&i:g){
            ll x=(H(i.l,k)-H(i.l-k-1,k)+P)%P;
            nw=nw*ks(x,i.n)%P;
        }
        cout<<(nw-pr+P)%P<<"\n";pr=nw;
    }
    return 0;
}

提出情報

提出日時
問題 G - Count Holidays
ユーザ Fourier_WJY
言語 C++23 (GCC 15.2.0)
得点 600
コード長 1323 Byte
結果 AC
実行時間 45 ms
メモリ 8616 KiB

コンパイルエラー

./Main.cpp: In function 'long long int H(int, int)':
./Main.cpp:20:5: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
   20 |     if(n<0)return 0;if(!n)return 1;
      |     ^~
./Main.cpp:20:21: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
   20 |     if(n<0)return 0;if(!n)return 1;
      |                     ^~

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 600 / 600
結果
AC × 3
AC × 44
セット名 テストケース
Sample 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt
All 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt, 01_random_01.txt, 01_random_02.txt, 01_random_03.txt, 01_random_04.txt, 01_random_05.txt, 01_random_06.txt, 01_random_07.txt, 01_random_08.txt, 01_random_09.txt, 01_random_10.txt, 01_random_11.txt, 01_random_12.txt, 01_random_13.txt, 01_random_14.txt, 01_random_15.txt, 02_max_01.txt, 02_max_02.txt, 02_max_03.txt, 02_max_04.txt, 02_max_05.txt, 02_max_06.txt, 02_max_07.txt, 02_max_08.txt, 02_max_09.txt, 02_max_10.txt, 02_max_11.txt, 02_max_12.txt, 02_max_13.txt, 02_max_14.txt, 02_max_15.txt, 03_corner_01.txt, 03_corner_02.txt, 03_corner_03.txt, 03_corner_04.txt, 04_hand_01.txt, 04_hand_02.txt, 04_hand_03.txt, 04_hand_04.txt, 04_hand_05.txt, 04_hand_06.txt, 04_hand_07.txt
ケース名 結果 実行時間 メモリ
00_sample_01.txt AC 1 ms 3532 KiB
00_sample_02.txt AC 1 ms 3776 KiB
00_sample_03.txt AC 1 ms 3540 KiB
01_random_01.txt AC 5 ms 5072 KiB
01_random_02.txt AC 12 ms 8136 KiB
01_random_03.txt AC 3 ms 4552 KiB
01_random_04.txt AC 6 ms 5576 KiB
01_random_05.txt AC 13 ms 8120 KiB
01_random_06.txt AC 11 ms 6728 KiB
01_random_07.txt AC 14 ms 6216 KiB
01_random_08.txt AC 11 ms 5532 KiB
01_random_09.txt AC 27 ms 7692 KiB
01_random_10.txt AC 25 ms 7204 KiB
01_random_11.txt AC 25 ms 7444 KiB
01_random_12.txt AC 20 ms 6804 KiB
01_random_13.txt AC 8 ms 4772 KiB
01_random_14.txt AC 34 ms 8476 KiB
01_random_15.txt AC 9 ms 4812 KiB
02_max_01.txt AC 37 ms 8588 KiB
02_max_02.txt AC 38 ms 8544 KiB
02_max_03.txt AC 35 ms 8524 KiB
02_max_04.txt AC 32 ms 8520 KiB
02_max_05.txt AC 39 ms 8460 KiB
02_max_06.txt AC 32 ms 8616 KiB
02_max_07.txt AC 31 ms 8416 KiB
02_max_08.txt AC 34 ms 8476 KiB
02_max_09.txt AC 35 ms 8372 KiB
02_max_10.txt AC 24 ms 8476 KiB
02_max_11.txt AC 18 ms 8468 KiB
02_max_12.txt AC 15 ms 8420 KiB
02_max_13.txt AC 13 ms 8464 KiB
02_max_14.txt AC 12 ms 8416 KiB
02_max_15.txt AC 12 ms 8544 KiB
03_corner_01.txt AC 1 ms 3552 KiB
03_corner_02.txt AC 1 ms 3652 KiB
03_corner_03.txt AC 45 ms 8532 KiB
03_corner_04.txt AC 12 ms 8428 KiB
04_hand_01.txt AC 24 ms 8472 KiB
04_hand_02.txt AC 24 ms 8504 KiB
04_hand_03.txt AC 24 ms 8540 KiB
04_hand_04.txt AC 12 ms 8392 KiB
04_hand_05.txt AC 12 ms 8468 KiB
04_hand_06.txt AC 12 ms 8416 KiB
04_hand_07.txt AC 12 ms 8468 KiB