QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#712594#7781. Sheep Eat WolvesSoestxTL 1541ms4156kbC++231.2kb2024-11-05 16:18:222024-11-05 16:18:23

Judging History

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

  • [2024-11-05 16:18:23]
  • 评测
  • 测评结果:TL
  • 用时:1541ms
  • 内存:4156kb
  • [2024-11-05 16:18:22]
  • 提交

answer

#include <bits/stdc++.h>
using namespace std;
#define int long long
#define pll pair<int,int>
#define fi first
#define se second
typedef long long LL;
typedef unsigned long long ull;
int n, m, k;
const int N = 1e5 + 10, M = 1e5, mod = 998244353;
int num[N], book[N];
int res, cnt;
int p;
int dp[2][110][110];

void dfs_2(int x,int y,int dis);

void dfs_1(int x,int y,int dis)
{
	if(dis>=res) return;
	if(dp[1][x][y]<=dis) return;
	dp[1][x][y]=dis;
	for(int i=0;i<=p&&i<=x;i++)
	{
		for(int j=0;j+i<=p&&j<=y;j++)
		{
			if(x-i&&x-i+k<y-j) continue;
			dfs_2(x-i,y-j,dis+1);
		}
	}
}

void dfs_2(int x,int y,int dis)
{
	int xx=n-x,yy=m-y;
	if(dis>=res) return;
	if(!x)
	{
		res=dis;
		return;
	}
	if(dp[0][x][y]<=dis) return;
	dp[0][x][y]=dis;
	
	for(int i=0;i<=p&&i<=xx;i++)
	{
		for(int j=0;j+i<=p&&j<=yy;j++)
		{
			if(xx-i&&xx-i+k<yy-j) continue;
			dfs_1(x+i,y+j,dis+1);
		}
	}
}

void solve() {

	memset(dp,0x3f,sizeof dp);
	res=1e18;
	cin>>n>>m>>p>>k;
	dfs_1(n,m,0);
	if(res==1e18) res=-1;
	cout<<res<<endl;
}


signed main() {
	ios::sync_with_stdio(false);
	cin.tie(nullptr);
	cout.tie(nullptr);
	int T = 1;
	//cin >> T;
	while (T--) {
		solve();
	}
	return 0;
}
/*

*/

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 1ms
memory: 3764kb

input:

4 4 3 1

output:

3

result:

ok 1 number(s): "3"

Test #2:

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

input:

3 5 2 0

output:

5

result:

ok 1 number(s): "5"

Test #3:

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

input:

2 5 1 1

output:

-1

result:

ok 1 number(s): "-1"

Test #4:

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

input:

1 1 1 0

output:

1

result:

ok 1 number(s): "1"

Test #5:

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

input:

3 3 1 1

output:

7

result:

ok 1 number(s): "7"

Test #6:

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

input:

3 3 2 1

output:

3

result:

ok 1 number(s): "3"

Test #7:

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

input:

10 9 1 10

output:

19

result:

ok 1 number(s): "19"

Test #8:

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

input:

15 20 2 5

output:

27

result:

ok 1 number(s): "27"

Test #9:

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

input:

18 40 16 7

output:

5

result:

ok 1 number(s): "5"

Test #10:

score: 0
Accepted
time: 14ms
memory: 3948kb

input:

60 60 8 1

output:

27

result:

ok 1 number(s): "27"

Test #11:

score: 0
Accepted
time: 36ms
memory: 3916kb

input:

60 60 8 4

output:

27

result:

ok 1 number(s): "27"

Test #12:

score: 0
Accepted
time: 120ms
memory: 3924kb

input:

60 60 8 8

output:

25

result:

ok 1 number(s): "25"

Test #13:

score: 0
Accepted
time: 87ms
memory: 3920kb

input:

60 60 16 1

output:

13

result:

ok 1 number(s): "13"

Test #14:

score: 0
Accepted
time: 304ms
memory: 3964kb

input:

60 60 16 8

output:

11

result:

ok 1 number(s): "11"

Test #15:

score: 0
Accepted
time: 982ms
memory: 4012kb

input:

60 60 16 16

output:

11

result:

ok 1 number(s): "11"

Test #16:

score: 0
Accepted
time: 1541ms
memory: 4156kb

input:

60 60 16 24

output:

9

result:

ok 1 number(s): "9"

Test #17:

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

input:

75 15 1 1

output:

175

result:

ok 1 number(s): "175"

Test #18:

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

input:

50 100 1 0

output:

-1

result:

ok 1 number(s): "-1"

Test #19:

score: 0
Accepted
time: 781ms
memory: 4156kb

input:

100 100 10 10

output:

35

result:

ok 1 number(s): "35"

Test #20:

score: 0
Accepted
time: 73ms
memory: 3956kb

input:

100 100 10 1

output:

37

result:

ok 1 number(s): "37"

Test #21:

score: -100
Time Limit Exceeded

input:

100 100 10 20

output:


result: