QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#712594 | #7781. Sheep Eat Wolves | Soestx | TL | 1541ms | 4156kb | C++23 | 1.2kb | 2024-11-05 16:18:22 | 2024-11-05 16:18:23 |
Judging History
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;
}
/*
*/
详细
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