Problem Solving Report
http://blog.csdn.net/juncoder/article/details/38154699
Topic Portal
Test instructions
There are 12 lessons per day. 7 days a week, a class is held for several days a week.
Ask for a maximum of a few lessons a week.
Ideas:
Think of the course as a set, the time of the class as a set, and the dichotomy.
#include <cstdio> #include <cstring> #include <iostream>using namespace Std;int n,day[10][15],mmap[ 500][500],vis[500],cnt,pre[500];int dfs (int x) {for (int i=n+1;i<cnt;i++) {if (!vis[i]&&mmap[x][i]) { Vis[i]=1; if (pre[i]==-1| | DFS (Pre[i])) {pre[i]=x; return 1; }}} return 0;} int main () {int i,j,a,b,t; while (cin>>n) {cnt=n+1; memset (mmap,0,sizeof (mmap)); memset (Day,0,sizeof (day)); memset (pre,-1,sizeof (pre)); for (i=1;i<=n;i++) {cin>>t; for (j=1;j<=t;j++) {cin>>a>>b; if (!day[a][b]) {day[a][b]=cnt++; } mmap[i][day[a][b]]=1; }} int ans=0; for (i=1;i<=n;i++) {memset (vis,0,sizeof (VIS)); Ans+=dfs (i); } cout<<ans<<endl; } return 0;}
Selecting Courses
Time Limit: 1000MS |
|
Memory Limit: 65536K |
Total Submissions: 8466 |
|
Accepted: 3769 |
Description
It's well known it's not easy to select courses in the college, for there is usually conflict among the time of the Courses. Li Ming is a student who loves study every much, and at the beginning of each term, he always wants to select courses as M Ore as possible. Of course there should be no conflict among the courses he selects.
There is classes every day, and 7 days every week. There is hundreds of courses in the college, and teaching a course needs one class each week. To give students more convenience, though teaching a course needs only one class, a course'll be taught several times in A week. For example, a course is taught both at the 7-th class on Tuesday and 12-th class on Wednesday, you should assume that There is no difference between the both classes, and that students can select any class to go. At the different weeks, a student can even go to different class as his wish. Because there was so many courses in the college, selecting courses was not a easy job for Li Ming. As his good friends, can him?
Input
The input contains several cases. For each case, the first line contains a integer n (1 <= n <=), the number of courses in Li Ming ' s college. The following n lines represent n different courses. In each line, the first number is a integer t (1 <= T <= 7*12), the different time when students can go to study th E course. Then come t pairs of integers p (1 <= P <= 7) and q (1 <= q <=), which mean that the course would be taught At the Q-th class on the p-th day of a week.
Output
For each test case, output one integer, which is the maximum number of courses Li Ming can select.
Sample Input
51 1 12 1 1 2 21 2 22 3 2 3 31 3 3
Sample Output
4
Poj2239_selecting Courses (binary graph Max match)