如果只考虑选哪些奶牛吃派和奶牛吃派的顺序,就会陷入僵局,那么我们可以考虑派的情况。

套路地令 \(f_{i,j}\) 表示 \(i\sim j\) 这一段派,能满足一些奶牛,它们的最大可能体重。

\[f_{i,j}=f_{i,k-1}+f_{k+1,j}+w_p(i\leq l_p\leq k\leq r_p\leq j)
\]

因为一头奶牛至少吃一个派,所以就可以枚举这个派是什么,要满足的条件是这头奶牛吃派不会影响到 \(i\sim j\) 范围之外的派且 \(k\) 位置的派能吃到。

直接搞显然是 \(n^3m\) 的,仔细分析一下,发现奶牛是否合法仅仅取决于 \(i,j,k\) 对其 \(l,r\) 的限制,奶牛产生的贡献也仅仅取决于其本身的 \(w\)。不妨令 \(g_{i,j,k}\) 表示在该限制下最大的 \(w\),那么转移方程就变为:

\[f_{i,j}=f_{i,k-1}+f_{k+1,j}+g_{i,j,k}
\]

接着就考虑 \(g\) 怎么搞。

初始化:\(g_{l_p,r_p,l_p\sim r_p}=w_p\)(每头奶牛吃派的范围不同)。

转移:\(g_{i,j,k}=\max\{g_{i+1,j,k},g_{i,j-1,k}\}\)。

其实就是预处理一下区间 \(\max\)。

时间复杂度 \(O(n^3)\)~

code:

#include<bits/stdc++.h>
using namespace std;
#define N 305
#define Max(x,y)((x)>(y)?x:y)
#define For(i,x,y)for(i=x;i<=(y);i++)
int g[N][N][N],f[N][N];
int main()
{
int n,m,i,j,w,l,r,len,k;
scanf("%d%d",&n,&m);
For(i,1,m)
{
scanf("%d%d%d",&w,&l,&r);
For(j,l,r)g[l][r][j]=w;
}
For(len,1,n-1)
For(i,1,n)
{
j=i+len-1;
if(j>n)break;
For(k,i,j)g[i][j+1][k]=Max(g[i][j+1][k],g[i][j][k]),g[i-1][j][k]=Max(g[i-1][j][k],g[i][j][k]);
}
For(len,1,n)
For(i,1,n)
{
j=i+len-1;
if(j>n)break;
For(k,i,j)f[i][j]=Max(f[i][j],f[i][k-1]+f[k+1][j]+g[i][j][k]);
}
printf("%d",f[1][n]);
return 0;
}

P5851 [USACO19DEC]Greedy Pie Eaters P的更多相关文章

  1. USACO19DEC题解

    Bronze A Cow Gymnastics 题目:https://www.luogu.com.cn/problem/P5831 题解:用数组存一下出现位置,O(n^2)枚举一下就好. 代码: #i ...

  2. RE:ゼロから始める AFO 生活

    新建这篇博客的时候发现自己在NOI之后只发过两三篇博客,而且都基本上没什么实质性内容. 果然是巨大混混人啊. 本文承接上篇(不过好像烂尾了),旨在记录一些有趣(?)的内容. 12.23 北大集训过去好 ...

  3. UVALive 3635 Pie 切糕大师 二分

    题意:为每个小伙伴切糕,要求每个小盆友(包括你自己)分得的pie一样大,但是每个人只能分得一份pie,不能拿两份凑一起的. 做法:二分查找切糕的大小,然后看看分出来的个数有没有大于小盆友们的个数,它又 ...

  4. USACO . Greedy Gift Givers

    Greedy Gift Givers A group of NP (2 ≤ NP ≤ 10) uniquely named friends has decided to exchange gifts ...

  5. [No0000A2]“原始印欧语”(PIE)听起来是什么样子?

    "Faux Amis"节目中经常提到"原始印欧语"(PIE)——"Proto-Indo-European". 我们说过,英语,法语中的&qu ...

  6. poj3311 Hie with the Pie (状态压缩dp,旅行商)

    Hie with the Pie Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 3160   Accepted: 1613 ...

  7. pygame 练习之 PIE game (以及简单图形训练)

    简单的大饼游戏,掌握pygame中直线以及圆弧的画法,以及对输入的响应. import math import pygame, sys from pygame.locals import * pyga ...

  8. Pizza Pie Charts – 基于 Snap SVG 框架的响应式饼图

    Pizza Pie Charts 是一个基于 Adobe 的 Snap SVG 框架的响应式饼图插件.它着重于集成 HTML 标记和 CSS,而不是 JavaScript 对象,当然Pizza Pie ...

  9. 【poj3122】 Pie

    http://poj.org/problem?id=3122 (题目链接) 题意 给出N个pie的半径和F个friend,每个friend得到的pie必须一样,求每个人能得到的pie的最大大小. so ...

随机推荐

  1. 如何使用Python爬取基金数据,并可视化显示

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于Will的大食堂,作者打饭大叔 前言 美国疫情越来越严峻,大选也进入 ...

  2. String字符串性能优化的探究

    一.背景 String 对象是我们使用最频繁的一个对象类型,但它的性能问题却是最容易被忽略的.String 对象作为 Java 语言中重要的数据类型,是内存中占用空间最大的一个对象,高效地使用字符串, ...

  3. 【总结】sqlserver

    1 基础 1.1 简介 sqlserver是闭源的,必须运行在windows平台上的数据库.默认事务隔离级别是读已提交(commit read).全称Microsoft SQL Server,说以也被 ...

  4. Luogu P4280 [AHOI2008]逆序对

    题目描述 甩个链接就走 题解 先预处理出每个位置上分别填上 1~k 的数的逆序对的数量的前缀和与后缀和 (不用管原来有值的,统计时不计入答案就行了) (有点绕,看代码应该能懂) 然后枚举每个 -1 的 ...

  5. 【持续更新】Tomcat低级错误

    0(模板) 所犯错误: 现象: 报错内容: 1 所犯错误: 声明@Webservlet中未加"/"符号: 现象: 能够Connected to server,但是代码报错,且无法顺 ...

  6. 微信小程序授权页面

    这里也是比较简单的 直接复制粘贴就可以用,可能图片位置不对.. <template> <view id="imporwer"> <image src= ...

  7. uniapp微信小程序分享

    触发代码 如: <button open-type="share">分享</button> 在JS中 分享进入页面传参,和微信小程序路由传参的思路是一样的. ...

  8. ZOJ 1005 Jugs(BFS)

    Jugs In the movie "Die Hard 3", Bruce Willis and Samuel L. Jackson were confronted with th ...

  9. mac下docker安装php链接使用国产数据库驱动

    docker下配置php macos系统无法使用神通数据库,所以使用docker来安装php 第一步先安装php docker search php docker pull php:7.1-fpm d ...

  10. thinkphp之无限分类

    namespace Home\Controller; use Home\Controller; class CategoryController extends Controller { //无限分类 ...