bzoj1609 [Usaco2008 Feb]Eating Together麻烦的聚餐(dp)
来源:互联网 发布:电信网络经常不稳定 编辑:程序博客网 时间:2024/05/16 08:22
dp[i][1/2/3]表示把前i个变成以1/2/3结尾的合法队列的最少改动数,正着倒着各做一遍取最小。
#include <cstdio>#include <cstring>#define N 30005int n,a[N],dp[N][4],ans=0;inline int min(int x,int y){return x<y?x:y;}int main(){// freopen("a.in","r",stdin); scanf("%d",&n); for(int i=1;i<=n;++i) scanf("%d",&a[i]); memset(dp,0,sizeof(dp)); for(int i=1;i<=n;++i){ dp[i][1]=dp[i-1][1]+(a[i]==1?0:1); dp[i][2]=min(dp[i-1][2],dp[i-1][1])+(a[i]==2?0:1); dp[i][3]=min(min(dp[i-1][2],dp[i-1][1]),dp[i-1][3])+(a[i]==3?0:1); } ans=min(dp[n][1],min(dp[n][2],dp[n][3])); for(int i=n;i>=1;--i){ dp[i][1]=dp[i+1][1]+(a[i]==1?0:1); dp[i][2]=min(dp[i+1][2],dp[i+1][1])+(a[i]==2?0:1); dp[i][3]=min(min(dp[i+1][2],dp[i+1][1]),dp[i+1][3])+(a[i]==3?0:1); } ans=min(min(ans,dp[1][1]),min(dp[1][2],dp[1][3])); printf("%d\n",ans); return 0;}
阅读全文
0 0
- bzoj1609 [Usaco2008 Feb]Eating Together麻烦的聚餐(dp)
- [BZOJ1609] [Usaco2008 Feb]Eating Together麻烦的聚餐
- bzoj1609【Usaco2008 Feb】Eating Together 麻烦的聚餐
- [bzoj1609]: [Usaco2008 Feb]Eating Together麻烦的聚餐 递推
- BZOJ1609: [Usaco2008 Feb]Eating Together麻烦的聚餐
- BZOJ1609: [Usaco2008 Feb]Eating Together麻烦的聚餐
- 【bzoj1609】[Usaco2008 Feb]Eating Together麻烦的聚餐
- bzoj1609: [Usaco2008 Feb]Eating Together麻烦的聚餐
- [Usaco2008 Feb]Eating Together麻烦的聚餐(DP)
- DP-BZOJ-1609-[Usaco2008 Feb]Eating Together麻烦的聚餐
- [Usaco2008 Feb]Eating Together麻烦的聚餐
- [Usaco2008 Feb]Eating Together麻烦的聚餐
- 【BZOJ1609】[Usaco2008 Feb]Eating Together麻烦的聚餐【最长不下降子序列】
- bzoj 1609: [Usaco2008 Feb]Eating Together麻烦的聚餐(DP)
- BZOJ 1609: [Usaco2008 Feb]Eating Together麻烦的聚餐
- 1609: [Usaco2008 Feb]Eating Together麻烦的聚餐
- BZOJ 1609: [Usaco2008 Feb]Eating Together麻烦的聚餐
- 【bzoj 1609】[Usaco2008 Feb]Eating Together麻烦的聚餐
- 非阻塞队列ConcurrentLinkedQueue与阻塞队列LinkedBlockingQueue原理探究
- tuple元祖
- ? 枚举
- 学习promise编写和使用
- 视频存储格式YUV420 NV12 NV21 i420 YV12
- bzoj1609 [Usaco2008 Feb]Eating Together麻烦的聚餐(dp)
- 【排序算法总结】冒泡排序
- mybatis generator生成的**Example类具体用法
- Python基础(6)——实现输入任意多个数,并计算其平均值
- Vuforia-Getting Started with Vuforia for Unity Development
- 执行 systemctl start firewalld 命令后出现Failed to start firewalld.service: Unit is masked
- PAT 乙级 1020.月饼(25)
- HDU1596 find the safest road 最短路问题Dijskra+最小堆
- 三菱PLC运动控制模块简介