8VC Venture Cup 2017

来源:互联网 发布:中美矛盾知乎 编辑:程序博客网 时间:2024/04/29 12:34
/*8VC Venture Cup 2017 - Elimination RoundPolandBall and Hypothesis时间: 2017/02/21题意:题解:枚举*/#include<cstdio>#include<cstring>
/*8VC Venture Cup 2017 - Elimination RoundPolandBall and Game时间: 2017/02/21题意:给出A,B人熟悉的单词,A轮流B说一个单词,并且A先说。一个人不能说另一个人说过的单词,谁不能说出单词,谁就输了,问A能赢吗题解:策略上A,B如果有一样的单词,先手先说出这个单词对其有利,所以相同的单词如果奇数,那么A可以比B在相同的单词上多一次可以说*/#include<cstdio>#include<cstring>#include<cmath>#include<iostream>#include<algorithm>#include<queue>#include<map>using namespace std;#define ll long longconst int N = 1000010;const int INF = 0x3f3f3f3f;map<string,int> mp1;map<string,int> mp2;int main(){    int n,m;    while(cin >> n >> m)    {        mp1.clear();        mp2.clear();        string s;        int a1 = 0,a2 = 0,same = 0;        for(int i = 0; i < n; i++)        {            cin >> s;            mp1[s] = 1;            a1++;        }        for(int i = 0; i < m; i++)        {            cin >> s;            if(mp1[s] == 1)                same++;            mp2[s] = 1;            a2++;        }        if(same&1)            a1++;        if(a1 > a2)            puts("YES");        else            puts("NO");    }    return 0;}


/*8VC Venture Cup 2017 - Elimination RoundPolandBall and Game时间: 2017/02/21题意:给出A,B人熟悉的单词,A轮流B说一个单词,并且A先说。一个人不能说另一个人说过的单词,谁不能说出单词,谁就输了,问A能赢吗题解:策略上A,B如果有一样的单词,先手先说出这个单词对其有利,所以相同的单词如果奇数,那么A可以比B在相同的单词上多一次可以说*/#include<cstdio>#include<cstring>#include<cmath>#include<iostream>#include<algorithm>#include<queue>#include<map>using namespace std;#define ll long longconst int N = 1000010;const int INF = 0x3f3f3f3f;map<string,int> mp1;map<string,int> mp2;int main(){    int n,m;    while(cin >> n >> m)    {        mp1.clear();        mp2.clear();        string s;        int a1 = 0,a2 = 0,same = 0;        for(int i = 0; i < n; i++)        {            cin >> s;            mp1[s] = 1;            a1++;        }        for(int i = 0; i < m; i++)        {            cin >> s;            if(mp1[s] == 1)                same++;            mp2[s] = 1;            a2++;        }        if(same&1)            a1++;        if(a1 > a2)            puts("YES");        else            puts("NO");    }    return 0;}

/*8VC Venture Cup 2017 - Elimination RoundPolandBall and Forest时间: 2017/02/21题意:i和pi是可以合并的,问能合并成几个集合题解:并查集*/#include<cstdio>#include<cstring>#include<cmath>#include<iostream>#include<algorithm>#include<queue>#include<map>using namespace std;#define ll long longconst int N = 10010;const int INF = 0x3f3f3f3f;int fa[N];int Find(int x){    if(fa[x] != x)        fa[x] = Find(fa[x]);    return fa[x];}void unio(int x,int y){    int dx = Find(x);    int dy = Find(y);    if(dx != dy)        fa[dy] = dx;    return ;}int main(){    int n;    while(cin >> n)    {        for(int i = 1; i <= n; i++)            fa[i] = i;        for(int i = 1; i <= n; i++)        {            int a;            scanf("%d",&a);            unio(i,a);//            for(int j = 1; j <= n; j++)//                printf("%d ",fa[j]);//            puts("");        }        int ans = 0;        for(int i = 1; i <= n; i++)            if(Find(i) == i)                ans++;        printf("%d\n",ans);    }    return 0;}



0 0
原创粉丝点击