P5851 [USACO19DEC]Greedy Pie Eaters P
如果只考虑选哪些奶牛吃派和奶牛吃派的顺序,就会陷入僵局,那么我们可以考虑派的情况。
套路地令 \(f_{i,j}\) 表示 \(i\sim j\) 这一段派,能满足一些奶牛,它们的最大可能体重。
\]
因为一头奶牛至少吃一个派,所以就可以枚举这个派是什么,要满足的条件是这头奶牛吃派不会影响到 \(i\sim j\) 范围之外的派且 \(k\) 位置的派能吃到。
直接搞显然是 \(n^3m\) 的,仔细分析一下,发现奶牛是否合法仅仅取决于 \(i,j,k\) 对其 \(l,r\) 的限制,奶牛产生的贡献也仅仅取决于其本身的 \(w\)。不妨令 \(g_{i,j,k}\) 表示在该限制下最大的 \(w\),那么转移方程就变为:
\]
接着就考虑 \(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的更多相关文章
- USACO19DEC题解
Bronze A Cow Gymnastics 题目:https://www.luogu.com.cn/problem/P5831 题解:用数组存一下出现位置,O(n^2)枚举一下就好. 代码: #i ...
- RE:ゼロから始める AFO 生活
新建这篇博客的时候发现自己在NOI之后只发过两三篇博客,而且都基本上没什么实质性内容. 果然是巨大混混人啊. 本文承接上篇(不过好像烂尾了),旨在记录一些有趣(?)的内容. 12.23 北大集训过去好 ...
- UVALive 3635 Pie 切糕大师 二分
题意:为每个小伙伴切糕,要求每个小盆友(包括你自己)分得的pie一样大,但是每个人只能分得一份pie,不能拿两份凑一起的. 做法:二分查找切糕的大小,然后看看分出来的个数有没有大于小盆友们的个数,它又 ...
- USACO . Greedy Gift Givers
Greedy Gift Givers A group of NP (2 ≤ NP ≤ 10) uniquely named friends has decided to exchange gifts ...
- [No0000A2]“原始印欧语”(PIE)听起来是什么样子?
"Faux Amis"节目中经常提到"原始印欧语"(PIE)——"Proto-Indo-European". 我们说过,英语,法语中的&qu ...
- poj3311 Hie with the Pie (状态压缩dp,旅行商)
Hie with the Pie Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 3160 Accepted: 1613 ...
- pygame 练习之 PIE game (以及简单图形训练)
简单的大饼游戏,掌握pygame中直线以及圆弧的画法,以及对输入的响应. import math import pygame, sys from pygame.locals import * pyga ...
- Pizza Pie Charts – 基于 Snap SVG 框架的响应式饼图
Pizza Pie Charts 是一个基于 Adobe 的 Snap SVG 框架的响应式饼图插件.它着重于集成 HTML 标记和 CSS,而不是 JavaScript 对象,当然Pizza Pie ...
- 【poj3122】 Pie
http://poj.org/problem?id=3122 (题目链接) 题意 给出N个pie的半径和F个friend,每个friend得到的pie必须一样,求每个人能得到的pie的最大大小. so ...
随机推荐
- 16 String类
java中的所有的字符串文字(例如"abc","123")都可以看做是实现了此类的实例对象 eg: String str = new String(); str ...
- Scala-1-字符处理
// s插值val s = s"a = $a, b = $b"val s = s"a = ${a*2}, b = ${b*3}" // 顶格 及 插值val s ...
- P3065 [USACO12DEC]First! G
题意描述 [USACO12DEC]First! G 不错的一道题. 给你 \(N\) 个字符串,要求你求出可能的字典序最小的字符串. 对于 可能的最小的字符串,你可以任意排列 \(26\) 个字母,使 ...
- Windows Server 2012 R2 辅助域控制器搭建
Windows Server 2012 R2 辅助域控制器搭建 以下操作都是基于主域已搭建成功的基础上,全程操作过程都是在辅域上操作完成. 地址 主域:10.228.81.207 辅域:10.228. ...
- Efficient Estimation of Word Representations in Vector Space 论文笔记
Mikolov T , Chen K , Corrado G , et al. Efficient Estimation of Word Representations in Vector Space ...
- Java字符串到数组的转换--最后放大招
本文是关于如何在Java中以不同方式将String转换为String Array的几种方法,按照惯例,文末会分享Groovy语言中的实现. split()方法 字符串api是通过split()方法添加 ...
- 多级iframe中,获取元素相对于浏览器左上角的坐标(非当前frame)
搜索了好多文章,都不是自己想要的,所以在此贴下自己的解决方案,做个笔记. 1.常规需求:获取当前元素距离左边.顶部的距离 1 var x = $(div).offset().left; 2 var y ...
- MSSQL sql numeric转字符串显示不补0
由于工作中需要把numeric转字符串显示,但是有一个问题会自动补0. DECLARE @f NUMERIC(18,4)=1.1200, @str VARCHAR(50) SELECT CAST(@f ...
- Spider_基础总结3_BeautifulSoup对象+find()+find_all()
# 本节内容: # 解析复杂的 HTML网页: # 1--bs.find() bs.find_all() tag.get_text() # find_all(tag/tag_list,attribut ...
- 批处理最小二乘法 python
参考:系统辨识与自适应控制MATLAB仿真(修订版) 庞中华 崔红 仿真实例2.5 import numpy as np import matplotlib.pyplot as plt from mx ...