【华为机考E卷】-“日志采集系统”题解思路java

算法每一题,成长每一天~

C0E10 日志采集系统

真题链接:【持续更新】2024华为 OD 机试E卷 机考真题库清单(全真题库)

思路

在这里插入图片描述
这题常规思路,就是每过一秒,前面的日志多扣一倍的分,可以这样逐个加减计算得分。
这里使用了折算的方式,即前面无论多少秒的日志,它们的得分都累计到上一秒;然后这一秒的得分只看上一秒的数据(得分,总条数)。这样会少一层循环处理。

Java


import java.util.Scanner;

public class C0E10 {

    public static void main(String[] args) {

        Scanner in = new Scanner(System.in);

        int[] nums = new int[1_000];
        int idx = 0;
        String[] split = in.nextLine().split(" ");
        for (String s : split) {
            nums[idx++] = Integer.parseInt(s);
        }

        int[] scores = new int[idx + 1]; // 得分
        int[] counts = new int[idx + 1]; // 总条数
        scores[0] = 0;
        counts[0] = 0;

        int maxScore = 0;
        for (int i = 1; i <= nums.length; i++) { // 逐秒计算
            int thisNum = nums[i - 1]; // 这一秒的日志数,为数组的第 i-1个元素

            // 这次提交的得分
            scores[i] = scores[i - 1]  // 上次剩余得分
                    - 1 * counts[i - 1] // 上次总日志数,到这一次为每条扣一分
                    + 1 * Math.min(thisNum, 100 - counts[i - 1]); // 这次的提交得分,每条日志加一分,最多100条

            // 累计条数
            counts[i] = counts[i - 1] + thisNum;

            // 最大得分
            maxScore = Math.max(maxScore, scores[i]);

            if (counts[i] >= 100) {
                break;
            }
        }

        System.out.println(maxScore);
    }
}

总结

1、这一题很容易想到的就是一秒一秒的计算。但其实打打草稿就会发现更便捷的公式。


算法要多练多练多练!!

统计区划代码城乡划分代码发布说明: 一、编制依据 2008年7月,国务院批复同意国家统计局与民政部、住建部、公安部、财政部、国土部、农业部共同制定的《关于统计划分城乡的规定》(国函〔2008〕60号),自2008年8月1日实施,正式奠定了统计划分城乡的理论依据方法基础。随后,国家统计局印发《统计区划代码城乡划分代码编制规则》(国统字〔2009〕91号)。 二、区划范围 统计区划代码城乡划分代码区划范围,是国家统计局开展统计调查的区划范围。未包括我国台湾省、香港特别行政区、澳门特别行政区。 三、发布内容 12位统计区划代码3位城乡分类代码。 四、适用领域 《国务院关于统计划分城乡规定的批复》(国函〔2008〕60号)明确指出:“本规定作为统计划分城乡的依据,不改变现有的行政区划、隶属关系、管理权限机构编制,以及土地规划、城乡规划等有关规定”。各级各部门在使用统计区划代码城乡划分代码时,请务必结合实际情况。 五、几个具体问题的说明 (一)补充编制开发区统计汇总识别码情况。为满足统计调查工作组织数据汇总的需要,国家统计局对一些符合条件的开发区编制了统计汇总识别码。统计汇总识别码在统计区划代码的县级码段上编制,其码段为71~80。 (二)关于河北省沧州市任丘市的苟各庄镇、鄚州镇、七间房乡、保定市高阳县的龙化乡统计区划代码临时调整情况的说明。按照河北省委、省政府关于对雄安新区周边部分区域实施托管的通知要求,沧州市任丘市的苟各庄镇、鄚州镇、七间房乡划归雄县实施统计上托管,保定市高阳县的龙化乡划归安新县实施统计上托管。为确保统计调查工作的顺利开展, 国家统计局对苟各庄镇、鄚州镇、七间房乡、龙化乡的统计用十二位区划代码进行了临时调整,具体调整为:鄚州镇代码由130982104000变更为130638106000;苟各庄镇代码由130982105000变更为130638107000;七间房乡代码由130982206000变更为130638205000;龙化乡代码由130628204000变更为130632203000。上述变更后的统计区划代码为临时代码,待民政部门对雄安新区上述4个乡镇区划调整确认后,再将临时代码变更为正式统计区划代码。 (三)关于黑龙江省大兴安岭地区县级单位统计区划代码调整情况说明。民政部民函〔2018〕50号文件撤销黑龙江省大兴安岭地区漠河县(六位区划代码为232723),设立漠河市(六位区划代码为232701)。为执行国家标准,保证统计部门与民政部门名称相同的县级单位六位区划代码的一致性,国家统计局根据《统计区划代码城乡划分代码编制规则》(国统字〔2009〕91号),调整黑龙江省大兴安岭地区所辖的加格达奇区、松岭区、新林区呼中区的六位统计区划代码,具体调整为:加格达奇区代码由232701变更为232761;松岭区代码由232702变更为232762;新林区代码由232703变更为232763;呼中区代码由232704变更为232764。 (四)此版本区划代码与第四次全国经济普查区划代码的相关说明。此版本区划代码是调查截止日期为2018年10月31日的统计区划代码。由于第四次全国经济普查清查工作于2018年8月开始,四经普的清查登记工作中采用2018年6月15日的统计区划代码。第四次全国经济普查数据处理使用2018年10月31日的统计区划代码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值