CF 1000B

此篇博客讲解了如何通过智能灯的开关操作策略,最大化延长灯的亮灯总时长。通过分析区间操作对亮灯模式的影响,提出了一种算法来确定最佳操作时机,以便在给定限制下达到最优结果。

CF 1000B

link
题意:
自习室内有一个智能灯。

在 0 时刻,管理员会将打开电闸,并将灯点亮。

在 M 时刻,管理员会直接拉下电闸,此时,如果灯处于点亮状态,则会因为断电而熄灭。

在 0∼M 之间有 n 个不同时刻,不妨用 a1,a2,…,an 表示,其中 0<a1<a2<…<an<M。

在这 n 个时刻中的每个时刻,管理员都会拨动一次智能灯的开关,使灯的状态切换(亮变灭、灭变亮)。

现在,你可以最多额外指定一个时刻(也可以不指定),让管理员在此时刻也拨动开关一次。注意选定的时刻不能与 a1,a2,…,an 相等。

你的目的是让亮灯的总时长尽可能长。

输出这个最大亮灯总时长。
题解:
n + 1 个点,n个时间段,本身是奇数区间亮灯偶数区间灭灯,但是当选取任意一个区间操作后,都会使得这个操作后面变成偶数区间亮,奇数区间灭,因此,可以枚举每一个区间操作后的亮灯总长,取一个最大值即可。
在这里插入图片描述

Code

