首页 > 其他分享 >Towers CF229D

Towers CF229D

时间:2023-03-25 22:56:12浏览次数:40  
标签:memset Towers mn int sizeof include CF229D

一个序列A, 每次可以 相邻的数相加为一个数字,求最少次数使得序列非降

 

 f[i ]= min{  f [ j ] + i-j-1 }  ,s[i]-s[j] >= s[j] -s[mn[j-1] ]

  维护下前缀最小值mn[ i]

#include <iostream>
#include <queue>
#include <cstring>

using namespace std;
 const int N =5002;
 
 int n,a[N],f[N],s[N],mn[N];
 
 signed main(){
 	int i,j;
 	cin>>n;
 	memset(f,127,sizeof f);
 	memset(mn,127,sizeof mn);
 	for(i=1;i<=n;i++)
 		cin>>a[i],s[i]=s[i-1]+a[i];
 	
 	f[0]=mn[0]=0;
 	for(i=1;i<=n;i++)
 	 for(j=0;j<i;j++){
 	 	if(mn[j]<=s[i]-s[j]){
 	 		mn[i]=min(mn[i],s[i]-s[j]);
 	 		f[i]=min(f[i],f[j]+i-j-1);
 	 	}
 	 }	
 	 cout<<f[n]<<endl;
 }	

 

标签:memset,Towers,mn,int,sizeof,include,CF229D
From: https://www.cnblogs.com/towboa/p/17255834.html

相关文章

  • Codeforces Global Round 14, C. Phoenix and Towers
    problemC.PhoenixandTowerstimelimitpertest2secondsmemorylimitpertest256megabytesinputstandardinputoutputstandardoutputPhoenixhasnblocksofh......
  • Codeforces Global Round 14 C. Phoenix and Towers(思维)
    https://codeforces.com/contest/1515/problem/C题目大意:给定一个长度为n的序列a,ai表示方块的高度。每一个方块的高度都在1和q之间。让我们用这n个方块搭建m座塔,两两......
  • CF1452D Radio Towers 题解
    可能更好的阅读体验题目传送门题目大意在数轴上有\(n+2\)个小镇,位置为\(0,1,\dots,n,n+1\)。现在在\(1,2,\dots,n\)的小镇都有\(\dfrac{1}{2}\)的概率建设一个......
  • Block Towers
    题目:Studentsinaclassaremakingtowersofblocks.Eachstudentmakesa(non-zero)towerbystackingpieceslengthwiseontopofeachother.nofthestudent......
  • 【USACO10JAN】Cheese Towers S 奶酪塔 (背包dp)
    一种思路奇特的做法。看到题目容易联想到背包dp,因为看上去很像。但是我们并不知道上面有没有大奶酪。所以我们不妨倒过来看,从上往下加奶酪。设\(dp(i,1/0)\)表示当前......
  • 【PE806】Nim on Towers of Hanoi(汉诺塔游戏,生成函数)
    PE:ProjectEuler题意:汉诺塔游戏是如下的问题:有三根柱子,第一根柱子套有\(n\)个圆盘,圆盘从上往下半径递增。每次操作可以把套在某根柱子上的最上面的那个圆盘移到另一个......
  • 17.CF739C Alyona and towers 区间合并线段树
    17.CF739CAlyonaandtowers区间合并线段树给定序列,要求支持区间加,以及查询最长先增后减子区间(单峰序列)长度非常典型的区间合并线段树,记录左右起LIS,LCS,单峰洛谷传送门:......
  • 【PE806】Nim on Towers of Hanoi(DP)(生成函数)
    NimonTowersofHanoi题目链接:PE806题目大意一个有n个盘子的汉诺塔,在第i个状态的时候如果三个柱子的盘子个数的异或和是0,就会给i的贡献。求n=100000时候的......
  • C. Alyona and towers
    C.Alyonaandtowers题目大意现在有\(n\)个数,\(m\)个操作,每次区间加一个数,对于每一次操作,你要找出最长的$\a_l...a_r\$,满足\[\existsk\!\in\![l,r],a_l<a_{l+1}<a_......
  • CF739C Alyona and towers 解题报告
    线段树绝世好题。题意:维护区间加,全局最长单峰序列。Solution:维护\(8\)个量。\(lval\):左端点的权值。\(rval\):右端点的权值。\(lmax\):以左端点开始的最长的下降序......