解题报告8VC Venture Cup 2017 - Elimination Round

题目链接:http://codeforces.com/contest/755

 

本蒟蒻做了半天只会做前两道题。。

 

A. PolandBall and Hypothesis

题意:给出n,让你找出一个m,使n*m+1不是素数。

数据很小,直接暴力枚举。

 

#include<cstdio>
#include<iostream>
#include<cmath>
using namespace std ;

bool prime( int n )
{
	for( int i = 2 ; i <= sqrt(n) ; i++)
		if( n % i == 0 )
			return false;
	return true;
}

int main()
{
	int n ;
	cin >> n ;
	for( int i = 1 ; i <= 1000 ; i++)
		{
			if( ! prime( n*i + 1 ) )
				{
					cout << i << endl ;
					return 0 ;

				}
		}
	return 0 ;
}

  

 

第二题:

题意 :给出n,m 表示每个人拥有的单词数, 然后给出每个人的单词, 现在从第一个人开始每次说一个自己有单词, 不能出现重复的, 谁说不了了就输了。

 

第一次提交:

把 两个人重复的去掉之后比大小,若第一个人大于等于第二个人则YES,否则NO。

WA了。因为没考虑到

3 3

a

a

c

a

a

b

这种一样的会是偶数的情况。所以在去重之后要分奇偶

 

#include<cstring>
#include<cmath>
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
	string a[1010] , b[1010];
	int n , m ;
	cin >> n  >> m ;
	for( int i = 1 ; i <= n ; i++)
		cin >> a[i] ;
	for( int i = 1 ; i <= m ; i++)
		cin >> b[i] ;
	int diff = 0 ;
	for( int i  = 1 ; i <= m ; i++)
	{
		for( int j = 1 ; j <= n ; j++)
		{
			if( b[i] == a[j] )
				diff++;
		}
	}
	
	n = n - diff , m = m - diff ;
	if( n > m ) 
		cout << "YES" << endl;
	else if ( n == m )
		{
			if( diff % 2 == 1 )
				cout << "YES" <<endl;
			else 
				cout <<"NO" << endl ;
		}
	else 
		cout << "NO"<<endl ;	
	return 0 ; 
}

  

看到有人用map去重。STL还是不太会呢,MAP去重应该比我高好多,索性题目数据小。

 

第三题

 

题读了半天勉强读懂了,然而相关算法不知道是什么。。

 

posted on 2017-01-16 12:02  Dark猫  阅读(152)  评论(0)    收藏  举报

导航