当前位置: 首页 > ai >正文

上海市计算机学会竞赛平台2022年4月月赛丙组圆环独立集(一)

题目描述

给定一个长度为 nn 的环状数列 a1,a2,⋯ ,ana1​,a2​,⋯,an​,请从中间挑选出一些数字组成一个独立集,使得该独立集中的数字之和达到最大。

所谓环状,是指在考虑相邻关系时,需要把 a1a1​ 和 anan​ 也看做是一对邻居。所谓独立集,就是挑选出的数字在原来的圆环上不能相邻。

输入格式
  • 第一行:单个整数表示 nn。
  • 第二行:nn 个整数表示 a1,a2,⋯ ,ana1​,a2​,⋯,an​。
输出格式
  • 单个整数:表示独立集的数字之和的最大值。
数据范围
  • 对于 30%30% 的数据,1≤n≤201≤n≤20;
  • 对于 60%60% 的数据,1≤n≤50001≤n≤5000;
  • 对于 100%100% 的数据,1≤n≤500,0001≤n≤500,000,
  • 1≤ai≤1,000,0001≤ai​≤1,000,000。
样例数据

输入:

5
1 1 1 1 1

输出:

2

输入:

6
100 1 1 100 1 1

输出:

200

说明:

这个例子告诉我们最优独立集不一定是最大独立集

详见代码:

#include<bits/stdc++.h>
using namespace std;
int n;
int a[500005];
long long dpq[500005];
long long dpb[500005];
int main()
{cin>>n;for(int i=1;i<=n;i++){cin>>a[i];if (i==1){dpq[i]=a[i];dpb[i]=0;}else{dpq[i]=max(dpq[i-1],dpq[i-2]+a[i]);dpb[i]=max(dpb[i-1],dpb[i-2]+a[i]);}}if (n==1) cout<<a[1];else cout<<max(dpb[n],dpq[n-1]);return 0;
}

http://www.xdnf.cn/news/13947.html

相关文章:

  • 基于 Spring Cloud Gateway + Sentinel 实现高并发限流保护机制
  • PHP基础-控制结构
  • 全链路实时感知:网络专线端到端监控运维
  • SwiftUI隐藏返回按钮保留右滑手势方案
  • MyBatis原理
  • 关于阿里云-云消息队列MQTT的连接和使用,以及SpringBoot的集成使用
  • P8784 [蓝桥杯 2022 省 B] 积木画
  • 基于 STM32 七段数码管显示模块详解
  • 如何设置爬虫的访问频率?
  • 基于51单片机的直流电机运动控制proteus仿真
  • vue二级路由的写法,以及动态路由的匹配和获取动态参数的值
  • FreeSWITCH mod_curl 和 mod_xml_rpc 测试
  • JVM 内存、JMM内存与集群机器节点内存的联系
  • 【redis——缓存穿透】
  • 基于PSO粒子群优化的VMD-LSTM时间序列预测算法matlab仿真
  • git 下载安装并连接gitee
  • 一键给你的网页增加 ios26 液态玻璃效果
  • Android 手机如何实现本地视频音频提取?实战教程来了
  • 提示词Prompts(2)
  • 提示词Prompts(1)
  • iOS-SM3加密算法N种集成
  • MySql基础教程:事务基础知识
  • 通信安全员A,B,C证有什么区别?
  • 一文讲清网络变压器、芯片和 RJ45 之间的接线
  • WebView工作原理全解析:如何实现混合开发的无缝衔接
  • python transformers库笔记(BertTokenizerFast类)
  • 高频面试之12 HBase
  • javascript中浏览器自带的实用方法
  • 液氮罐里的重要样本老是担心安全受到损坏如何操作可以在线记录开门时间呢?
  • 使用GpuGeek训练图像分类器:从入门到精通