CSDN 编程竞赛六十六期题解

竞赛总览

CSDN 编程竞赛六十六期:比赛详情 (csdn.net)

竞赛题解

题目1、路灯亮度

有一条长度为n米的街道,上面分布着一些亮度不等的路灯。每离开某盏路灯1米,该位置受该盏路灯影响的亮度就比该盏路灯的原始亮度减少一个单位。某个特定位置的最终亮度,等于所有影响该位置的路灯亮度的最大值。亮度的最小值为零。

cpp 复制代码
#include <cstdio>

struct node {
    long long int p;
    long long int l;
};

int main () {
    int n, m;
    scanf ("%d %d", &n, &m);
    node light [m];
    for (int i = 0; i < m; i++) scanf ("%lld %lld", &light [i].p, &light [i].l);
    long long int result, p, d;
    while (scanf ("%lld", &p) != EOF) {
        result = 0;
        for (int i = 0; i < m; i++) {
            d = abs (p - light [i].p);
            if (light [i].l >= d) {
                result = max (result, light [i].l - d);
            }
        }
        printf ("%lld\n", result);
    }
    return 0;
}

刚开始直接计算出所有位置亮度,再回答输入数据中针对某个特定位置的问题,自测没问题,但通过0%的测试数据。之后改为针对某个特定位置直接计算亮度,通过100%的测试数据。

题目2、池塘水量

某地有n个池塘,编号为 i 的池塘最大容积为 i(从1开始编号)。池塘一开始都没有水,每天的天气状况决定了所有水池同时的水量变化。如果某天下了体积为 v 的雨,所有池塘都会增加体积为 v 的水。池塘满了的话,水就会溢出而流走,不会影响到以后的水量。如果某天天气炎热而蒸发了体积为 v 的水,所有池塘都会减少体积为 v 的水。池塘最多把所有水蒸发干,变成无水状态,不会影响到以后的水量。

cpp 复制代码
include <cstdio>

int data [800000];

int main () {
    int result = 0;
    int n, m;
    scanf ("%d %d", &n, &m);
    while (m --> 0) {
        int v;
        scanf ("%d", &v);
        if (v > 0) {
            result = 0;
            for (int i = 1; i <= n; i++) {
                result = result + (data [i] = min (data [i] + v, i));
            }
        } else if (v < 0) {
            result = 0;
            for (int i = 1; i <= n; i++) {
                result = result + (data [i] = max (data [i] + v, 0));
            }
        }
        printf ("%d\n", result);
    }
    return 0;
}

直接暴力计算,通过70%测试点。如果将整数换为长整数,可以再通过1个测试点。

相关推荐
李匠202441 分钟前
C++GO语言微服务之图片、短信验证码生成及存储
开发语言·c++·微服务·golang
IT猿手2 小时前
基于强化学习 Q-learning 算法求解城市场景下无人机三维路径规划研究,提供完整MATLAB代码
神经网络·算法·matlab·人机交互·无人机·强化学习·无人机三维路径规划
万能程序员-传康Kk5 小时前
旅游推荐数据分析可视化系统算法
算法·数据分析·旅游
PXM的算法星球6 小时前
【并发编程基石】CAS无锁算法详解:原理、实现与应用场景
算法
ll7788116 小时前
C++学习之路,从0到精通的征途:继承
开发语言·数据结构·c++·学习·算法
烨然若神人~6 小时前
算法第十七天|654. 最大二叉树、617.合并二叉树、700.二叉搜索树中的搜索、98.验证二叉搜索树
算法
爱coding的橙子6 小时前
每日算法刷题Day2 5.10:leetcode数组1道题3种解法,用时40min
算法·leetcode
我不想当小卡拉米6 小时前
【Linux】操作系统入门:冯诺依曼体系结构
linux·开发语言·网络·c++
炎芯随笔6 小时前
【C++】【设计模式】生产者-消费者模型
开发语言·c++·设计模式
乌鸦9446 小时前
《类和对象(下)》
开发语言·c++·类和对象+