大佬帮忙看看,第二题它给的自测用例能过,但提交后通过0%是为什么?
#include <iostream>
#include <ostream>
#include <vector>
using namespace std;
void f(vector<vector<int>>& vv,int x,int y,int mx,int my,int &count,vector<vector<int>>& tt)
{
if(x<0||y<0||x>mx||y>my)
{
return ;
}
if(vv[x][y]==0)
{
return;
}if( tt[x][y]==1){return ;}
if(tt[x][y]==0)
{
tt[x][y]=1;
count++;
}
// cout<<x<<":"<<y<<" "<<"vv[x][y]"<<vv[x][y]<<endl;
for(int i=1;i<=vv[x][y];i++)
{
f(vv,x+i,y,mx,my,count,tt);
f(vv,x,y+i,mx,my,count,tt);
f(vv,x-i,y,mx,my,count,tt);
f(vv,x,y-i,mx,my,count,tt);
}
}
int main() {
int n;
cin>>n;
while(n--)
{
int k;
cin>>k;
vector<vector<int>> v(k,vector<int>(3,0));
int mx=0;
int my=0;
for(int i=0;i<k;i++)
{
int x,y;
int value;
cin>>x>>y>>value;
if(x>mx)
mx=x;
if(y>my)
my=y;
v[i][0]=x;
v[i][1]=y;
v[i][2]=value;
}
for(int i=0;i<k;i++)
{
v[i].resize(0);
}
// cout<<"mx"<<mx<<"my"<<my<<endl;
vector<vector<int>> vv(mx+1,vector<int>(my+1,0));
vector<vector<int>> tt(mx+1,vector<int>(my+1,0));
for(int i=0;i<k;i++)
{
vv[v[i][0]][v[i][1]]=v[i][2];
}
// for(int i=0;i<mx+1;i++)
// {
// for(int j=0;j<my+1;j++)
// {
// cout<<vv[i][j]<<" ";
// }
// cout<<endl;
// }
// cout<<endl;
int r=0;
// cout<<"r"<<r<<endl;
for(int i=0;i<mx+1;i++)
{
for(int j=0;j<my+1;j++)
{
int count=0;
f(vv,i,j,mx,my,count,tt);
if(count>r)
r=count;
cout<<"r"<<r<<endl;
}
}
cout<<r<<endl;
}
}
#include <ostream>
#include <vector>
using namespace std;
void f(vector<vector<int>>& vv,int x,int y,int mx,int my,int &count,vector<vector<int>>& tt)
{
if(x<0||y<0||x>mx||y>my)
{
return ;
}
if(vv[x][y]==0)
{
return;
}if( tt[x][y]==1){return ;}
if(tt[x][y]==0)
{
tt[x][y]=1;
count++;
}
// cout<<x<<":"<<y<<" "<<"vv[x][y]"<<vv[x][y]<<endl;
for(int i=1;i<=vv[x][y];i++)
{
f(vv,x+i,y,mx,my,count,tt);
f(vv,x,y+i,mx,my,count,tt);
f(vv,x-i,y,mx,my,count,tt);
f(vv,x,y-i,mx,my,count,tt);
}
}
int main() {
int n;
cin>>n;
while(n--)
{
int k;
cin>>k;
vector<vector<int>> v(k,vector<int>(3,0));
int mx=0;
int my=0;
for(int i=0;i<k;i++)
{
int x,y;
int value;
cin>>x>>y>>value;
if(x>mx)
mx=x;
if(y>my)
my=y;
v[i][0]=x;
v[i][1]=y;
v[i][2]=value;
}
for(int i=0;i<k;i++)
{
v[i].resize(0);
}
// cout<<"mx"<<mx<<"my"<<my<<endl;
vector<vector<int>> vv(mx+1,vector<int>(my+1,0));
vector<vector<int>> tt(mx+1,vector<int>(my+1,0));
for(int i=0;i<k;i++)
{
vv[v[i][0]][v[i][1]]=v[i][2];
}
// for(int i=0;i<mx+1;i++)
// {
// for(int j=0;j<my+1;j++)
// {
// cout<<vv[i][j]<<" ";
// }
// cout<<endl;
// }
// cout<<endl;
int r=0;
// cout<<"r"<<r<<endl;
for(int i=0;i<mx+1;i++)
{
for(int j=0;j<my+1;j++)
{
int count=0;
f(vv,i,j,mx,my,count,tt);
if(count>r)
r=count;
cout<<"r"<<r<<endl;
}
}
cout<<r<<endl;
}
}
全部评论
相关推荐

点赞 评论 收藏
分享
点赞 评论 收藏
分享