CF 1927
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的更多相关文章
- 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 ...
- BZOJ 1927: [Sdoi2010]星际竞速
1927: [Sdoi2010]星际竞速 Time Limit: 20 Sec Memory Limit: 259 MBSubmit: 2051 Solved: 1263[Submit][Stat ...
- cf之路,1,Codeforces Round #345 (Div. 2)
cf之路,1,Codeforces Round #345 (Div. 2) ps:昨天第一次参加cf比赛,比赛之前为了熟悉下cf比赛题目的难度.所以做了round#345连试试水的深浅..... ...
- cf Round 613
A.Peter and Snow Blower(计算几何) 给定一个点和一个多边形,求出这个多边形绕这个点旋转一圈后形成的面积.保证这个点不在多边形内. 画个图能明白 这个图形是一个圆环,那么就是这个 ...
- ARC下OC对象和CF对象之间的桥接(bridge)
在开发iOS应用程序时我们有时会用到Core Foundation对象简称CF,例如Core Graphics.Core Text,并且我们可能需要将CF对象和OC对象进行互相转化,我们知道,ARC环 ...
- [Recommendation System] 推荐系统之协同过滤(CF)算法详解和实现
1 集体智慧和协同过滤 1.1 什么是集体智慧(社会计算)? 集体智慧 (Collective Intelligence) 并不是 Web2.0 时代特有的,只是在 Web2.0 时代,大家在 Web ...
- 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 ...
- 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 ...
- CF #376 (Div. 2) C. dfs
1.CF #376 (Div. 2) C. Socks dfs 2.题意:给袜子上色,使n天左右脚袜子都同样颜色. 3.总结:一开始用链表存图,一直TLE test 6 (1)如果需 ...
- CF #375 (Div. 2) D. bfs
1.CF #375 (Div. 2) D. Lakes in Berland 2.总结:麻烦的bfs,但其实很水.. 3.题意:n*m的陆地与水泽,水泽在边界表示连通海洋.最后要剩k个湖,总要填掉多 ...
随机推荐
- 安利一个好用的IDEA插件 object-helper-plugin
更多精彩博文请关注:听到微笑的博客 一. 插件背景 object-helper 插件是一个日常开发工具集插件,提供丰富的功能,最开始是基于 GenerateO2O 插件开发而来,它提供了对象之间值拷贝 ...
- golang kmp算法实现
// 不多逼逼直接上代码.原理的话可以参考下面的链接.讲的非常清晰package main import "fmt" func genNext(s string) []int { ...
- .NET Core应用程序每次启动后使用string.GetHashCode()方法获取到的哈希值(hash)不相同
前言 如标题所述,在ASP.NET Core应用程序中,使用string.GetHashCode()方法去获取字符串的哈希值,但每次重启这个ASP.NET Core应用程序之后,同样的字符串的哈希值( ...
- 机器学习策略篇:详解超过人的表现(Surpassing human- level performance)
超过人的表现 讨论过机器学习进展,会在接近或者超越人类水平的时候变得越来越慢.举例谈谈为什么会这样. 假设有一个问题,一组人类专家充分讨论辩论之后,达到0.5%的错误率,单个人类专家错误率是1%,然后 ...
- C# || 批量翻译工具 || 百度翻译api || 读取.cs文件内容 || 正则表达式筛选文件
背景: 我们项目一开始的所有提示都是中文,后来要做国际化.发现项目中的带双引号的中文居然有 2.3 w 多条!!!简直让人欲哭无泪... 如果使用人工改的话,首先不说正确率了.光是效率都是难难难.所以 ...
- mybatis中的useGeneratedKeys="true"
Springboot中 Mybatis 配置文件 Mapper参数useGeneratedKeys="true" keyProperty="id"useGene ...
- html 适配iphone X 底部导航
html 适配iphone X 底部导航 适配手机底部有横线的手机,以免被横线遮挡 padding-bottom: constant(safe-area-inset-bottom); /* 兼容 iO ...
- apollo配置json
#json串原文[{"username":"李小刚","sex":"男"},{"username": ...
- http请求方式-RestTemplate
http请求方式-RestTemplate import com.alibaba.fastjson.JSON; import com.example.core.mydemo.http.OrderReq ...
- 《Node.js+Vue.js+MangoDB全栈开发实战》已出版
<Node.js+Vue.js+MangoDB全栈开发实战> 图书购买地址: 京东:<Node.js+Vue.js+MangoDB全栈开发实战> 当当:<Node.js+ ...