关于某大学宿舍空调的相关问题

题目名称:关于某大学宿舍空调的相关问题

时间限制:3秒
内存限制:128MB

内容由AI生成,代码有误

题目背景

大连某民办高校的学生小明在期末考试周连续熬夜复习,某天夜里梦到自己进入了一栋 “未来宿舍”:每间寝室都配备了空调,但空调系统被梦境逻辑操控,出现了奇特的运行规则。现实中,大连夏季虽短暂高温,但该校部分老旧宿舍因朝向、楼层以及建筑结构导致室内温度在午后常超 28℃,部分学生已通过问卷反馈 “夏季午睡质量差”“学习时易烦躁” 等问题。而在小X的梦境中,宿舍空调的运行规则与现实需求产生了奇妙的交织 —— 你需要帮助他解决梦境中的空调调度难题,同时隐喻现实中的宿舍改造决策。

题目描述

在大连某高校的学院中,每间宿舍配备一台智能中央空调,用于动态调节温度。空调的制冷和加热能力受其最大性能限制,同时每个教室的目标温度因使用需求而异。教室内的学生人数直接影响空调能效,因为人体产生的热量会增加空调的负荷。空调的调节效果由以下因素决定:

  • 当前教室与目标温度的温差
  • 相邻教室之间的距离及连接关系(通过图结构表示,可能形成复杂网络)
  • 室外温度波动的影响
  • 教室人数对空调性能的衰减效应(人数越多,空调效能越低)

空调能耗与调节温差及对其他教室的连锁影响成正比,影响程度随连接距离递减。调节过程是动态的,需考虑短期温度波动的时间因素。此外,空调支持三种调度策略:

  • 自动调节:根据实时数据动态调整
  • 手动调节:固定模式运行
  • 预调节:基于历史数据提前优化

新增规则

  • 概率调节:空调可能以给定概率切换制冷/加热模式。
  • 概率事件
    • 教室空调模式切换的概率为输入参数。
    • 室外温度变化概率影响空调效率:高温降低制冷能力,低温削弱加热能力。
  • 逆元输出:最终能耗值需以模 (109+7) 的逆元形式输出。

输入

第一行包含一个整数 N(1 ≤ N ≤ 100000),表示房间的数量。

接下来 N 行,每行包含两个整数,分别为第 i 个房间的初始温度 T_i(0 ≤ T_i ≤ 50)和要求的最终温度 T'_i(0 ≤ T’_i ≤ 50)。

接下来的一行,包含一个整数 M(1 ≤ M ≤ 100),表示空调的数量。

接下来的一行,包含 M 对整数,分别为每个空调的最大制冷能力 C_j 和最大加热能力 H_j(每个空调的制冷能力为 C_j,加热能力为 H_j,单位为“度/小时”,且满足 0 ≤ C_j, H_j ≤ 10)。

接下来的一行,包含一个整数 E(1 ≤ E ≤ N-1),表示房间之间的连接数。

接下来的一行,包含 E 对整数 uv(1 ≤ u, v ≤ N),表示房间 u 和房间 v 之间有一个空调连接(即它们是相邻的房间)。

接下来的一行,包含 E 个整数 D_{uv},表示房间 u 到房间 v 的连接距离(单位为“米”)。

接下来的一行,包含一个整数 T_out(-30 ≤ T_out ≤ 50),表示室外温度。

接下来的一行,包含 N 个整数,每个整数表示空调运行的模式:0 表示关闭,1 表示制冷,2 表示加热。

接下来的一行,包含 N 个整数,表示每个房间内的人数 P_i(1 ≤ P_i ≤ 10),即第 i 个房间内的人员数量。每个房间内每人产生的热量是1度/小时。

接下来的一行,包含 N 个整数,表示每个房间的空调调度策略:

  • 0:关闭,
  • 1:自动调节,
  • 2:手动调节,
  • 3:预调节。

接下来的一行,包含 N 个浮动概率值:每个房间空调模式改变的概率(浮动概率)。这些概率影响空调模式的变化。

输出

输出一个整数,表示最小的总能耗值,单位为“度”。能耗的计算方式为:每个房间的温度差异是该房间调节所需的温度变化,而该房间的空调在每个小时所调节的温度变化消耗相应的能量。输出时,结果应为该值模 10^9+7 的逆元,即输出 X^(MOD-2) % MOD 其中 MOD = 10^9+7

样例输入

4
20 22
25 23
30 28
22 21
3
3 2
5 3
4
1 2
2 3
3 4
10 5
20 5
15 3
15
1 1 1 1
5 4 2 3
0.1 0.2 0.3 0.4

样例输出

48

解题思路

  1. 随机性建模

    • 根据给定的概率,模拟空调状态的随机变化。每次空调模式(制冷或加热)有一定的概率发生变化。可以通过生成随机数来决定是否切换空调状态。
  2. 能耗计算

    • 对于每个房间,计算它与目标温度的温差,并结合每个人的热量影响计算调节所需的温度变化。空调的工作模式会根据温差、室外温度、人数以及相邻房间的影响来决定能耗。
  3. 状态转移与概率论

    • 每次空调模式改变的概率由输入提供。通过递归或动态规划的方式,遍历所有房间,计算在给定概率条件下的最小能耗。
  4. 逆元计算

    • 输出能耗值的逆元。在使用大数计算时,可以使用费马小定理来求解逆元,X^(-1) ≡ X^(MOD-2) (mod MOD),其中 MOD = 10^9 + 7

C语言实现

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <limits.h>

#define MOD 1000000007
#define MAXN 1000
#define MAXM 1000  // 修复数组大小,避免越界

int N, M, E;
int T[MAXN], T_prime[MAXN], P[MAXN];
int C[MAXM
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

洋洋的计算机刷题日记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值