QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#600549#9132. Painting FencesANIG#TL 1493ms159904kbC++141.8kb2024-09-29 17:16:032024-09-29 17:16:03

Judging History

你现在查看的是最新测评结果

  • [2024-09-29 17:16:03]
  • 评测
  • 测评结果:TL
  • 用时:1493ms
  • 内存:159904kb
  • [2024-09-29 17:16:03]
  • 提交

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...

output:


result: