当前位置:Gxlcms > html代码 > CodeforcesRound#281(Div.2)(A、B、C、D题)_html/css_WEB-ITnose

CodeforcesRound#281(Div.2)(A、B、C、D题)_html/css_WEB-ITnose

时间:2021-07-01 10:21:17 帮助过:25人阅读

昨天这场CF打的还挺爽的,不过就是没咋涨Rating,没把握好涨Rating的机会。。

本来可以过四题的,,但是很失败,重评后跪了两道。。唉:-(



A. Vasya and Football

思路:给每个人计数,黄牌+1,红牌+2。

当数字第一次超过2时输出。


题目链接:A. Vasya and Football


AC代码:

#include #include #include #include #include #include using namespace std;struct node {	char name[25];	int a[105];}home, away;int main(){	for(int i=0; i<105; i++)	{		home.a[i] = 0;		away.a[i] = 0;	}	scanf("%s %s", home.name, away.name);	int n;	scanf("%d", &n);	while(n--)	{		int t, e;		char ch1[3], ch2[3];		scanf("%d %s %d %s", &t, ch1, &e, ch2);		if(ch1[0]=='h')		{			if(ch2[0]=='y')			{				home.a[e]++;				if(home.a[e]==2)printf("%s %d %d\n", home.name, e, t);			}			else if(ch2[0]=='r')			{				home.a[e]+=2;				if(home.a[e]==2||home.a[e]==3)printf("%s %d %d\n", home.name, e, t);			}		}		else 		{			if(ch2[0]=='y')			{				away.a[e]++;				if(away.a[e]==2)printf("%s %d %d\n", away.name, e, t);			}			else if(ch2[0]=='r')			{				away.a[e]+=2;				if(away.a[e]==2||away.a[e]==3 ) printf("%s %d %d\n", away.name, e, t);			}		}	}	return 0;}



B. Vasya and Wrestling

思路:先用sum是否为0判断分高的,sum>0 => first, sum<0 => second,

sum=0则相同,再判断字典序,如果再相同则判断最后一次动作。

注意sum需要long long。


题目链接:B. Vasya and Wrestling


AC代码:


#include #include #include #include #include #include using namespace std;int judge(int a[], int b[], int na, int nb){	int i, j;	for(i=0, j=0; ib[i])return 1;		else if(a[i]0)a[na++] = t;		else if(t<0)b[nb++] = -t;		sum+=t;	}	if(sum>0)printf("first\n");	else if(sum<0)printf("second\n");	else if(judge(a,b,na,nb)==1)printf("first\n");	else if(judge(a,b,na,nb)==0)printf("second\n");	else if(judge(a,b,na,nb)==2&&t>0)printf("first\n");	else if(judge(a,b,na,nb)==2&&t<0)printf("second\n");	return 0;}



C. Vasya and Basketball

思路:给所有球排序,先把全部都赋值为3,然后依次减为2,再判断其中间过程的MAX

昨天做题的时候有点小混乱。。


题目链接:C. Vasya and Basketball


AC代码:


#include #include #include   #include   #include   #include   #include   #include    using namespace std;    #define LL long long  #define INF 0xfffffffpair p[400010];int main(){    int n, m;    scanf("%d", &n);    for(int i=0; iMAX)			{                MAX=as-bs;                ansa=as;                ansb=bs;            }        }        if(p[i].second==1) as--;		else bs--;    }    printf("%d:%d\n", ansa, ansb);    return 0;}



D. Vasya and Chess

思路:貌似这题有点水。。


题目链接:D. Vasya and Chess


AC代码:


#include #include #include #include #include #include using namespace std;int main(){	int n;	scanf("%d", &n);	if(n%2==1)		printf("black\n");	else if(n%2==0)	{		printf("white\n1 2\n");	}	return 0;}

人气教程排行