#include <iostream>
#include <algorithm>
#include <cstring>
#include <cstdio>
#include <set>
#include <queue>
#include <vector>
#include <map>
#include <unordered_map>
#include <cmath> 
#include <stack>
#include <iomanip> 
#define x first
#define y second
#define eps 1e-7
using namespace std;
typedef long double ld;
typedef long long LL;
typedef pair<int, int> PII;
typedef unsigned long long ULL;
const int N = 2e5 + 10, M = 30010, INF = 0x3f3f3f3f, P = 131, mod = 1e9 + 7;
int dx[] = {-1, 0, 1, 0}, dy[] = {0, 1, 0, -1};
int n, m;
int a[N], f[N];
int s1[N], s2[N]; 
int main () {
	cin.tie(nullptr)->sync_with_stdio(false);
		cin >> n >> m;
		for (int i = 1; i <= n; i ++ )	cin >> a[i];
		a[++ n] = m;
		s1[n] = s2[n] = 0;
		for (int i = n - 1; i >= 0; i -- ) { // 因为区间从(a1 - a0)开始,所以逆序前缀和也可以 
			s1[i] = s1[i + 1], s2[i] = s2[i + 1];
			if (i % 2 == 0) s1[i] += a[i + 1] - a[i]; // 奇区间前缀和 枚举的是区间长度 因此前缀和的是区间长度 
			else 			s2[i] += a[i + 1] - a[i]; // 偶区间前缀和			
		}
		int res = s1[0]; // 一个不选的情况,也就是所有偶数区间的和  
		for (int i = 0; i < n; i ++ ) {
			int t = a[i + 1] - a[i]; // 无论选奇数还是偶数操作,最终选的这个区间贪心下来长度贡献都是 t - 1 
			if (t == 1) continue;
			res = max(res, s1[0] - s1[i] + t - 1 + s2[i + 1]); // 分为,操作区间前面的奇数区间,操作区间,操作区间后面的偶数区间 
		}
		cout << res << endl; 	
	 return 0;
} 
:020000040800F2 :1000000020030020490100084D0100084F010008AD :1000100000000000000000000000000000000000E0 :100020000000000000000000000000005101000876 :100030000000000000000000530100085501000806 :100040005701000857010008570100085701000830 :100050005701000857010008570100085701000820 :1000600000000000570100085701000800000000D0 :100070005701000857010008570100080000000060 :100080005701000857010008000000005701000850 :100090000000000057010008570100085701000840 :1000A0000000000057010008570100085701000830 :1000B0005701000800000000570100080000000080 :1000C00000F002F800F030F80CA030C8083824180E :1000D0002D18A246671EAB4654465D46AC4201D180 :1000E00000F022F87E460F3E0FCCB6460126334282 :1000F00000D0FB1AA246AB4633431847FC0200006F :100100000C0300000023002400250026103A01D330 :1001100078C1FBD8520700D330C100D50B607047BF :100120001FB51FBD10B510BD00F027F81146FFF731 :10013000F7FF00F05DF900F03FF803B4FFF7F2FFBE :1001400003BC00F045F8000006480047FEE7FEE764 :10015000FEE7FEE7FEE7FEE703480449024A044BD8 :1001600070470000F1030008200100202003002058 :1001700020010020704770477047754600F024F852 :10018000AE46050069465346C008C000854618B013 :1001900020B5FFF7E1FF60BC00274908B6460026FE :1001A000C0C5C0C5C0C5C0C5C0C5C0C5C0C5C0C527 :1001B000403D49008D46704710B50446C046C046D4 :1001C0002046FFF7BAFF10BD00487047C00000206E :1001D00001491820ABBEFEE7260002007047000070 :1001E0000248416982041143416170470020024086 :1001F00004484169002903DA0349816003498160A9 :10020000704700000020024023016745AB89EFCD15 :10021000F0B56A4B18686A49084018601868991563 :100220000843186018680721C90288431860586895 :1002300089008843586058680121C9030843586001 :1002400060485968008A490B490359605968C004DD :10025000C00C0143596018684005FCD55A48016834 :10026000012421430160D868A043D86018682106A2 :100270000843186018688001FCD598680F252D0286 :10028000A843986098680721090388439860986894 :10029000C008C0009860986802263043986098684B :1002A000C006FCD5494F002001228100D2068A18E1 :1002B00012687A50401C3028F6D301204449400788 :1002C0008860FFF795FF3F4A42484032D16ACFB27B :1002D0000760CF01FF0D47600904090E0161116B32 :1002E000CFB287604901490DC160516BC903C90B89 :1002F0004161916BC903C90B8161D16B8AB2C26143 :100300008900890C0162FFF76BFF33480269042101 :100310000A430261002282614269304F3A434261DE :10032000026922430261586B20435863586B304383 :100330005863224A403210688C0220431060052026 :10034000000706683024A6430660066820273E435F :10035000066046688E434660816821438160C168BB :10036000A143C160016AA9430162016A9415214356 :1003700001621168A00101431160196B0143196307 :10038000196B8143196316488168090C090481605F :100390008168FF22A23211438160C168890B890301 :1003A000C160C1680F4A1143C16001690E4A114022 :1003B000016141690D4A11404161F0BD00100240E8 :1003C000FFFFFEFE000FFF1F002002400000002084 :1003D00000ED00E00021024000E000E0FFFFFF0030 :1003E0000038014008200000F0D0FFFF3680FFFFFA :1003F000FFF70EFFFEE7000008040008C000002021 :08040000600200000401000885 :04000005080000C12E :00000001FF 这是.hex文件,详细说明一下这是什么意思
08-07
先看效果: https://renmaiwang.cn/s/jkhfz Hue系列产品将具备高度的个性化定制能力,并且借助内置红、蓝、绿三原色LED的灯泡,能够混合生成1600万种不同色彩的灯光。 整个操作流程完全由安装于iPhone上的应用程序进行管理。 这一创新举措为智能照明控制领域带来了新的启示,国内相关领域的从业者也积极投身于相关研究。 鉴于Hue产品采用WiFi无线连接方式,而国内WiFi网络尚未全面覆盖,本研究选择应用更为普及的蓝牙技术,通过手机蓝牙与单片机进行数据交互,进而产生可调节占空比的PWM信号,以此来控制LED驱动电路,实现LED的调光功能以及DIY调色方案。 本文重点阐述了一种基于手机蓝牙通信的LED灯设计方案,该方案受到飞利浦Hue智能灯泡的启发,但考虑到国内WiFi网络的覆盖限制,故而选用更为通用的蓝牙技术。 以下为相关技术细节的详尽介绍:1. **智能照明控制系统**:智能照明控制系统允许用户借助手机应用程序实现远程控制照明设备,提供个性化的调光及色彩调整功能。 飞利浦Hue作为行业领先者,通过红、蓝、绿三原色LED的混合,能够呈现1600万种颜色,实现了全面的定制化体验。 2. **蓝牙通信技术**:蓝牙技术是一种低成本、短距离的无线传输方案,工作于2.4GHz ISM频段,具备即插即用和强抗干扰能力。 蓝牙协议栈由硬件层和软件层构成,提供通用访问Profile、服务发现应用Profile以及串口Profiles等丰富功能,确保不同设备间的良好互操作性。 3. **脉冲宽度调制调光**:脉冲宽度调制(PWM)是一种高效能的调光方式,通过调节脉冲宽度来控制LED的亮度。 当PWM频率超过200Hz时,人眼无法察觉明显的闪烁现象。 占空比指的...
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值