#include<bits/stdc++.h>
#include<vector>
#include<queue>
using namespace std;
int n,m;
vector <int> r[100010];
bool vis[100010];
queue <int> q;
bool cmp(vector<int> &a,vector<int> &b){
if(a[0]!=b[0]) return a[0]<b[0];
else return a[1]>b[1];
}
void dfs(int x){
cout<<x<<" ";
for(int i=0;i<r[x].size();i++){
if(!vis[r[x][i]]){
vis[r[x][i]]=1;
dfs(r[x][i]);
}
}
}
void bfs(int x){
q.push(x);
while(!q.empty()){
int x=q.front();
q.pop();
cout<<x<<" ";
for(int i=0;i<r[x].size();i++){
if(!vis[r[x][i]]){
vis[r[x][i]]=1;
q.push(r[x][i]);
}
}
}
}
int main(){
cin>>n>>m;
for(int i=1;i<=m;i++){
int x,y;
cin>>x>>y;
r[x].push_back(y);
}
sort(r.begin(),r.end(),cmp);
vis[1]=1;
dfs(1);
cout<<endl;
memset(vis,0,sizeof(vis));
vis[1]=1;
bfs(1);
return 0;
}
这样的vector排序为什么会错误?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- wingaso 2021-08-11 00:09关注
#include<bits/stdc++.h> using namespace std; int n,m; vector <int> r[100010]; bool vis[100010]; queue <int> q; bool cmp(vector<int> &a,vector<int> &b){ if(a[0]!=b[0]) return a[0]<b[0]; else return a[1]>b[1]; } void dfs(int x){ cout<<x<<" "; for(int i=0;i<r[x].size();i++){ if(!vis[r[x][i]]){ vis[r[x][i]]=1; dfs(r[x][i]); } } } void bfs(int x){ q.push(x); while(!q.empty()){ int x=q.front(); q.pop(); cout<<x<<" "; for(int i=0;i<r[x].size();i++){ if(!vis[r[x][i]]){ vis[r[x][i]]=1; q.push(r[x][i]); } } } } int main(){ cin>>n>>m; for(int i=1;i<=m;i++){ int x,y; cin>>x>>y; r[x].push_back(y); } sort(r+1,r+n+1,cmp); vis[1]=1; dfs(1); cout<<endl; memset(vis,0,sizeof(vis)); vis[1]=1; bfs(1); return 0; }
我给你改好了。
你看看能不能用。
因为没有看到你的题目,不确定是不是这个区间。解决 2无用
悬赏问题
- ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
- ¥15 安装quartus II18.1时弹出此error,怎么解决?
- ¥15 keil官网下载psn序列号在哪
- ¥15 想用adb命令做一个通话软件,播放录音
- ¥30 Pytorch深度学习服务器跑不通问题解决?
- ¥15 部分客户订单定位有误的问题
- ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
- ¥15 Bug traq 数据包 大概什么价
- ¥15 在anaconda上pytorch和paddle paddle下载报错
- ¥25 自动填写QQ腾讯文档收集表