首页 > 其他分享 >P3558 [POI2013]BAJ-Bytecomputer

P3558 [POI2013]BAJ-Bytecomputer

时间:2023-03-05 17:11:22浏览次数:42  
标签:Bytecomputer ai POI2013 int inf BAJ P3558

给定一个长度为 nn 的只包含 −1,0,1−1,0,1 的数列 A, 每次操作可以使 ai←ai+ai−1 ,

求最少操作次数使得序列单调不降。

 

 F [i] [3 ]

 分类讨论

 

#include <iostream>
using namespace std ;
 const int N=1e6+2,inf=0x3f3f3f3f;
 int a[N],f[N][3],n;
 
 signed main(){
 	int i;
 	cin>>n; 
 	for(i=1;i<=n;i++) cin>>a[i];
 	f[1][0]=f[1][1]=f[1][2]=inf; f[1][a[1]+1]=0;
 	
 	for(i=2;i<=n;i++){
 		if(a[i]==-1){
 			f[i][0]=f[i-1][0];
 			if(a[i-1]==1) f[i][1]=1+min(f[i-1][0],f[i-1][1]);
 			else f[i][1]=inf;
 			
 			if(a[i-1]==1) f[i][2]=2+min(f[i-1][0],min(f[i-1][1],f[i-1][2]));
			else f[i][2]=2+f[i-1][2];
		 }
		if(a[i]==0){
			f[i][0]=f[i-1][0]+1;
			f[i][1]=min(f[i-1][0],f[i-1][1]);
	if(a[i-1]==1) f[i][2]=1+min(f[i-1][0],min(f[i-1][1],f[i-1][2]));
	else f[i][2]=f[i-1][2]+1;
		}
		if(a[i]==1){
			f[i][0]=f[i-1][0]+2;
			
			if(a[i-1]==-1) f[i][1]=min(f[i-1][0],f[i-1][1])+1;
			else f[i][1]=f[i-1][0]+1;
			
			f[i][2]=min(f[i-1][0],min(f[i-1][1],f[i-1][2]));
		}
	 }
	 if(min(f[n][0],min(f[n][1],f[n][2]))<inf)
	     cout<<min(f[n][0],min(f[n][1],f[n][2]));
	 else cout<<"BRAK";
 }

 

标签:Bytecomputer,ai,POI2013,int,inf,BAJ,P3558
From: https://www.cnblogs.com/towboa/p/17180963.html

相关文章

  • P3549 [POI2013]MUL-Multidrink 题解--zhengjun
    其他题解都是大码量的直接构造,来一发dp的题解。思路很明确,直接dp,然后输出路径即可。考虑先把\(1\ton\)的路径找出来,记为\(a_i(1\lei\lem)\)。那么肯定存在一种......
  • POI2013
    PriceList可以发现答案只有三种:要么最短路乘\(a\),要么最短路换成\(b\),要么最短偶数路换成\(b\)。这里的最短偶数路还要满足不经过\((x,y),(y,z)\)且\((x,z)\)有边。前......
  • P3558 BAJ-Bytecomputer
    P3558BAJ-Bytecomputer题意:给定一个长度为\(n\)的只包含\(-1,0,1\)的数列\(a\),每次操作可以使\(a_i\leftarrowa_i+a_{I-1}\),求最少操作次数使得序列单调......
  • LG-P3550 [POI2013]TAK-Taxis 题解
    LG-P3550[POI2013]TAK-TaxisSolution目录LG-P3550[POI2013]TAK-TaxisSolution更好的阅读体验戳此进入题面输入格式SolutionCodeUPD更好的阅读体验戳此进入题面存在......
  • LG-P3552 [POI2013]SPA-Walk 题解
    LG-P3552[POI2013]SPA-WalkSolution目录LG-P3552[POI2013]SPA-WalkSolution更好的阅读体验戳此进入题面输入格式SolutionCodeUPD更好的阅读体验戳此进入(建议您从上......
  • 「POI2013」Multidrink
    题目点这里看题目。给定一棵包含\(n\)个结点的树。构造一个\(1\simn\)的排列\(p_1,p_2,\dots,p_n\),满足:\(p_1=1,p_n=n\)。对于任意的\(1\lek<n\),\(p_k\)......