首页 > 其他分享 >CF467C George and Job 题解 DP 前缀和

CF467C George and Job 题解 DP 前缀和

时间:2024-01-24 21:47:59浏览次数:178  
标签:前缀 int 题解 Job vector George DP CF467C

DP 前缀和

题目链接

题意:

给你一个长度为\(n\)的序列,让你从这个序列中挑选出\(k\)个长度为\(m\)的区间,并且任意区间不相交。使得选出的数之和最大,求出这个数。

解法:

很经典的DP模型,我们定义\(f_{i,j}\)表示从前\(i\)个数选出了\(j\)个区间可以取得的最大值,那么答案为:\(f_{n,k}\)。
根据闫式DP分析法,我们可以按照第\(i\)个元素选还是不选来划分。
①不选:结果即为\(f_{i-1,j}\)
②选:结果即为:\(f_{i-m,j-1}+a_{i-m+1}+a_{i-m+2}+...+a_{i-1}+a_{i}\)
用前缀和优化一下:\(f_{i-m,j-1}+s_i-s_{i-m}\)
两种情况取个max即可。

参考代码

void Showball(){
  int n,m,k;
  cin>>n>>m>>k;
  vector<LL> a(n+1),s(n+1);
  for(int i=1;i<=n;i++){
    cin>>a[i];
    s[i]=s[i-1]+a[i];
  }    
  vector f(n+1,vector<LL>(k+1));

  for(int i=1;i<=n;i++){
    for(int j=1;j<=k;j++){
      f[i][j]=f[i-1][j];
      if(i>=m) f[i][j]=max(f[i][j],f[i-m][j-1]+s[i]-s[i-m]);
    }
  }
  
  cout<<f[n][k]<<endl;
}

标签:前缀,int,题解,Job,vector,George,DP,CF467C
From: https://www.cnblogs.com/showball/p/17985906

相关文章

  • SNOI 2024 题解(坑:D1T3 D2T1 D2T2)
    树V图相同\(f(i)\)的点必然构成一个连通块,不然一定无解。每一个连通块中需要选出一个关键点,考虑相邻连通块是否合法,发现条件其实很很好判,就是两个交界点的距离需要满足某个大小关系,容易预处理后\(O(1)\)判,于是\(f_{u,x}\)表示\(u\)连通块内取\(x\)的方案数,DP即可。......
  • 关于php进行post出现500的超时问题解决办法
      最近搞个项目使用php进行post请求,时间长了就会出现500错误,ngnix报了个错误:upstreamtimedout(10060:Aconnectionattemptfailedbecausetheconnectedpartydidnotproperlyrespondafteraperiodoftime,orestablishedconnectionfailedbecauseconnected......
  • P1481魔族密码 题解(字典树)
    魔族密码题目背景风之子刚走进他的考场,就……花花:当当当当~~偶是魅力女皇——花花!!^^(华丽出场,礼炮,鲜花)风之子:我呕……(杀死人的眼神)快说题目!否则……-_-###题目描述花花:……咦好冷我们现在要解决的是魔族的密码问题(自我陶醉:搞不好魔族里面还会有人用密码给我和菜虫写情书咧,哦......
  • 【题解 P8575】 星之河
    「DTOI-2」星之河题目背景星稀河影转,霜重月华孤。题目描述星之统治者有一个星盘,其可以被抽象为一棵根节点为\(1\)的树。树上每个节点\(i\)有一颗红星、一颗蓝星,亮度分别记为\(\text{Red}_i,\text{Blue}_i\)。现在,星之统治者想要知道,对于每个节点\(x\),其子树内(不包括......
  • 题解 P9911 [COCI 2023/2024 #2] Kuglice
    传送门。题意应该是显然的.分析首先,观察数据范围:\(1\len\le3000\),也就是说,时间复杂度应当在\(O(n^2)\)左右。其次,观察我们取球的顺序,是只能从左或右取,因此,我们每次留下的必然是连续的一段。所以,我们显然可以采用区间DP来解决这道题。确定状态:\(f_{i,j}\)表示现在取......
  • CF1689A题解
    题意简述给定字符串\(a\)和\(b\),每次从\(a\)串或\(b\)串中选出一个字符加入\(c\)串,要求\(c\)串的字典序最小。特别地,在\(c\)串中不能出现连续\(k\)次来源相同的字符。思维路径由于字符是随意选取的,易于发现每次选\(a\)串中字典序最小的字符或者\(b\)串中字......
  • CF911G Mass Change Queries 题解
    题目链接:CF或者洛谷前置知识点:平衡树合并:CF文章与维基百科看上去这题有很多人用线段树分裂与合并去做,其实这种需要分裂和合并的,我们用文艺平衡树去维护区间信息是最容易写的。考虑本题的特殊性,值域并不是很大,所以其实我们可以为每种值开一棵文艺平衡树,而平衡树维护的值为......
  • [SNOI2024]公交线路 题解
    为啥洛谷现有的题解全是\(O(n^2\logn)\)的做法?给个好写的\(O(n^2)\)做法。感觉这题是这套题中除了D1T1以外最简单的题(显然最远的距离一定由两个叶子贡献,我们拎出一个非叶节点为根,分析一些性质。考虑两个叶子\(u,v\)何时距离\(\le2\),这要求它们所一步能到达的最浅点......
  • 【题解 P4197】 Peaks
    Peaks题目描述在Bytemountains有\(n\)座山峰,每座山峰有他的高度\(h_i\)。有些山峰之间有双向道路相连,共\(m\)条路径,每条路径有一个困难值,这个值越大表示越难走。现在有\(q\)组询问,每组询问询问从点\(v\)开始只经过困难值小于等于\(x\)的路径所能到达的山峰中第\(......
  • 【题解 P3293】 美味
    [SCOI2016]美味题目描述一家餐厅有\(n\)道菜,编号\(1,2,\ldots,n\),大家对第\(i\)道菜的评价值为\(a_i\)。有\(m\)位顾客,第\(i\)位顾客的期望值为\(b_i\),而他的偏好值为\(x_i\)。因此,第\(i\)位顾客认为第\(j\)道菜的美味度为\(b_i\oplus(a_j+x_i)\),\(\opl......