Problem D

来源:互联网 发布:视频录像软件 编辑:程序博客网 时间:2024/04/28 08:29

最大独立团

#include <iostream>#include <cstdio>#include <queue>#include <cstring>#include <string>#include <cmath>#include <vector>#include <map>#include <stack>#include <algorithm>//#include "myAlgorithm.h"#define MAX 1005#define OFFENCE (1e9 + 5)#define INF (1e8 + 5)#define eps 1e-9#define Rep(s, e) for( int i = s; i <= e; i++)#define Cep(e, s) for( int j = e; j >= s; j --)#define PI acos(-1.0)//#pragma comment(linker, "/STACK:36777216") ///传说中的外挂using namespace std;int n, m, p;int match[MAX];bool v[MAX];vector<vector<int> >adj;int likes[MAX], diss[MAX];void init(){    memset(match, -1, sizeof(match));    adj.assign(p + 2, vector<int>() );}bool find(int node){    int len = adj[node].size(), pos;    Rep(0 , len - 1){        pos = adj[node][i];        if(!v[pos]){            v[pos] = 1;            int pre = match[pos];            if(pre == -1 || find(pre)){                match[pos] = node;                return true;            }        }    }//cout<<endl;    return false;}void input(){    int a, b;    Rep(0, m -1){        cin>>a>>b;        //cout<<a<<b<<endl;        adj[a].push_back(b);        //adj[b].push_back(a);    }}void input001(){     Rep(0, p - 1){            char s1, s2;            int like, dis;            scanf(" %c%d %c%d", &s1, &like, &s2, &dis);            //cout<<s1<<" "<<s2<<endl;            if(s1 == 'D')like+= n;            else if(s2=='D')dis += n;            likes[i] = like;  diss[i] = dis;        }        for(int i = 0; i < p; i++){            for(int j = i + 1; j < p; j++){                if(likes[i] == diss[j] || diss[i] == likes[j]){                    adj[i].push_back(j);                    adj[j].push_back(i);                }            }        }}int main() {    while(cin>>n>>m>>p){        init();        input001();        int fc  = 0;        //cout<<"startfind"<<endl;        for(int i = 0; i < p; i++){            if(find(i))fc ++;            //cout<<i<<endl;            memset(v, 0, sizeof(v));        }        cout<<p - fc/2<<endl;    }    return 0;}/***/


 

原创粉丝点击