可达鸭CSP-J复赛模拟韩润琦补题报告DAY3

s08695韩润琦

一、题目报告

                                                                   /_ \比赛时爆零/_ \

                                         二、赛中概况

T1做题过程:一开始上来看的题目就是T1,题目不是很难,但没有搞清楚题目意思,也忘了“字典序”是什么意思。赛后,我在百度上搜了一下,字典序就是正常的排序,也就是ABCDEFG HIJKLMN OPQRST UVWXYZ abcdefg hijklmn opqrst uvwxyz,以及0123456789。所以,如果搞懂了这个“字典序”是个什么东西的话,这道题是可以AC掉的。

T2做题过程:因此,我放弃T1去看T2,T2这道题其实是一个贪心的题目,但是我没有看出来,所以我用暴力做的,一个for循环,遍历给1,2,3,4,5个学生的情况,然后还写了一个判断特殊情况的递归函数。于是就出现了,一个for循环,里面套了一个while,while里面又有一个递归函数的“奇观”。不出所料,它成功TLE了。但是如果我把函数去掉,它就会WA。

T3做题过程:搞完T2之后,就去看T3,发现T3竟然不是很难(其实很难),于是开始搞T3。T3这道题我最后是TLE了,但是,题目给的样例和我自己造的样例是都ok的(其实题目中的样例有一个没过,但又比较特殊,所以我打了个补丁)。这道题我是先用一个for循环记录下了这4个数字每个数字出现的次数,然后在相对应的给我最后的结果cnt++,为了实现这个操作,我写了一长串的if  else if else........

for(int i = 1; i <= n; i++){
        scanf("%d", &a[i]);
        if(a[i] == 1){
            num1++;
        }else if(a[i] == -1){
            num2++;
        }else if(a[i] == 2){
            num3++;
        }else{
            num4++;
        }
    }
    if(n == 1){//程序补丁
        printf("1");
        return 0;
    }else if(n == 2 && (a[1] == -(a[2]) || -(a[1]) == a[2])){
    	printf("1");
    	return 0;
	}else if(n == 2 && a[1] == a[2]){
		printf("2");
		return 0;
	}
    if(num1 != 0 && num2 != 0 && num3 != 0 && num4 != 0){
        cnt += 4;
    }else if(num1 == 0 && num2 == 0 && num3 == 0 && num4 == 0){
        printf("0");
        
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值