QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#89095 | #1283. Paper-cutting | XZTmaxsmall67 | AC ✓ | 288ms | 108836kb | C++14 | 1.4kb | 2023-03-18 21:35:54 | 2023-03-18 21:35:54 |
Judging History
answer
#include<bits/stdc++.h>
#define ull unsigned long long
using namespace std;
const int N=1e6+100;
int n,m;
ull h1[N],h2[N];
int c[N];
vector<int>vis[N];
string s[N];
int chk(int l,int mid){return mid-c[mid]+1<=l;}
void manacher(ull *s,int n,int &l,int &r)
{
int R=0,mid=0;s[n+1]=123848755314ull;
for(int i=1;i<=n;i++)
{
c[i]=i>R?0:min(R-i,c[2*mid-i]);
while(i-c[i]>0&&s[i-c[i]]==s[i+c[i]+1])c[i]++;
if(i+c[i]>R)R=i+c[i],mid=i;
}
l=1;for(int i=1;i+i-l<n;i++)if(chk(l,i))l=i+1;
r=n;for(int i=n-1;i-(r-i-1)>=l;i--)if(chk(i-(r-i-1),i))r=i;
}
int l1,l2,r1,r2;
const int dx[]={1,-1,0,0},dy[]={0,0,1,-1};
void dfs(int x,int y)
{
vis[x][y]=1;
for(int i=0;i<4;i++)
{
int tx=x+dx[i],ty=y+dy[i];
if(tx>=l1&&ty>=l2&&tx<=r1&&ty<=r2&&s[tx-1][ty-1]=='0'&&!vis[tx][ty])dfs(tx,ty);
}
}
void solve()
{
cin>>n>>m;
for(int i=0;i<n;i++)cin>>s[i];
for(int i=1;i<=max(n,m)+1;i++)h1[i]=h2[i]=0;
for(int i=1;i<=n;i++)vis[i].resize(m+1);
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
h1[i]=h1[i]*2+(s[i-1][j-1]=='0'),
h2[j]=h2[j]*2+(s[i-1][j-1]=='0'),
vis[i][j]=0;
manacher(h1,n,l1,r1),manacher(h2,m,l2,r2);
int ans=0;
for(int i=l1;i<=r1;i++)
for(int j=l2;j<=r2;j++)
if(!vis[i][j]&&s[i-1][j-1]=='0')dfs(i,j),ans++;
cout<<ans<<endl;
}
signed main()
{
ios::sync_with_stdio(0);
int _;cin>>_;
while(_--)solve();
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 25ms
memory: 58004kb
input:
3 2 5 11001 11001 5 7 1001100 0110011 0101101 0010010 1000000 3 2 11 11 11
output:
1 4 0
result:
ok 3 tokens
Test #2:
score: 0
Accepted
time: 288ms
memory: 58044kb
input:
100000 3 3 010 101 101 4 2 10 10 10 10 4 2 11 00 00 11 7 1 1 0 0 1 1 0 0 6 1 1 0 0 1 1 1 5 2 11 00 00 11 11 10 1 1 0 0 0 0 0 0 0 0 1 9 1 0 0 0 0 0 0 0 0 0 10 1 1 1 1 1 1 1 1 1 1 0 9 1 0 0 0 0 0 0 1 1 0 1 10 0010000100 7 1 0 0 0 0 0 0 0 4 2 00 00 00 00 7 1 0 1 0 0 0 0 1 10 1 1 0 0 0 0 0 0 0 0 1 9 1 1...
output:
3 1 1 1 1 1 1 1 1 1 2 1 1 2 1 1 1 1 2 2 1 1 1 0 1 0 2 1 1 1 1 2 1 0 2 2 2 1 2 1 2 2 1 0 1 1 1 2 1 1 1 1 1 1 2 0 1 1 1 1 1 1 1 1 0 3 2 1 3 1 1 3 1 1 1 2 1 1 1 1 1 3 1 1 2 0 1 1 1 2 2 1 1 1 1 2 2 1 2 2 3 2 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 2 2 2 1 1 5 1 1 1 2 1 1 2 2 2 2 2 1 1 1 2 2 2 1 1 2 2 1 3 1 1 2 1 ...
result:
ok 100000 tokens
Test #3:
score: 0
Accepted
time: 82ms
memory: 58016kb
input:
10000 65 1 1 0 1 0 1 1 1 1 1 0 0 1 1 1 0 1 1 0 1 0 1 0 1 0 1 1 1 1 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 0 0 1 0 1 0 0 1 0 1 0 0 1 0 1 1 0 1 0 0 1 0 81 1 0 0 1 1 1 0 0 1 1 0 0 1 1 1 1 1 1 0 0 1 1 0 0 1 1 1 1 1 1 1 1 0 0 1 1 0 0 1 1 1 1 1 1 0 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 0 0 1 0 1 0 1 0 1 0 1 1 0 1 1 1 0 0 ...
output:
17 17 2 4 4 11 2 3 5 4 4 9 8 5 5 6 2 7 5 8 1 3 1 12 3 1 3 9 4 9 1 4 1 5 4 3 9 2 3 4 3 5 7 7 9 10 10 3 4 1 3 13 7 11 11 14 20 4 6 3 5 3 11 5 9 2 4 9 8 10 8 5 6 5 11 7 2 4 3 6 3 4 9 2 7 4 9 5 4 5 1 2 11 2 2 2 15 3 12 3 6 3 3 11 7 4 12 4 17 4 5 5 1 8 25 3 10 4 5 9 1 3 5 2 4 3 13 4 4 8 7 9 9 1 9 3 1 2 8...
result:
ok 10000 tokens
Test #4:
score: 0
Accepted
time: 64ms
memory: 58148kb
input:
1000 977 1 1 1 1 1 1 1 0 0 1 1 0 0 0 1 0 1 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 1 1 0 1 1 0 1 1 0 0 1 0 1 0 1 1 1 1 1 0 0 1 0 0 0 1 0 0 1 1 1 0 1 0 0 0 1 1 1 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 1 0 0 1 0 0 1 1 0 0 0 1 1 0 0 0 1 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 0 0 0 1 0 1 0 1 0 1 1 1 0 1 0 0 0 1 0 0 1 1 0...
output:
102 167 21 25 74 28 12 62 62 42 22 88 14 77 147 11 47 89 18 48 40 6 44 235 22 130 118 31 19 60 117 42 10 2 99 36 87 9 143 37 73 67 25 12 37 28 13 54 31 90 47 108 12 107 27 18 6 20 3 29 52 89 49 17 30 13 12 41 52 49 19 117 33 10 63 32 65 35 19 16 19 28 64 67 68 34 103 46 31 67 22 41 117 27 113 112 42...
result:
ok 1000 tokens
Test #5:
score: 0
Accepted
time: 45ms
memory: 58712kb
input:
100 8148 1 1 1 1 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0...
output:
681 33 1156 568 237 528 311 229 1604 547 872 271 794 491 557 322 241 633 807 304 160 435 636 355 604 95 27 962 160 761 24 23 711 294 356 14 472 207 428 2371 539 1007 201 140 158 352 162 188 437 771 1286 1003 67 560 592 1002 408 238 71 74 359 1736 717 630 462 581 790 745 80 656 562 441 737 838 322 32...
result:
ok 100 tokens
Test #6:
score: 0
Accepted
time: 62ms
memory: 63172kb
input:
10 92831 1 0 1 0 0 0 1 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 1 1 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 1 0 0 0 0 1 0 1 0 0 1 1 1 0 1 0 0 1 0 1 0 1 1 0 1 1 1 0 0 0 1 1 0 1 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 0 0 0 1 0 1 1 1 0 1 0 0 1 0 1 0 1 1 0 1...
output:
5125 5258 4511 3428 198 5218 11694 9294 13007 1583
result:
ok 10 tokens
Test #7:
score: 0
Accepted
time: 59ms
memory: 62872kb
input:
10 53270 1 0 1 1 0 1 1 1 1 0 1 0 0 1 1 1 0 0 0 1 0 1 0 1 1 1 0 0 1 0 1 1 1 1 0 0 1 1 0 1 1 0 1 1 0 0 0 1 0 0 0 1 0 1 1 0 1 1 1 0 0 0 1 0 1 1 0 0 1 0 0 0 1 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 1 0 0 0 1 1 0 1 1 1 1 1 0 0 0 1 1 1 1 1 0 0 1 0 0 0 0 0 0 1 1 0 1 1 0 0 1 1 0 0 1 0 1 1 1 0 0 1 1 1 0 0 1 0 1 1 0...
output:
6730 5017 389 2178 4679 5753 17391 4823 4599 1961
result:
ok 10 tokens
Test #8:
score: 0
Accepted
time: 10ms
memory: 62840kb
input:
1 1000 1000 011010011001011010010110011010011001011001101001011010011001011010010110011010010110100110010110011010011001011010010110011010011001011001101001011010011001011001101001100101101001011001101001011010011001011010010110011010011001011001101001011010011001011010010110011010010110100110010110...
output:
8
result:
ok "8"
Test #9:
score: 0
Accepted
time: 17ms
memory: 62880kb
input:
1 1000 1000 010010100100101001010010010100100101001010010010100101001001010010010100101001001010010010100101001001010010100100101001001010010100100101001010010010100100101001010010010100100101001010010010100101001001010010010100101001001010010010100101001001010010100100101001001010010100100101001010...
output:
41761
result:
ok "41761"
Test #10:
score: 0
Accepted
time: 29ms
memory: 82152kb
input:
1 1 1000000 011010011001011010010110011010011001011001101001011010011001011010010110011010010110100110010110011010011001011010010110011010011001011001101001011010011001011001101001100101101001011001101001011010011001011010010110011010011001011001101001011010011001011010010110011010010110100110010110...
output:
2
result:
ok "2"
Test #11:
score: 0
Accepted
time: 27ms
memory: 82220kb
input:
1 1 1000000 010010100100101001010010010100100101001010010010100101001001010010010100101001001010010010100101001001010010100100101001001010010100100101001010010010100100101001010010010100100101001010010010100101001001010010010100101001001010010010100101001001010010100100101001001010010100100101001010...
output:
196419
result:
ok "196419"
Test #12:
score: 0
Accepted
time: 24ms
memory: 72460kb
input:
1 2 500000 0110100110010110100101100110100110010110011010010110100110010110100101100110100101101001100101100110100110010110100101100110100110010110011010010110100110010110011010011001011010010110011010010110100110010110100101100110100110010110011010010110100110010110100101100110100101101001100101100...
output:
4
result:
ok "4"
Test #13:
score: 0
Accepted
time: 20ms
memory: 72420kb
input:
1 2 500000 0100101001001010010100100101001001010010100100101001010010010100100101001010010010100100101001010010010100101001001010010010100101001001010010100100101001001010010100100101001001010010100100101001010010010100100101001010010010100100101001010010010100101001001010010010100101001001010010100...
output:
242787
result:
ok "242787"
Test #14:
score: 0
Accepted
time: 19ms
memory: 62968kb
input:
1 1000 1000 001110010110101011110111111111111001000011000011000011000010011001000011000011000011000010011001000011000011000011000010011001000011000011000011000010011001000011000011000011000010011001000011000011000011000010011001000011000011000011000010011001000011000011000011000010011001000011000011...
output:
1964
result:
ok "1964"
Test #15:
score: 0
Accepted
time: 23ms
memory: 62880kb
input:
1 1000 1000 110111101111100011000110100110100000111100101011101010010001000101110101000101011101101111011001011100001011001101101101101101101101101000000101101101101101101101101101101101101101101101101000000101101101101101101101101101101101101101101101101000000101101101101101101101101101101101101101...
output:
31620
result:
ok "31620"
Test #16:
score: 0
Accepted
time: 17ms
memory: 62840kb
input:
1 1000 1000 001101100000000000000001100110000000000000000111100000000000000001100110000000000000000111100000000000000001100110000000000000000111100000000000000001100110000000000000000110111101100000000000000001100110000000000000000111100000000000000001100110000000000000000111100000000000000001100110...
output:
15347
result:
ok "15347"
Test #17:
score: 0
Accepted
time: 28ms
memory: 62880kb
input:
1 1000 1000 100100111100100100111100100000010011110010010011110011111100111100100100111100100000010011110010010011110011001111001001001111001000000100111100100100111100111111001111001001001111001000000100111100100100111100100100110010010011110010010011110010000001001111001001001111001111110011110010...
output:
11049
result:
ok "11049"
Test #18:
score: 0
Accepted
time: 13ms
memory: 62884kb
input:
1 1000 1000 110011111111110011111111110011101101110011111111110011111111110011001100111111111100111111111100111011011100111111111100111111111100110111101100111111111100111111111100111011011100111111111100111111111100110011001111111111001111111111001110110111001111111111001111111111001111001111111111...
output:
29274
result:
ok "29274"
Test #19:
score: 0
Accepted
time: 30ms
memory: 72456kb
input:
1 2 500000 1110011110101110101010111000001111010001010011111011100010010101111111100011100100110000110100000011111011001100110111011100101000001001101001010001100000101101100110011100100010001100001000110001011100111101010100000101010010101100100111110010011100101011001011001000110110001100100110110...
output:
110436
result:
ok "110436"
Test #20:
score: 0
Accepted
time: 25ms
memory: 72512kb
input:
1 2 500000 0010101010101111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111...
output:
74967
result:
ok "74967"
Test #21:
score: 0
Accepted
time: 15ms
memory: 64944kb
input:
1 10 100000 011001110011010111100111000010101101110101100001010100011000100111110100101101011011001000111101001100101100001111101011000111111011001010110101101110111011111011011110010101011010010111010000100001111100111111010100111110011011101001001010000101001100011011010011011100111100011001110011...
output:
4288
result:
ok "4288"
Test #22:
score: 0
Accepted
time: 8ms
memory: 66644kb
input:
1 5 200000 0000011000110110110101000110110111110001000011011110001111111100010101010010111111011010001111001011000111111011101111111110010101011000001111010110001000000010101001100001100100110110101100000010100011110100010001001110100011101100110010111110001111011001010101101110110110011001110111101...
output:
22390
result:
ok "22390"
Test #23:
score: 0
Accepted
time: 33ms
memory: 69556kb
input:
1 3 333333 0011101010011000011110000111111000011110000000011110000111111000011110000000011110000111111000011110000000011110000111111000011110000110110110000111100001111110000111100000000111100001111110000111100000000111100001111110000111100000000111100001111110000111100001100110000111100001111110000...
output:
17650
result:
ok "17650"
Test #24:
score: 0
Accepted
time: 17ms
memory: 63948kb
input:
1 20000 50 01111000010000101101000010110110011011010000101101 10000111101111010010111101001001100100101111010010 10000111101111010010111101001001100100101111010010 10000111101111010010111101001001100100101111010010 01111000010000101101000010110110011011010000101101 1000011110111101001011110100100110...
output:
3184
result:
ok "3184"
Test #25:
score: 0
Accepted
time: 19ms
memory: 64352kb
input:
1 25000 40 0000101100110100001011001101000101011101 0000101100110100001011001101000101011101 1111010011001011110100110010111010100010 1111010011001011110100110010111010100010 0000101100110100001011001101000101011101 0000101100110100001011001101000101011101 0000101100110100001011001101000101011101 11...
output:
23804
result:
ok "23804"
Test #26:
score: 0
Accepted
time: 25ms
memory: 64936kb
input:
1 33333 30 010000011110000001111000000100 010000011110000001111000000100 101111100001111110000111111011 010000011110000001111000000100 101111100001111110000111111011 101111100001111110000111111011 010000011110000001111000000100 101111100001111110000111111011 101111100001111110000111111011 1011111000...
output:
22032
result:
ok "22032"
Test #27:
score: 0
Accepted
time: 24ms
memory: 66240kb
input:
1 100000 10 0000000010 1111111101 1111111101 0000000010 0000000010 1111111101 0000000010 1111111101 1111111101 0000000010 0000000010 0000000010 1111111101 1111111101 0000000010 0000000010 1111111101 1111111101 0000000010 1111111101 1111111101 1111111101 0000000010 1111111101 1111111101 0000000010 11...
output:
29876
result:
ok "29876"
Test #28:
score: 0
Accepted
time: 125ms
memory: 108836kb
input:
1 1000000 1 1 0 0 0 0 0 1 0 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 0 0 1 1 0 0 1 1 1 1 1 1 1 1 0 0 1 1 0 0 1 1 1 1 1 1 1 1 0 0 1 1 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 0 0 1 1 0 0 1 1 1 1 1 1 1 1 0 0 1 1 0 0 1 1 1 1 1 1 1 1 0 0 1 1 0 0 1 1 1 1 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 1 1 1 1 0 0 1 1 0 0 1 ...
output:
30793
result:
ok "30793"