作业介绍
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll N=1e3+10;
string s,k;
int main(){
getline(cin,s);
int len=s.size();
//字符串拼接 +
//字符串遍历 从0开始到len-1结束
for(int i=0;i<len;i++){
if(s[i]!=' '){
k+=s[i];//拼接字符串
}else{
if(k!="") cout<<k<<",";
k="";//初始化为空
}
}
cout<<k;
return 0;
}
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll N=1e3+10;
/*
拓扑排序:
1.创建队列
2.把所有入度为0 的点加入到队列
3.遍历队列
取出队首
存储这个点到拓扑排序结果中
遍历这个点的所有出边点
求出出边点
把出边点入度--
判断入度为0 加入队列
最后判断结果的长度==n 能
不能
*/
ll n,m,rd[N];//n顶点数 m边数
vector<int> v[N],ans;//邻接表
int main(){
cin>>n>>m;
while(m--){
int x,y;//x起点 y终点 x-->y
cin>>x>>y;
v[x].push_back(y);//
rd[y]++;
}
queue<int> q;
for(int i=1;i<=n;i++) if(rd[i]==0) q.push(i);
while(q.size()){
int x=q.front();q.pop();
ans.push_back(x);
for(int i=0;i<v[x].size();i++){
int xx=v[x][i];
if(--rd[xx]==0) q.push(xx);
}
}
if(ans.size()==n) for(int x:ans) cout<<x<<" ";
else cout<<"has circle";
return 0;
}
ac!
题目
认领作业后才可以查看作业内容。
- 状态
- 正在进行…
- 题目
- 11
- 开始时间
- 2025-5-10 0:00
- 截止时间
- 2025-5-31 23:59
- 可延期
- 24 小时