一、总分数
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、题目大意
给定一个字符串,根据它每两个字符之间的大小关系,输出“/”、“\”和“-”,形成一幅折线图,如:
/\
/ \
/ - -
\