QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#269209 | #7880. Streak Manipulation | ucup-team1447# | AC ✓ | 156ms | 77896kb | C++14 | 3.3kb | 2023-11-29 13:55:11 | 2023-11-29 13:55:13 |
Judging History
answer
// what is matter? never mind.
#pragma GCC optimize("Ofast")
#pragma GCC optimize("unroll-loops")
//#pragma GCC target("sse,sse2,sse3,sse4,popcnt,abm,mmx,avx,avx2")
#include<bits/stdc++.h>
#define For(i,a,b) for(int i=(a);i<=(b);++i)
#define Rep(i,a,b) for(int i=(a);i>=(b);--i)
#define ll long long
//#define int long long
#define ull unsigned long long
using namespace std;
inline int read()
{
char c=getchar();int x=0;bool f=0;
for(;!isdigit(c);c=getchar())f^=!(c^45);
for(;isdigit(c);c=getchar())x=(x<<1)+(x<<3)+(c^48);
if(f)x=-x;return x;
}
#define mod 998244353
struct modint{
int x;
modint(int o=0){x=o;}
modint &operator = (int o){return x=o,*this;}
modint &operator +=(modint o){return x=x+o.x>=mod?x+o.x-mod:x+o.x,*this;}
modint &operator -=(modint o){return x=x-o.x<0?x-o.x+mod:x-o.x,*this;}
modint &operator *=(modint o){return x=1ll*x*o.x%mod,*this;}
modint &operator ^=(int b){
modint a=*this,c=1;
for(;b;b>>=1,a*=a)if(b&1)c*=a;
return x=c.x,*this;
}
modint &operator /=(modint o){return *this *=o^=mod-2;}
friend modint operator +(modint a,modint b){return a+=b;}
friend modint operator -(modint a,modint b){return a-=b;}
friend modint operator *(modint a,modint b){return a*=b;}
friend modint operator /(modint a,modint b){return a/=b;}
friend modint operator ^(modint a,int b){return a^=b;}
friend bool operator ==(modint a,int b){return a.x==b;}
friend bool operator !=(modint a,int b){return a.x!=b;}
bool operator ! () {return !x;}
modint operator - () {return x?mod-x:0;}
bool operator <(const modint&b)const{return x<b.x;}
};
inline modint qpow(modint x,int y){return x^y;}
vector<modint> fac,ifac,iv;
inline void initC(int n)
{
if(iv.empty())fac=ifac=iv=vector<modint>(2,1);
int m=iv.size(); ++n;
if(m>=n)return;
iv.resize(n),fac.resize(n),ifac.resize(n);
For(i,m,n-1){
iv[i]=iv[mod%i]*(mod-mod/i);
fac[i]=fac[i-1]*i,ifac[i]=ifac[i-1]*iv[i];
}
}
inline modint C(int n,int m){
if(m<0||n<m)return 0;
return initC(n),fac[n]*ifac[m]*ifac[n-m];
}
inline modint sign(int n){return (n&1)?(mod-1):(1);}
#define fi first
#define se second
#define pb push_back
#define mkp make_pair
typedef pair<int,int>pii;
typedef vector<int>vi;
#define maxn 1000005
#define inf 0x3f3f3f3f
int n,m,k;
int sum[maxn];
char s[maxn];
int f[maxn][6][3];
int S(int l,int r,int x){
int res=sum[r]-sum[l-1];
if(x) res=r-l+1-res;
return res;
}
void chkmin(int&x,int y){
x=min(x,y);
}
bool chk(int mid)
{
memset(f,63,sizeof f);
f[1][0][0]=0;
For(i,1,n+1){
For(j,0,k){
chkmin(f[i+1][j][0],f[i][j][0]+(s[i+1]=='1'?1e9:0));
chkmin(f[i+1][j][0],f[i][j][1]+(s[i+1]=='1'?1e9:0));
chkmin(f[i+1][j][1],f[i][j][0]+(s[i+1]=='0'));
chkmin(f[i+1][j][1],f[i][j][1]+(s[i+1]=='0'));
if(j<k)chkmin(f[i+mid][j+1][1],f[i][j][0]+S(i+1,i+mid,1));
}
// if(mid==7)
// {
// for(int j=0;j<=k;j++)printf("%d %d,",f[i][j][0],f[i][j][1]);
// puts("");
// }
}
return min(f[n+1][k][0],f[n+1][k][1])<=m;
}
signed main()
{
n=read(),m=read(),k=read();
scanf("%s",s+2);s[1]='0',s[n+2]='0';
For(i,1,n+2)sum[i]=sum[i-1]+(s[i]&1);
int res=-1,l=1,r=n;
while(l<=r){
int mid=l+r>>1;
if(chk(mid))res=mid,l=mid+1;
else r=mid-1;
}
cout<<res;
return 0;
}
/*
*/
这程序好像有点Bug,我给组数据试试?
详细
Test #1:
score: 100
Accepted
time: 8ms
memory: 75340kb
input:
8 3 2 10110110
output:
3
result:
ok 1 number(s): "3"
Test #2:
score: 0
Accepted
time: 16ms
memory: 75276kb
input:
12 3 3 100100010011
output:
2
result:
ok 1 number(s): "2"
Test #3:
score: 0
Accepted
time: 3ms
memory: 75652kb
input:
4 4 4 0000
output:
-1
result:
ok 1 number(s): "-1"
Test #4:
score: 0
Accepted
time: 43ms
memory: 75968kb
input:
1000 200 5 0001001000101001110010011001101010110101101100010100111110111111010010001100100111100101011100011101011001110010111100100100011001010011000100011111010110100001101110101001110000001000111010000111110100111101100110011010011111000111101001010011000111010111010100101111100000100001011001010...
output:
99
result:
ok 1 number(s): "99"
Test #5:
score: 0
Accepted
time: 47ms
memory: 74060kb
input:
1000 200 5 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000...
output:
40
result:
ok 1 number(s): "40"
Test #6:
score: 0
Accepted
time: 34ms
memory: 74736kb
input:
1000 200 5 1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111...
output:
-1
result:
ok 1 number(s): "-1"
Test #7:
score: 0
Accepted
time: 128ms
memory: 75120kb
input:
200000 5 3 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000...
output:
2
result:
ok 1 number(s): "2"
Test #8:
score: 0
Accepted
time: 134ms
memory: 77252kb
input:
200000 5 2 0001010000000000000000010011000001000000000000000001100000000001000000000000010011000010000000000110000010000010000100000000001001010000011000100000000001001000000000011110000100000011000000100110100110001011000000000000000000000000110001000000100000011100010011010001010010010100000000000...
output:
13
result:
ok 1 number(s): "13"
Test #9:
score: 0
Accepted
time: 153ms
memory: 77240kb
input:
200000 5 5 0001100001100000001011100010111101100100110001000011001011111101110100000000000111101001110100010101010100110100100011001100000010110111110010111011110100100101011001100101001010110100011101011001000101011110110010001011111101011101011010101101010001111110101001001110000000000010101001001...
output:
17
result:
ok 1 number(s): "17"
Test #10:
score: 0
Accepted
time: 150ms
memory: 75476kb
input:
200000 5 5 1011101011100110010111011011101110111111101111110111101111011110110111111101111011110101101110001100111110010101111011111101111111111111110110111111111011111111111111111111111111011100101111001110011100111100001111111111110101111011110010111001101111111111110110010101100111111111111111011...
output:
45
result:
ok 1 number(s): "45"
Test #11:
score: 0
Accepted
time: 139ms
memory: 77456kb
input:
200000 5 4 1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111...
output:
24879
result:
ok 1 number(s): "24879"
Test #12:
score: 0
Accepted
time: 139ms
memory: 75412kb
input:
200000 5 5 1010101010010101001010100101011010110010100101000010100101010101001010110101010101010101101010110101010101010101011001010101010101010101011001010101010100010101010010101000101001010101010110010101010110101101010111101010110101010101010010101010110111010010110111011010101010101110111001101...
output:
9
result:
ok 1 number(s): "9"
Test #13:
score: 0
Accepted
time: 115ms
memory: 76244kb
input:
200000 5 1 1001001011010101010101010101110101010100101001001010101101110101011010110101010110101010101011010101010101010010101010101000100110111110101101010101101011010101010101011010101010101010101010010101010101010110101001010101010101010110101010101010101011011010001010101011010101010101010101001...
output:
20
result:
ok 1 number(s): "20"
Test #14:
score: 0
Accepted
time: 141ms
memory: 77172kb
input:
200000 5 5 0001000000001111111100001000000000111100000111111100000000000011111000011110000000111001111100110000000000000000110000000000000000000011111111100000000111001111111111100000000011100000000010000111100111110000000111111110001111110111001100111111111001011111110111000111111111111111111111111...
output:
50
result:
ok 1 number(s): "50"
Test #15:
score: 0
Accepted
time: 133ms
memory: 75176kb
input:
200000 5 4 0111111111111111111101100000111111100101011111110000000111111110010011111111111101111111110000001001111111111111111110001111111111111111111111111111111111111111111101110110000000000111111111111001101111111111010000111111110000011000111100001111111110101111111101100000011101000111111111111...
output:
90
result:
ok 1 number(s): "90"
Test #16:
score: 0
Accepted
time: 139ms
memory: 75768kb
input:
200000 5 4 0000100000110000000111100000000000111111100011111110001001110000000000001000000001100000011110000000010000000000011110000111111111101110000000100000000111100000011000011111001001000000000011000100000000000000001110000001000010000000000011111000000000000000000100000000011000000000000000000...
output:
22
result:
ok 1 number(s): "22"
Test #17:
score: 0
Accepted
time: 121ms
memory: 75596kb
input:
200000 170 3 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000...
output:
57
result:
ok 1 number(s): "57"
Test #18:
score: 0
Accepted
time: 126ms
memory: 75124kb
input:
200000 170 2 00000000000000011000001010110010100000001010100001010010100011010110101100010100100010000001010000010000001000001010111100000101000110010000000010100000000100100010000000000110001000000001000101000010100000000000010100101100100011000100100000000010000101001010000000010000110000000000000...
output:
143
result:
ok 1 number(s): "143"
Test #19:
score: 0
Accepted
time: 149ms
memory: 77160kb
input:
200000 170 5 00000000110010110001010110100010110110100111110011111010101001111011101011111011101010100000001100110100000011000110001100000111011111001011001101011111111011101010100111001100011010100100001100010000001010010101011100001010111100011100101110111001110101011011100011100010010011001000100...
output:
107
result:
ok 1 number(s): "107"
Test #20:
score: 0
Accepted
time: 136ms
memory: 77480kb
input:
200000 170 5 10110010111110111011101101110111110111111011111110011111010111111111010100111001010111111111111001111011011011111111101011111011111111111010111111100111001001111100010111111001111011111011101100101110010101111101101011111101110011111110010001111101101101011110110111011111101010010111111...
output:
225
result:
ok 1 number(s): "225"
Test #21:
score: 0
Accepted
time: 139ms
memory: 75920kb
input:
200000 170 4 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111...
output:
44639
result:
ok 1 number(s): "44639"
Test #22:
score: 0
Accepted
time: 145ms
memory: 75280kb
input:
200000 170 5 10101011010101100101010101000101010110010101010010101001010101101001010110101001010010101010101010101011010101010010100101101110101010101001010101101100101010101101011010101010101010100110101110110101101100100101010101000110101010101001010101111010101010101000100101010101010101010101010...
output:
85
result:
ok 1 number(s): "85"
Test #23:
score: 0
Accepted
time: 108ms
memory: 77712kb
input:
200000 170 1 00101101010101011010101101010100100100110111110010100100110110101010100110101010011010101011101001101010101011101010010101010100101100101010110101001010101101101010101010001010010110100010110101010110101110101001010010010101101010100010101011001010101000010101110010110101010101101101010...
output:
371
result:
ok 1 number(s): "371"
Test #24:
score: 0
Accepted
time: 152ms
memory: 75672kb
input:
200000 170 5 00111111100111111100000000011100111000000001110000000000101111111110000111111000000001111111111111111100010000111000000001111101111110001111000001111100000000111111100011111111111111111111110110000000000111111111111111100000001111111111111110000111111011111000001111111111100001111111100...
output:
174
result:
ok 1 number(s): "174"
Test #25:
score: 0
Accepted
time: 138ms
memory: 75840kb
input:
200000 170 4 00100101111111111110000111111000001111111111111111111111001000011111111001110011111111111100001111111111111110111111111111111111111111011110001111100111111111111111111111111111011101111111111110011111111111111000011101111101101111100001111111111111111011110001111111111111001111111000001...
output:
342
result:
ok 1 number(s): "342"
Test #26:
score: 0
Accepted
time: 135ms
memory: 76200kb
input:
200000 170 4 00000111111111000000010000000000111000100110000000110000000000011000000111100000000110000000000000011100000000000111111100000010010000001000000000000000000000000000000000000000000011000110000000000000010000000000000000000000000000000000011100000000110000000000010000000000000000111111000...
output:
98
result:
ok 1 number(s): "98"
Test #27:
score: 0
Accepted
time: 131ms
memory: 77468kb
input:
200000 5780 3 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000...
output:
1928
result:
ok 1 number(s): "1928"
Test #28:
score: 0
Accepted
time: 131ms
memory: 77356kb
input:
200000 5780 2 0000001000000000011010000000000000100110101010000011011010000000000100011001001001001010100010100001100100000000010010010000000000000001010001001000000011000001000110000000000001001000110110010100001001110010000000010010000100011000001010110000001001000001010001000000100011000000100000...
output:
3962
result:
ok 1 number(s): "3962"
Test #29:
score: 0
Accepted
time: 156ms
memory: 75340kb
input:
200000 5780 5 1110111001110010111101101000110001011010111111011011110101000101010001101110111111001100001011110010110000011011110100110100011001010110010011000011110101011101000111001111001000001001101001111001110000011001010001110101011000010101000011001011000010110010001001010111010111001001011101...
output:
2436
result:
ok 1 number(s): "2436"
Test #30:
score: 0
Accepted
time: 147ms
memory: 75192kb
input:
200000 5780 5 1101110011001101101110011100111101101111001011111101010101111100111010111111101111111101011110100111001111111110110111101100111111111111111111111011011111110101111111001111111110110111011111111111110001110101111110011111111100110010101111110111010111110110110110011101111110111101111111...
output:
4936
result:
ok 1 number(s): "4936"
Test #31:
score: 0
Accepted
time: 129ms
memory: 76248kb
input:
200000 5780 4 1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111...
output:
36897
result:
ok 1 number(s): "36897"
Test #32:
score: 0
Accepted
time: 149ms
memory: 75544kb
input:
200000 5780 5 1101011101010101010101010101010101011010101010101101010110101010110101010101101101010100111001010101010101000101010010100010100101010101010100101101010101011011001001101011011010101011001001001010110110101010101010100010110110100011010010101101010010101010101011010101010101010101011010...
output:
2372
result:
ok 1 number(s): "2372"
Test #33:
score: 0
Accepted
time: 110ms
memory: 75948kb
input:
200000 5780 1 1010101101010100111010101011110010110101010111010101010101010101101000101011001010110101011010101111101101000010100100101101010101001001010110010101001010011010101010101110101000110101010101010101011010100110101010100101010101101001011011010100100110100100101010101001010101010110101101...
output:
11661
result:
ok 1 number(s): "11661"
Test #34:
score: 0
Accepted
time: 151ms
memory: 75716kb
input:
200000 5780 5 0000111110001111111111111111111000000111111111100000000011111111111100011100011100000000000000000111000001111110000000111111110000000011100001111111111111100000000000000011100000001100011111011110100011111001111111110000000001111110011111111111111111001110000000000000000001000000000000...
output:
2622
result:
ok 1 number(s): "2622"
Test #35:
score: 0
Accepted
time: 144ms
memory: 77232kb
input:
200000 5780 4 1111111000100111111111111101001101111111111110111111100001101111100010101111110001111111111110011111111111111111110011111111100011110001111101111111111111111111111111111111111110011111111110000001100011111111111111111111111111111111101111111111111000001111111111111111110011011111110000...
output:
6266
result:
ok 1 number(s): "6266"
Test #36:
score: 0
Accepted
time: 142ms
memory: 75880kb
input:
200000 5780 4 0000000000010000101111110001000001111111000000001100000000101111111111011101111110011111000000000011110000000000000000001000110000000000000000000000000000111001111100000000000000100000010000000000001100000000001111111100000000000111100100000111000001100000000000010000000010000011110000...
output:
2083
result:
ok 1 number(s): "2083"
Test #37:
score: 0
Accepted
time: 129ms
memory: 75844kb
input:
200000 196520 3 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000...
output:
65514
result:
ok 1 number(s): "65514"
Test #38:
score: 0
Accepted
time: 128ms
memory: 75996kb
input:
200000 196520 2 00101100000000000100000000110000000000000010110010000000100000001001001000000000000000010100101000000101000000100000000000001010100011000100000100000000000001001000000000011100010010001000001000100100000000000101000100001100000000000000110000000000000000010000000000100000000001101000...
output:
99999
result:
ok 1 number(s): "99999"
Test #39:
score: 0
Accepted
time: 145ms
memory: 76064kb
input:
200000 196520 5 01101011111001100101110100100001001101001111101101001000101011111100011000001100001001001101111001100000110100010001100110001001111010011110101010010000111101001000101110001111010010001110100101110100011001111110000111001011001101011000101010100101011001000111100001001101100010100101...
output:
39998
result:
ok 1 number(s): "39998"
Test #40:
score: 0
Accepted
time: 137ms
memory: 75116kb
input:
200000 196520 5 11111011110001111110111110110110011011111010011111010111001111101000101011111111101111110110111111111111111111001010111111000111111111110111101011111001101111110110001111101011101101110011110010111010110011110111111011011000010100111011101101110111111001000000110111111100011011001100...
output:
39998
result:
ok 1 number(s): "39998"
Test #41:
score: 0
Accepted
time: 132ms
memory: 77896kb
input:
200000 196520 4 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111...
output:
41481
result:
ok 1 number(s): "41481"
Test #42:
score: 0
Accepted
time: 135ms
memory: 75172kb
input:
200000 196520 5 10101101101010110101011101010100101010101010100101010100110101010010101000101010101010101010110101010101001101010110101101010101010110101100010101010101010101010101010101011010010101010100100101010101001010101010100100111001101010101101010100101011101010101010101010101010101010101010...
output:
39998
result:
ok 1 number(s): "39998"
Test #43:
score: 0
Accepted
time: 114ms
memory: 75952kb
input:
200000 196520 1 01010010101010001101010101010101010101001010100110110101010101010010110100101010101101010101010101010011011101010100110101101011101010101101010110101001010101011101011010100101001010101011010101001101010110101011011010101010100101010101001010110101010101101010101010100101010101001010...
output:
200000
result:
ok 1 number(s): "200000"
Test #44:
score: 0
Accepted
time: 137ms
memory: 75808kb
input:
200000 196520 5 00001111101000111111011110011111100111000000000000000000111111000000000000011110000000000000000011111110000011100011000000000111001111111000000001001111010100001111111111111101111100000000000001100000000000111000011111111110001111111110000000000011100000000000100011111111110000001110...
output:
39995
result:
ok 1 number(s): "39995"
Test #45:
score: 0
Accepted
time: 132ms
memory: 77168kb
input:
200000 196520 4 01110000001001111111000000011001000000011111111111001100000001000000110000111111111111110011111111111000000000001111111111011111111111111111110011111111000001000011111111111111111011111100111101111111111111111111111111001111001011100111100111111111111110111001111100011111100001111111...
output:
49993
result:
ok 1 number(s): "49993"
Test #46:
score: 0
Accepted
time: 141ms
memory: 75384kb
input:
200000 196520 4 01000000001100000001100000000000000000011000001011110000000000001000000110000000000000000000000000000000000000000010000111111110000000011100000000000011000000000000001101100000000000000000000000000000000111110000000000000000000011111000000000110100000000111110000001111111111111000000...
output:
49998
result:
ok 1 number(s): "49998"
Extra Test:
score: 0
Extra Test Passed