G

link

定义\({{dp_i}_j}_k\)为考虑完第i个点,最左边没有染色的点为\(j\),最右边没有染色的点为\(k\)的最小数量。

考虑转移(用自己更新别人)

如果不用\(i\),直接转移到\({{dp_{i+1}}_j}_k\)。

如果向左喷,\(k\)为\(max({i+1,k})\),判断能喷到的位置

  • 比\(j\)更靠左,\(j\)将变成\(max({i+2,k+1})\)(\(i+1\)的下一个或\(k\)的下一个将为最左边没有染色的);
  • 否则,\(j\)将不变。

如果向右喷,\(k\)为\(max({i+a_i-1,k})\),判断能喷到的位置

  • 比\(j\)更靠左,\(j\)将变成\(max({i+a_i,k+1})\)(\(i+a_i-1\)的下一个或\(k\)的下一个将为最左边没有染色的);
  • 否则,\(j\)将不变。
点击查看代码
#include<bits/stdc++.h>

#define int long long

using namespace std;

int t;
int n;
int a[105];
int q[105];
int h[105];
int dp[105][105][105]; void mx(int &a,int b){
a = min(a,b);
} void qwq(){ cin >> n;
for(int i = 1;i <= n;++ i){
cin >> a[i];
q[i] = max(1ll,i-a[i]+1);
h[i] = min(n,i+a[i]-1);
} memset(dp,0x3f,sizeof(dp));
dp[0][1][0] = 0; for(int i = 0;i < n;++ i){ for(int j = 1;j <= n+1;++ j)
for(int k = 0;k <= n;++ k)
mx(dp[i+1][j][k],dp[i][j][k]); for(int j = 1;j <= n+1;++ j){
for(int k = 0;k <= n;++ k){
if(q[i+1] <= j){
mx(dp[i+1][max(i+2,k+1)]
[max(i+1,k)],dp[i][j][k]+1);
}
else{
mx(dp[i+1][j][max(i+1,k)],
dp[i][j][k]+1);
}
}
} for(int j = 1;j <= n+1;++ j){
for(int k = 0;k <= n;++ k){
if(i+1 <= j){
mx(dp[i+1][max(h[i+1]+1,j)]
[max(h[i+1],k)],
dp[i][j][k]+1);
}
else{
mx(dp[i+1][j][max(h[i+1],k)]
,dp[i][j][k]+1);
}
}
} } cout << dp[n][n+1][n] << endl; } signed main(){ cin >> t;
while(t--) qwq(); return 0; }

