1 条题解
-
0
自动搬运
来自洛谷,原作者为

I_Love_Potter
野生哈迷搬运于
2025-08-24 22:37:16,当前版本为作者最后更新于2022-03-31 12:08:01,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
思路
将骷髅的横坐标、纵坐标的比化简成最简形式,再用容器去重,再输出容器内的数量。
看到这里,如果你是因为没有思路点进来的,建议按照上面的思路试着写一写哦
代码
#include<bits/stdc++.h>//万能头YYDS using namespace std; map<pair<int,int>/*我试着用结构体 但是不行*/,bool>mp; int n,m,sx,sy; char c; queue<pair<int,int> >kulou; int main(){ cin>>n>>m; for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ cin>>c; if(c=='K') kulou.push(make_pair(i,j));//把每个骷髅的位置存起来 if(c=='S') sx=i,sy=j;//记录神箭游侠的位置 } } while(!kulou.empty()){ int tx=kulou.front().first,ty=kulou.front().second; kulou.pop(); tx-=sx; ty-=sy; int g=abs(__gcd(tx,ty)); tx/=g;//化简比 ty/=g;//化简比 mp[make_pair(tx,ty)]=true;//类似桶的思想 } cout<<mp.size();//输出长度 return 0; }最后
这是我的第一篇题解,希望管理大大通过,管理员辛苦了
- 1
信息
- ID
- 5563
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 3
- 标签
- (无)
- 递交数
- 0
- 已通过
- 0
- 上传者