QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#600549 | #9132. Painting Fences | ANIG# | TL | 1493ms | 159904kb | C++14 | 1.8kb | 2024-09-29 17:16:03 | 2024-09-29 17:16:03 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N=1e6+5,M=1005,inf=1e9;
int n,m,res=inf,dp[M][M],dy1[N],dy2[N];
vector<int>p[N],tmp[N];
bitset<N>q[M],nw;
set<int>jl;
multiset<int>rs;
map<int,int>f1[N],f2[N];
int lg2(int x){
if(x==0)return -1;
return __lg(x);
}
int gets(int l,int r,int n){
if(l<1)l=1;
if(r>n)r=n;
if(l==1&&r==n)return 0;
if(n==m){
if(f2[l].count(r))return f2[l][r];
return f2[l][r]=min(r<n?gets(l,l+2*(r-l)+1,n):inf,l>1?gets(r-2*(r-l)-1,r,n):inf)+1;
}else{
if(f1[l].count(r))return f1[l][r];
return f1[l][r]=min(r<n?gets(l,l+2*(r-l)+1,n):inf,l>1?gets(r-2*(r-l)-1,r,n):inf)+1;
}
}
void del(int x){
auto w=jl.insert(x).first,w1=w,w2=w;
w1--;w2++;
int l=(*w1)+1,r=(*w2)-1;
if(l<=r)rs.erase(rs.find(gets(l,r,m)));
if(l<x)rs.insert(gets(l,x-1,m));
if(x<r)rs.insert(gets(x+1,r,m));
}
int gets(){
return *(rs.begin());
}
signed main(){
ios::sync_with_stdio(0);
cin.tie(0);cout.tie(0);
cin>>n>>m;
for(int i=1;i<=n;i++){
p[i].resize(m+1);
for(int j=1;j<=m;j++){
char c;
cin>>c;
p[i][j]=c-'0';
}
}
if(n>m){
swap(n,m);
for(int i=1;i<=n;i++){
tmp[i].resize(m+1);
for(int j=1;j<=m;j++)tmp[i][j]=p[j][i];
}
for(int i=1;i<=m;i++)p[i].clear();
for(int i=1;i<=n;i++)p[i]=tmp[i];
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
q[i][j]=p[i][j]^1;
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++)nw[j]=1;
jl.clear();rs.clear();
jl.insert(0);jl.insert(m+1);
rs.insert(0);
for(int j=i;j<=n;j++){
auto g=nw&q[j];
for(int k=g._Find_first();k<N;k=g._Find_next(k)){
// cout<<k<<endl;
del(k);
nw[k]=0;
}
if(!rs.size())break;
//cout<<i<<" "<<j<<" "<<n<<" "<<gets(i,j,n)<<" "<<gets()<<endl;
res=min(res,gets(i,j,n)+gets());
//cout<<i<<" "<<j<<" "<<res<<endl;
}
}
cout<<res;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 11ms
memory: 147736kb
input:
4 4 1001 0100 0110 0110
output:
3
result:
ok 1 number(s): "3"
Test #2:
score: 0
Accepted
time: 15ms
memory: 146792kb
input:
3 3 000 111 111
output:
1
result:
ok 1 number(s): "1"
Test #3:
score: 0
Accepted
time: 12ms
memory: 147844kb
input:
4 3 011 011 001 110
output:
2
result:
ok 1 number(s): "2"
Test #4:
score: 0
Accepted
time: 19ms
memory: 147812kb
input:
4 4 0011 1111 1111 1111
output:
1
result:
ok 1 number(s): "1"
Test #5:
score: 0
Accepted
time: 19ms
memory: 147516kb
input:
4 4 0000 0010 0100 1000
output:
4
result:
ok 1 number(s): "4"
Test #6:
score: 0
Accepted
time: 18ms
memory: 147548kb
input:
2 5 00010 00111
output:
2
result:
ok 1 number(s): "2"
Test #7:
score: 0
Accepted
time: 17ms
memory: 146516kb
input:
5 5 11111 11111 11111 01111 11111
output:
1
result:
ok 1 number(s): "1"
Test #8:
score: 0
Accepted
time: 23ms
memory: 147504kb
input:
5 5 00101 00000 00001 00000 00100
output:
6
result:
ok 1 number(s): "6"
Test #9:
score: 0
Accepted
time: 8ms
memory: 149392kb
input:
5 5 00000 00000 00001 10000 00000
output:
6
result:
ok 1 number(s): "6"
Test #10:
score: 0
Accepted
time: 31ms
memory: 147740kb
input:
10 10 1111111111 1111111111 1111111111 1111111111 1111111111 1111111111 1111111111 1111111111 1111111111 1111111111
output:
0
result:
ok 1 number(s): "0"
Test #11:
score: 0
Accepted
time: 23ms
memory: 147568kb
input:
10 10 0001000000 0000000000 0000000000 0000000001 0000000001 0000000001 0000000000 0000000000 0000000000 0000000001
output:
6
result:
ok 1 number(s): "6"
Test #12:
score: 0
Accepted
time: 18ms
memory: 148084kb
input:
10 10 1111111110 1111111110 1111111110 1111111110 1111111110 1111100110 1111100010 1111101110 1111101100 1111100000
output:
1
result:
ok 1 number(s): "1"
Test #13:
score: 0
Accepted
time: 12ms
memory: 147888kb
input:
10 10 0000000000 0000001000 0000000000 0000000000 0000000000 0100000000 0000000000 0000000100 0000000000 0000000000
output:
8
result:
ok 1 number(s): "8"
Test #14:
score: 0
Accepted
time: 12ms
memory: 147400kb
input:
30 31 0000000000000000000000000000000 0000000000000000000000000000000 1111111111111110000000000000011 1111111111111110000000000000011 1111111111111110000000000000011 1111111111111111111111111111111 1111111111111111111111111111111 1111111111111111111111111111100 1111111111111111111111111111100 111111...
output:
3
result:
ok 1 number(s): "3"
Test #15:
score: 0
Accepted
time: 19ms
memory: 148000kb
input:
30 31 0000000000000000000000000000000 0000000000000000000000000000000 0000000001000000000000000000000 0000000000000000000000100000000 0000000000000000000100000000000 0000000000000000001000000000000 0000000000000010000000000000000 0000000000000000000000000000000 0000000000000000000000000100110 000000...
output:
10
result:
ok 1 number(s): "10"
Test #16:
score: 0
Accepted
time: 11ms
memory: 147712kb
input:
30 31 0000000000000000000000000000000 0000000011111111111111000000000 0000000011111111111111000000000 1111111111111111111111000000000 1111111111111111111111000000000 1111111111111111111111000000000 1111111111111111111111000111100 1111111111111111111111000111100 1111111111111111111111000111100 111111...
output:
3
result:
ok 1 number(s): "3"
Test #17:
score: 0
Accepted
time: 15ms
memory: 148680kb
input:
30 31 0000001010000000000000000000000 0000000000000000000000000000000 0000000000000000001000000000000 0000010000000000000000000000000 0000000000000000000000000000000 0000000000000000000000000000000 0000001000010000000000000000000 0000100000010010000000000000000 0000000001000001000000010000000 000000...
output:
9
result:
ok 1 number(s): "9"
Test #18:
score: 0
Accepted
time: 33ms
memory: 148328kb
input:
50 50 01111111111111111111111111111111111111111111111111 11111111111111111111111111111111111111111111111111 11111111111111111111111111111111111111111111111111 11111111111111111111111111111111111111111111111111 11111111111111111111111111111111111111111111111111 111111111111111111111111111111111111111...
output:
1
result:
ok 1 number(s): "1"
Test #19:
score: 0
Accepted
time: 22ms
memory: 148280kb
input:
50 50 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000...
output:
6
result:
ok 1 number(s): "6"
Test #20:
score: 0
Accepted
time: 17ms
memory: 146820kb
input:
50 50 00000000000000000000000000000000000000000000000000 00000000000000000000000001000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000...
output:
11
result:
ok 1 number(s): "11"
Test #21:
score: 0
Accepted
time: 30ms
memory: 147028kb
input:
50 50 00000111111111111111111111111111111111111111111111 00001111111111111111111111111111111111111111111111 00001111111111111111111111111111111111111111111111 11111111111111111111111111111111111111111111111111 11111111111111111111111111111111111111111111111111 111111111111111111111111111111111111111...
output:
1
result:
ok 1 number(s): "1"
Test #22:
score: 0
Accepted
time: 33ms
memory: 148468kb
input:
50 50 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000111111100 00000000000000000000000000000000000000000111111100 00111111111111111111111110000000000000000111111100 001111111111111111111111100000000000000...
output:
4
result:
ok 1 number(s): "4"
Test #23:
score: 0
Accepted
time: 24ms
memory: 147004kb
input:
50 50 00000000000000000000000000000000000100000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000001 00000000000000000000000000000000000000000000000000 000000000000000000000000000000000001000...
output:
11
result:
ok 1 number(s): "11"
Test #24:
score: 0
Accepted
time: 23ms
memory: 146572kb
input:
1 20 01111111111111111111
output:
1
result:
ok 1 number(s): "1"
Test #25:
score: 0
Accepted
time: 10ms
memory: 148064kb
input:
1 20 00111111111111111111
output:
1
result:
ok 1 number(s): "1"
Test #26:
score: 0
Accepted
time: 19ms
memory: 146988kb
input:
1 20 00111111111111111110
output:
2
result:
ok 1 number(s): "2"
Test #27:
score: 0
Accepted
time: 20ms
memory: 146736kb
input:
1 100 0000000000000000000000000000000000000001000000000100000000000000000100000000000000000000000000000000
output:
7
result:
ok 1 number(s): "7"
Test #28:
score: 0
Accepted
time: 20ms
memory: 148140kb
input:
1 500 000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111...
output:
2
result:
ok 1 number(s): "2"
Test #29:
score: 0
Accepted
time: 15ms
memory: 146644kb
input:
1 500 000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111...
output:
2
result:
ok 1 number(s): "2"
Test #30:
score: 0
Accepted
time: 20ms
memory: 147524kb
input:
1 500 000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111...
output:
2
result:
ok 1 number(s): "2"
Test #31:
score: 0
Accepted
time: 15ms
memory: 148408kb
input:
1 500 000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111...
output:
2
result:
ok 1 number(s): "2"
Test #32:
score: 0
Accepted
time: 15ms
memory: 147136kb
input:
1 500 000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111...
output:
2
result:
ok 1 number(s): "2"
Test #33:
score: 0
Accepted
time: 7ms
memory: 146896kb
input:
1 1000 00000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111...
output:
2
result:
ok 1 number(s): "2"
Test #34:
score: 0
Accepted
time: 24ms
memory: 149108kb
input:
1 1000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000010000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000001000000000000000000000000000000000000000000000000000...
output:
10
result:
ok 1 number(s): "10"
Test #35:
score: 0
Accepted
time: 17ms
memory: 147364kb
input:
1 1000 00000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111...
output:
1
result:
ok 1 number(s): "1"
Test #36:
score: 0
Accepted
time: 19ms
memory: 147272kb
input:
1 1000 00000000000000000000000000000000000010000010000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000001000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000...
output:
9
result:
ok 1 number(s): "9"
Test #37:
score: 0
Accepted
time: 20ms
memory: 147748kb
input:
1 1000 00000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111...
output:
2
result:
ok 1 number(s): "2"
Test #38:
score: 0
Accepted
time: 24ms
memory: 147044kb
input:
1 1000 00000000000000000000000000000000000100000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000...
output:
10
result:
ok 1 number(s): "10"
Test #39:
score: 0
Accepted
time: 24ms
memory: 147472kb
input:
1 1000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111...
output:
2
result:
ok 1 number(s): "2"
Test #40:
score: 0
Accepted
time: 12ms
memory: 147152kb
input:
1 1000 00000000000000000000000000000000000000000000000000000000000000000001100000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000...
output:
9
result:
ok 1 number(s): "9"
Test #41:
score: 0
Accepted
time: 24ms
memory: 148368kb
input:
1 1000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111...
output:
2
result:
ok 1 number(s): "2"
Test #42:
score: 0
Accepted
time: 16ms
memory: 147836kb
input:
1 1000 00000000010000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000010000000000000000000000000000010000000000000000000101000000...
output:
10
result:
ok 1 number(s): "10"
Test #43:
score: 0
Accepted
time: 548ms
memory: 151052kb
input:
300 300 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000...
output:
3
result:
ok 1 number(s): "3"
Test #44:
score: 0
Accepted
time: 563ms
memory: 151844kb
input:
300 300 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000...
output:
3
result:
ok 1 number(s): "3"
Test #45:
score: 0
Accepted
time: 571ms
memory: 152492kb
input:
300 300 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000...
output:
3
result:
ok 1 number(s): "3"
Test #46:
score: 0
Accepted
time: 556ms
memory: 152556kb
input:
300 300 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000...
output:
4
result:
ok 1 number(s): "4"
Test #47:
score: 0
Accepted
time: 1493ms
memory: 159904kb
input:
500 500 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000...
output:
3
result:
ok 1 number(s): "3"
Test #48:
score: 0
Accepted
time: 1484ms
memory: 159824kb
input:
500 500 0111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111...
output:
1
result:
ok 1 number(s): "1"
Test #49:
score: 0
Accepted
time: 145ms
memory: 152408kb
input:
500 500 1010101100000101011010110001000111111000100101101110001110101000111000111110011100000001111110111000011111011000000101001011010101011100001110100100011101010011101110010011011001011000001101110011010011111000000011110001001101000001011001011011010100100110010000111110010100011000000011100000...
output:
14
result:
ok 1 number(s): "14"
Test #50:
score: 0
Accepted
time: 1479ms
memory: 158924kb
input:
500 500 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000...
output:
3
result:
ok 1 number(s): "3"
Test #51:
score: 0
Accepted
time: 1480ms
memory: 158156kb
input:
500 500 0011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111...
output:
1
result:
ok 1 number(s): "1"
Test #52:
score: 0
Accepted
time: 133ms
memory: 152448kb
input:
500 500 1101011110100110010100101010110101001101011111001000011111001100000100010000000110001010101001010100110001101101010001100111010011100000001011011000001100110101101011000101000001001111001011000100010110011010111010001011100111100101001010010110100110010011001011001100011010101111001010101000...
output:
14
result:
ok 1 number(s): "14"
Test #53:
score: -100
Time Limit Exceeded
input:
1000 1000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000...