作业介绍

#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 小时