解下来发四篇题解J T1~T3,S T1
T1
很简单吧每个字符串用map存一下统计不重复的就行了
for(int i=1;i<=n;++i)
{
cin>>s;
if(!mp[s])
{
ans++;
mp[s]=1;
}
}
cout<<52-ans;
T2
根据题意模拟,考场上脑抽写了个BFS,那就来发BFS的代码吧
void bfs()
{
queue<node>q;
v[sx][sy]=1;
vis[sx][sy][sd]=1;
q.push({sx,sy,sd,0});
while(!q.empty())
{
node now=q.front();
q.pop();
int nx=now.x+dx[now.d];
int ny=now.y+dy[now.d];
//继续走
int nd=now.d;
if(nx>=1&&ny>=1&&nx<=n&&ny<=m&&!vis[nx][ny][nd]&&now.step<k&&a[nx][ny]!='x')
{
v[nx][ny]=1;
vis[nx][ny][nd]=1;
q.push({nx,ny,nd,now.step+1});
}
else
{
if(nx>=1&&ny>=1&&nx<=n&&ny<=m&&a[nx][ny]!='x') continue;//如果不是因为这些说明不行
nd=(now.d+1)%4;//转向
if(!vis[now.x][now.y][nd])
{
v[now.x][now.y]=1;
vis[now.x][now.y][nd]=1;
q.push({now.x,now.y,nd,now.step+1});
}
}
}
}
答案就是v数组的总和。
JT3,ST1我马上发