AC是一件很美好的事情!
n (1≤n≤100),表示所有可选的课程数。
接下来 n行,每行有两个整数
对于每组数据,输出一行:
第一行为一个整数,表示该同学 一周最多能选的课程数。
提交过程中几个问题:
1、一个数据组处理完毕后count 和 set没有清空,导致多次WA,之后要好好在自己电脑上编译才是;
2、对于每一个数据组都重新声明一个set,后来就 Runtime Error 了..
计算某同学最多能上几节课:
贪心算法
输入数据:第一行为一个整数 t (1≤t≤100),表示数据的组数。接下来对于每组数据:
第一行为一个整数n (1≤n≤100),表示所有可选的课程数。
接下来 n行,每行有两个整数
a,b (1≤a≤7,1≤b≤6),表示星期 a的第 b节有一门课可以选。
对于每组数据,输出一行:
第一行为一个整数,表示该同学 一周最多能选的课程数。
#include<iostream>
#include<string>
#include<set>
using namespace std;
const int MAX = 8;
int main() {
ios::sync_with_stdio(false); cin.tie(0);
set<int> aSet[MAX];
int num, classNum, day, course;
cin >> num;
for (int i = 0; i < num; i++) {
//set<int> aSet[MAX];这是犯过的错
int count = 0;
cin >> classNum;
for (int j = 0; j < classNum; j++) {
cin >> day >> course;
if (!aSet[day].count(course))//该星期对应的课程中没有冲突
{
aSet[day].insert(course);
count++;
}
}
cout << count << endl;
for (int i = 0; i < MAX; i++) {
aSet[i].clear();
}
}
return 0;
}
提交过程中几个问题:
1、一个数据组处理完毕后count 和 set没有清空,导致多次WA,之后要好好在自己电脑上编译才是;
2、对于每一个数据组都重新声明一个set,后来就 Runtime Error 了..