CF 1927的更多相关文章

  1. ORA-00494: enqueue [CF] held for too long (more than 900 seconds) by 'inst 1, osid 5166'

    凌晨收到同事电话,反馈应用程序访问Oracle数据库时报错,当时现场现象确认: 1. 应用程序访问不了数据库,使用SQL Developer测试发现访问不了数据库.报ORA-12570 TNS:pac ...

  2. BZOJ 1927: [Sdoi2010]星际竞速

    1927: [Sdoi2010]星际竞速 Time Limit: 20 Sec  Memory Limit: 259 MBSubmit: 2051  Solved: 1263[Submit][Stat ...

  3. cf之路,1,Codeforces Round #345 (Div. 2)

     cf之路,1,Codeforces Round #345 (Div. 2) ps:昨天第一次参加cf比赛,比赛之前为了熟悉下cf比赛题目的难度.所以做了round#345连试试水的深浅.....   ...

  4. cf Round 613

    A.Peter and Snow Blower(计算几何) 给定一个点和一个多边形,求出这个多边形绕这个点旋转一圈后形成的面积.保证这个点不在多边形内. 画个图能明白 这个图形是一个圆环,那么就是这个 ...

  5. ARC下OC对象和CF对象之间的桥接(bridge)

    在开发iOS应用程序时我们有时会用到Core Foundation对象简称CF,例如Core Graphics.Core Text,并且我们可能需要将CF对象和OC对象进行互相转化,我们知道,ARC环 ...

  6. [Recommendation System] 推荐系统之协同过滤(CF)算法详解和实现

    1 集体智慧和协同过滤 1.1 什么是集体智慧(社会计算)? 集体智慧 (Collective Intelligence) 并不是 Web2.0 时代特有的,只是在 Web2.0 时代,大家在 Web ...

  7. CF memsql Start[c]UP 2.0 A

    CF memsql Start[c]UP 2.0 A A. Golden System time limit per test 1 second memory limit per test 256 m ...

  8. CF memsql Start[c]UP 2.0 B

    CF memsql Start[c]UP 2.0 B B. Distributed Join time limit per test 1 second memory limit per test 25 ...

  9. CF #376 (Div. 2) C. dfs

    1.CF #376 (Div. 2)    C. Socks       dfs 2.题意:给袜子上色,使n天左右脚袜子都同样颜色. 3.总结:一开始用链表存图,一直TLE test 6 (1)如果需 ...

  10. CF #375 (Div. 2) D. bfs

    1.CF #375 (Div. 2)  D. Lakes in Berland 2.总结:麻烦的bfs,但其实很水.. 3.题意:n*m的陆地与水泽,水泽在边界表示连通海洋.最后要剩k个湖,总要填掉多 ...

随机推荐

  1. 【ESP32】制作 Wi-fi 音箱(HTTP + I2S 协议)

    用 Wifi 来传输音频数据,会比蓝牙更好.使用蓝牙方式,不管你用什么协议,都会对数据重新编码,说人话就是有损音质,虽然不至于全损.而使用 Wifi 就可以将 PCM 数据直接传输,无需再编码和压缩. ...

  2. nginx优化实践与验证

    nginx优化实践 实践场景1: 单台nginx 2核4G 实践场景2: 三台nginx 2核4G 压测工具:WRK 初始安装的nginx压测: yum install -y nginx 安装WRK压 ...

  3. 安装centos7模板机[lvm版]

    1. 安装centos 7模板机 准备好centos7的镜像 下载地址:http://mirrors.aliyun.com/centos/7/isos/x86_64/ 安装centos 自定义硬件: ...

  4. 一文了解JVM面试篇(上)

    Java内存区域 1.如何解释 Java 堆空间及 GC? 当通过 Java 命令启动 Java 进程的时候,会为它分配内存.内存的一部分用于创建 堆空间,当程序中创建对象的时候,就从对空间中分配内存 ...

  5. 01-布局扩展-用calc来计算实现双飞翼布局

    <!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8 ...

  6. 改变函数中的this指向

      // 改变函数的this指向         // 先记住一句话 : 箭头函数不能改变this指向         // 语法1: call() 方法         //        在调用函 ...

  7. SELinux 安全模型——MLS

    首发公号:Rand_cs SELinux 安全模型--MLS BLP 模型:于1973年被提出,是一种模拟军事安全策略的计算机访问控制模型,它是最早也是最常用的一种多级访问控制模型,主要用于保证系统信 ...

  8. Python 潮流周刊#55:分享 9 个高质量的技术类信息源!

    大家好,我是猫哥,今天给大家分享几个高质量的技术类信息源. 本文分享的信息源都是周刊类型的,所谓周刊类,就是以固定每周的频率更新,每期分享很多精华内容的链接.它的特点是信息密度极高,可以节省你去查找信 ...

  9. maven常用命令大全(附详细解释)

    1.常用打包命令 mvn clean package -Dmaven.test.skip=true -- 跳过单测打包mvn clean install -Dmaven.test.skip=true ...

  10. 根据两个日期之间获取LocalDate日历列表和LocalDate和LocalDateTime数据格式转换

    根据两个日期之间获取LocalDate日历列表和LocalDate和LocalDateTime数据格式转换 package com.example.core.mydemo.localdatetime; ...