QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#137558#2354. OokRd_rainydays#WA 2ms7948kbC++201.1kb2023-08-10 13:57:482023-08-10 13:58:58

Judging History

This is the latest submission verdict.

  • [2023-08-10 23:21:45]
  • System Update: QOJ starts to keep a history of the judgings of all the submissions.
  • [2023-08-10 13:58:58]
  • Judged
  • Verdict: WA
  • Time: 2ms
  • Memory: 7948kb
  • [2023-08-10 13:57:48]
  • Submitted

answer

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<bitset>
#define N 250003
#define ll long long
using namespace std;
bitset<N> bt,tp,pr,ppr;
char s[N],p[N];
ll dp[N];
int o,k,n,m;
ll qpow(ll x,int b){
ll ans=1;
b=min(b,60);
return (1ll<<b);
}
ll sum[N];
int main(){
  scanf("%d%d",&o,&k);
  scanf("%s",s+1);
  n=strlen(s+1);
  scanf("%s",p+1);
  int m=strlen(p+1);
  bt.reset();
  tp.reset();
  pr.reset();
  ppr.reset();
  for(int i=1;i<=m;i++)tp.set(i);
  for(int i=1;i<=m;i++){
    if(p[i]!='?')ppr.set(i);
  }
  for(int i=1;i<=m;i++){
    if(p[i]=='k')pr.set(m-i+1);
  }
  for(int i=1;i<=n;i++){
    if(s[i]=='k')sum[i]=sum[i-1]+k;
    else sum[i]=sum[i-1]+o;
  }
  dp[0]=0;
  for(int i=1;i<=n;i++){
    bt<<=1;
    if(s[i]=='k')bt.set(1);
    bt&=tp;
    ll kk=((bt^pr)&ppr).count();
    // cout<<"err:"<<i<<" "<<kk<<endl;
    dp[i]=dp[i-1];
    if(i>=m)dp[i]=max(dp[i],dp[i-m]+(sum[i]-sum[i-m])/qpow(2,kk));
    // cout<<"dp:"<<i<<" "<<dp[i]<<" "<<(sum[i]-sum[i-m])<<" "<<(sum[i]-sum[i-m])/qpow(2,kk)<<endl;
  }
  printf("%lld\n",dp[n]);
 
}

詳細信息

Test #1:

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

input:

2 1
ookookook
koo

output:

10

result:

ok single line: '10'

Test #2:

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

input:

1 3
koooooook
?

output:

13

result:

ok single line: '13'

Test #3:

score: 0
Accepted
time: 1ms
memory: 5952kb

input:

1000 0
kookoo
ook

output:

2000

result:

ok single line: '2000'

Test #4:

score: 0
Accepted
time: 0ms
memory: 5904kb

input:

21 1
ooo
kkk

output:

7

result:

ok single line: '7'

Test #5:

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

input:

1 0
ookko
k??ko

output:

1

result:

ok single line: '1'

Test #6:

score: 0
Accepted
time: 0ms
memory: 5888kb

input:

5 8
koookokkok
oo

output:

32

result:

ok single line: '32'

Test #7:

score: -100
Wrong Answer
time: 2ms
memory: 5888kb

input:

12 13
kkokoookokkooko
?ooo??ook?k?

output:

37

result:

wrong answer 1st lines differ - expected: '18', found: '37'