QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#426454 | #6515. Path Planning | yukino | TL | 1ms | 3628kb | C++17 | 1.0kb | 2024-05-31 11:56:46 | 2024-05-31 11:56:47 |
Judging History
answer
#include<bits/stdc++.h>
#define ll long long
#define int ll
const int N=1e5+10;
using namespace std;
int ans;
void dfs(vector<vector<int>>a,int n,int m,int i,int j,vector<int>f)
{
f.push_back(a[i][j]);
if(i==n&&j==m)
{
sort(f.begin(),f.end());
for(int i=0;i<f.size();i++)
{
if(f[i]!=i)
{
ans=max(ans,i);
return;
}
}
ans=max(ans,(ll)f.size());
return;
}
if(i+1<=n)
{
dfs(a,n,m,i+1,j,f);
}
if(j+1<=m)
dfs(a,n,m,i,j+1,f);
}
void solve()
{
int n,m;
cin>>n>>m;
vector<vector<int>>a(n+1,vector<int>(m+1,0));
vector<int>f;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
cin>>a[i][j];
}
}
ans=0;
dfs(a,n,m,1,1,f);
cout<<ans<<"\n";
}
signed main()
{
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int t=1;
cin>>t;
while(t--)
{
solve();
}
}
详细
Test #1:
score: 100
Accepted
time: 1ms
memory: 3628kb
input:
2 2 3 1 2 4 3 0 5 1 5 1 3 0 4 2
output:
3 5
result:
ok 2 number(s): "3 5"
Test #2:
score: -100
Time Limit Exceeded
input:
10000 2 9 4 0 3 5 2 7 16 11 12 9 13 14 17 10 8 15 1 6 4 8 19 23 22 13 29 4 17 26 30 6 25 3 15 24 18 14 12 8 7 9 27 5 0 10 11 16 31 20 2 28 1 21 1 6 3 2 0 1 4 5 2 3 4 2 0 3 5 1 5 1 4 0 3 2 1 1 3 1 0 2 8 10 9 50 8 0 41 57 60 30 23 65 64 21 36 12 10 5 58 19 38 67 71 52 45 17 77 4 59 51 22 25 56 49 79 2...