CSP-X模拟赛一何来嘉补题

本文详述了一次CSP模拟比赛的过程,包括四道算法题的解题思路与代码实现。从爬楼梯问题到字符折线图,再到吉利数的计算和路灯照明问题的解决,作者分享了每道题目的关键思考和解决方案,帮助读者理解算法应用与比赛策略。
摘要由CSDN通过智能技术生成

 一、总分数

T1【爬楼梯】:

T2【字符折线图】:

T3【吉利数】:

T4【路灯照明】:

二、比赛过程

第一道题比较简单,根据题目模拟即可。注意,一步最多上一个平台。上两个平台才能上一个楼层。用一个简单的累加就能搞定。要求一共上了几层,用步数*每步的距离,算出总步数后再除以每层楼需要的步数,就能算出,失分的原因主要是粗心大意。

第二题还是一个模拟题。我的思路是先用“1”、“2”、“3”表示上升下降和平行(/、\、-),然后输入字符串,再存到数组里,然后输出。

第三题我刚看见题时完全没有头绪,后来发现要把十进制转化成九进制,对于数字中大于等于4的位置,加一输出即可。

第四题直接枚举每一盏灯的耗电量,然后按照公式计算每一个格子的亮度是否符合要求。
时间复杂度:O(n4)

三、比赛分析

T1【爬楼梯】

1、题目大意

给你一共迈的步数、几米上一层和每步能迈几米。求一共能上几层。

2、比赛中的思考

这道题我是直接定义累加器和计数器,for循环累加一共能迈几步,在总米数到达一层楼的时候累加器清零,计数器加一。遍历完后输出计数器即可。

3、解题思路

同上,直接累加、计数。

4、AC代码

正确代码如下:

#include<bits/stdc++.h>
#define ll long long
using namespace std;
int n,x,tmp,sum,cnt;
int main(){
    scanf("%d%d",&n,&x);
    for(int i=1;i<=n;i++){
        scanf("%d",&tmp);
        if(sum+tmp>=x){
            sum=0;
            cnt++;
        }
        else sum+=tmp;
    }
    printf("%d\n",1+int(cnt/2));
    return 0;
}

T2、【字符折线图】

1、题目大意

给定一个字符串,根据它每两个字符之间的大小关系,输出“/”、“\”和“-”,形成一幅折线图,如:

   /\

 /   \

/      - -

         \

   

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值