QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#712607#7781. Sheep Eat WolvesSoestxTL 1909ms4168kbC++231.2kb2024-11-05 16:21:372024-11-05 16:21:37

Judging History

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

  • [2024-11-05 16:21:37]
  • 评测
  • 测评结果:TL
  • 用时:1909ms
  • 内存:4168kb
  • [2024-11-05 16:21:37]
  • 提交

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=min(p,x);i>=0;i--)
	{
		for(int j=0;j+i<=p&&j<=y;j++)
		{
			if(i+j==0) continue;
			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=min(p,xx);i>=0;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;
}
/*

*/

詳細信息

Test #1:

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

input:

4 4 3 1

output:

3

result:

ok 1 number(s): "3"

Test #2:

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

input:

3 5 2 0

output:

5

result:

ok 1 number(s): "5"

Test #3:

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

input:

2 5 1 1

output:

-1

result:

ok 1 number(s): "-1"

Test #4:

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

input:

1 1 1 0

output:

1

result:

ok 1 number(s): "1"

Test #5:

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

input:

3 3 1 1

output:

7

result:

ok 1 number(s): "7"

Test #6:

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

input:

3 3 2 1

output:

3

result:

ok 1 number(s): "3"

Test #7:

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

input:

10 9 1 10

output:

19

result:

ok 1 number(s): "19"

Test #8:

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

input:

15 20 2 5

output:

27

result:

ok 1 number(s): "27"

Test #9:

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

input:

18 40 16 7

output:

5

result:

ok 1 number(s): "5"

Test #10:

score: 0
Accepted
time: 5ms
memory: 3768kb

input:

60 60 8 1

output:

27

result:

ok 1 number(s): "27"

Test #11:

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

input:

60 60 8 4

output:

27

result:

ok 1 number(s): "27"

Test #12:

score: 0
Accepted
time: 76ms
memory: 3912kb

input:

60 60 8 8

output:

25

result:

ok 1 number(s): "25"

Test #13:

score: 0
Accepted
time: 16ms
memory: 3812kb

input:

60 60 16 1

output:

13

result:

ok 1 number(s): "13"

Test #14:

score: 0
Accepted
time: 58ms
memory: 3788kb

input:

60 60 16 8

output:

11

result:

ok 1 number(s): "11"

Test #15:

score: 0
Accepted
time: 587ms
memory: 3972kb

input:

60 60 16 16

output:

11

result:

ok 1 number(s): "11"

Test #16:

score: 0
Accepted
time: 941ms
memory: 3940kb

input:

60 60 16 24

output:

9

result:

ok 1 number(s): "9"

Test #17:

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

input:

75 15 1 1

output:

175

result:

ok 1 number(s): "175"

Test #18:

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

input:

50 100 1 0

output:

-1

result:

ok 1 number(s): "-1"

Test #19:

score: 0
Accepted
time: 531ms
memory: 4008kb

input:

100 100 10 10

output:

35

result:

ok 1 number(s): "35"

Test #20:

score: 0
Accepted
time: 17ms
memory: 3780kb

input:

100 100 10 1

output:

37

result:

ok 1 number(s): "37"

Test #21:

score: 0
Accepted
time: 1909ms
memory: 4168kb

input:

100 100 10 20

output:

33

result:

ok 1 number(s): "33"

Test #22:

score: -100
Time Limit Exceeded

input:

100 100 10 30

output:


result: