博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[POI2013]BAJ-Bytecomputer
阅读量:4966 次
发布时间:2019-06-12

本文共 959 字,大约阅读时间需要 3 分钟。

题目

不能多想系列,手玩几组数据简略证明出最终序列也只会存在\(0,1,-1\)三个数

做法

这样就好做了嘛

\(dp[i][c]\)表示前\(i\)个数,第\(i\)个数最终变成\(c\),然后枚举前一个数转移就好

My complete code

#include
using namespace std;typedef int LL;const LL maxn=1e6+9,v=1,inf=0x3f3f3f3f;LL n,ans;LL a[maxn],dp[maxn][5];int main(){ cin>>n; for(LL i=1;i<=n;++i) cin>>a[i]; memset(dp,inf,sizeof(dp)); dp[1][a[1]+v]=0; for(LL i=2;i<=n;++i){ if(a[i]==-1){ dp[i][-1+v]=dp[i-1][-1+v]; dp[i][1+v]=dp[i-1][1+v]+2; } if(a[i]==0){ dp[i][-1+v]=dp[i-1][-1+v]+1; dp[i][0+v]=min(dp[i-1][0+v],dp[i-1][-1+v]); dp[i][1+v]=dp[i-1][1+v]+1; } if(a[i]==1){ dp[i][-1+v]=dp[i-1][-1+v]+2; dp[i][0+v]=dp[i-1][-1+v]+1; dp[i][1+v]=min(dp[i-1][-1+v],min(dp[i-1][0+v],dp[i-1][1+v])); } } ans=min(dp[n][-1+v],min(dp[n][0+v],dp[n][1+v])); if(ans

转载于:https://www.cnblogs.com/y2823774827y/p/10423869.html

你可能感兴趣的文章
web项目(用户注册)(web分层结构)
查看>>
Jetty源码学习-编译Jetty源码二三事
查看>>
十种排序
查看>>
让linux开机默认开启小键盘
查看>>
通用登录界面1.1
查看>>
poj 2395 最小生成树
查看>>
工作8年 开个园子
查看>>
并发容器之ConcurrentSkipListSet
查看>>
方法的重载和重写
查看>>
计算机网络 -面经(1)
查看>>
【bzoj5161】最长上升子序列 状压dp+打表
查看>>
RabbitMQ安装
查看>>
dmidecode查看设备硬件信息
查看>>
Day33、基于udp的套接字、socketserver模块、关于进程的简单介绍
查看>>
2.2计算圆柱体的体积.py
查看>>
HDU 3466 Proud Merchants
查看>>
java list 容器的ConcurrentModificationException
查看>>
前端 HTML 注释
查看>>
前端 HTML标签属性
查看>>
glassfish的启动
查看>>