A - Block Sequence

news/2024/7/24 3:36:32 标签: 算法, c++, 图论

思路:

(1)对于每一个位置,有三种选择,一是选择删除,二是选择当排头清洗,三是被前面的排头清洗;

(2)注意到总是要求将最后一位数清洗完,即前面信息依赖后面信息,于是考虑从后往前分析,令f[i]描述i~n最小代价,则对于第i位,可选择

  1. 删除: f[i] = f[i +1] + 1;
  2. 清洗:f[i] = f[i + a[i] + 1]
  3. 等待清洗:由于我们只讨论i~n位的信息,所以必须保证第i位被清洗,故不可等待。

代码:

#include <iostream>
#include <queue>
using namespace std;
const int maxn = 2e5 + 10;
int dp[maxn], a[maxn];

void solve() { 
	int n;
	
    cin >> n;

    for (int i = 1; i <= n; ++i) {
        cin >> a[i];
    }
    dp[n] = 1;
    dp[n+1] = 0;
    for (int i = n - 1; i >= 1; --i) {
        dp[i] = 1 + dp[i+1]; // 删除第i个
        if (i + a[i] <= n) { // 利用第i个做为区间起点
            dp[i] = min(dp[i], dp[i+a[i]+1]);
        }
    }

    printf("%d\n", dp[1]);
}
int main() 
{
	int t;
	cin >> t;
	while(t --)
	{
		solve();
	}
	
    
    return 0;
}


http://www.niftyadmin.cn/n/5126298.html

相关文章

嵌入式面试3(C++相关)

1.介绍一下你对面向对象的理解&#xff0c; 面向对象编程&#xff08;Object-Oriented Programming&#xff0c;简称OOP&#xff09;是一种编程范式&#xff0c;它将数据和操作数据的方法组合成一个对象&#xff0c;以此来描述现实世界中的事物和概念。在面向对象编程中&#…

模拟IC设计工程师成长日记

很多IC设计的新人&#xff0c;不知道进入IC设计行业后会有哪些成长和学习的地方。 很多初入IC设计职场的人也都会比较恐慌&#xff0c;成长进步需要一个时间和经验的积累 今天给大家找了一个叫“模拟IC设计“攻城狮”的成长日记供大家参考. 以模拟IC设计工程师的身份进入职场&a…

写入文件json,csv

csv 写入 import csvdef write_csv_row(data):#列表单行写入with open(test.csv,w,newline) as f:csv_f csv.writer(f)csv_f.writerow([姓名,年龄,性别])def write_csv_rows(data):#二维列表多行写入with open(test.csv,w,newline) as f:csv_f csv.writer(f)csv_f.writerows…

pip 更换源

方案1 在C盘用户名录下新建pip文件夹&#xff0c;里面包含pip.ini文件 方案2 在C盘用户名目录的AppData的Roaming下新建pip文件夹&#xff0c;里面包含pip.ini文件。 内容为 [global] index-url https://pypi.tuna.tsinghua.edu.cn/simple

从0到1:CTFer成长之路——死亡 Ping 命令

死亡 ping 命令 绕过探测 手动尝试 慢 脚本生成转义后的字符&#xff0c;后面拼接命令 import urllib.parsewith open(r"C:\Users\LEGION\Desktop\RCE.txt", "w", encoding"utf-8") as f:for i in range(0, 255):encoded_str urllib.parse…

低代码平台审批表单设计--异行星低代码平台为例(二)

如何进行审批王流程审批 如何填单​ 您登录系统后&#xff0c;进入“流程模块”。在流程模块中可进行申请单的发起、审批、查询等操作。点击页面右侧的“新建”按钮&#xff0c;选择对应流程分类下的申请单&#xff0c;来发起一条新的申请单。 同时&#xff0c;您可以将常用…

【Linux】安装与配置虚拟机及虚拟机服务器坏境配置与连接---超详细教学

一&#xff0c;操作系统介绍 1.1.什么是操作系统 操作系统&#xff08;Operating System&#xff0c;简称OS&#xff09;是一种系统软件&#xff0c;它是计算机硬件和应用软件之间的桥梁。它管理计算机的硬件和软件资源&#xff0c;为应用程序提供接口和服务&#xff0c;并协…

云尘靶场-铁三域控

第一次 通过vpn链接 然后fscan扫描c段 扫描出来三个ip存活 并且141存在永恒之蓝 我们看看能不能直接复现 按照原本的设置发现 提示这里需要通过32位来进行 那我们开始设置 利用MS17-010渗透win7&#xff08;32位&#xff09;_利用ms17-010渗透win7(32位)-CSDN博客 https:…