专栏文章

题解:P14590 计组实验

P14590题解参与者 2已保存评论 1

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
1 条
当前快照
1 份
快照标识符
@min1t7u3
此快照首次捕获于
2025/12/01 19:10
3 个月前
此快照最后确认于
2025/12/01 19:10
3 个月前
查看原文

题目大意:

给定 nn 个实验和 mm 个事件,事件有两种,一种是学生学某一个实验,一种是两个学生交换学科。要求最后给出 nn 种实验的报名情况。

解题思路:

考虑到实验的个数以及事件的个数并不多,所以模拟即可,本题主要考验的是对数据结构的运用(vector),如果单独开那么大的数组一定会爆空间,所以要用到 vector 数组,相当于说你要用多少就开多少的数组,非常方便。

代码如下:

CPP
#include<bits/stdc++.h>
using namespace std;
vector<int>bian[300005];
int n,m;
int main() {
	cin>>n>>m;
	for(int i=1;i<=m;i++){//注意,是m个事件!!!
		int pd;
		cin>>pd;
		if(pd==1){
			int a,b;
			cin>>a>>b;
			bian[a].push_back(b);
		}
		else{
			int a,b,c,d;
			cin>>a>>b>>c>>d;
			swap(bian[a][b-1],bian[c][d-1]);
		}
	}
	for(int i=1;i<=n;i++){
		cout<<bian[i].size()<<" ";
		for(auto nwz:bian[i])cout<<nwz<<" ";
		cout<<'\n';
	}
	return 0;
}

评论

1 条评论,欢迎与作者交流。

正在加载评论...