题目链接:

option=com_onlinejudge&Itemid=8&page=show_problem&problem=4125" rel="nofollow">1379 - Pitcher Rotation

题意:n个人,m个敌人。去比赛,有得分。n个人能够反复比。可是每次比完要歇息4天,问最大得分
思路:dp[i][j][k][l][x] 表示第场比赛,前一天为j,两天为k,三天为l。四天为x,的最大得分,然后因为仅仅有每一个人5天就能用一次,所以对于每一个人来说,仅仅有得分前5的会被使用上。所以后4维状态仅仅须要5^4,进行状态转移。不用比赛的情况分开考虑。还有这题内存有限,要用滚动数组优化不然会RE
代码:
#include <stdio.h>
#include <string.h>
#include <algorithm>
using namespace std;
#define max(a,b) ((a)>(b)?(a):(b))
const int N = 105;
const int M = 205;
int t, n, m, G, d[M + 10], i, x, j, k, l, y, dp[2][6][6][6][6], ans; struct Map {
int v, id;
} g[N][N]; bool cmp(Map a, Map b) {
return a.v > b.v;
} int cal(int u, int v) {
if (u == 0 || v == 0)
return 0;
return g[u][v].id;
} int main() {
scanf("%d", &t);
while (t--) {
ans = 0;
scanf("%d%d%d", &n, &m, &G);
for (i = 1; i <= m; i++) {
for (j = 1; j <= n; j++) {
scanf("%d", &g[i][j].v);
g[i][j].id = j;
}
sort(g[i] + 1, g[i] + 1 + n, cmp);
}
G += 10;
for (i = 1; i <= G; i++)
scanf("%d", &d[i]);
memset(dp[0], 0, sizeof(dp[0]));
for (i = 1; i <= G; i++) {
int now = i % 2;
int pre = (!now);
memset(dp[now], 0, sizeof(dp[now]));
if (d[i]) {
for (y = 1; y <= 5; y++) {
for (j = 0; j <= 5; j++) {
if (i > 1 && cal(d[i], y) == cal(d[i - 1], j)) continue; for (k = 0; k <= 5; k++) {
if (i > 2 && cal(d[i], y) == cal(d[i - 2], k)) continue; for (l = 0; l <= 5; l++) {
if (i > 3 && cal(d[i], y) == cal(d[i - 3], l)) continue; for (x = 0; x <= 5; x++) {
if (i > 4 && cal(d[i], y) == cal(d[i - 4], x)) continue;
dp[now][y][j][k][l] = max(dp[now][y][j][k][l], dp[pre][j][k][l][x] + g[d[i]][y].v);
ans = max(ans, dp[now][y][j][k][l]);
}
}
}
}
}
}
else {
for (j = 0; j <= 5; j++) {
for (k = 0; k <= 5; k++) {
for (l = 0; l <= 5; l++) {
for (x = 0; x <= 5; x++) {
dp[now][0][j][k][l] = max(dp[now][0][j][k][l], dp[pre][j][k][l][x]);
ans = max(ans, dp[now][0][j][k][l]);
}
}
}
}
}
}
printf("%.2lf\n", ans * 1.0 / 100);
}
return 0;
}

UVA 1379 - Pitcher Rotation(DP + 贪心)的更多相关文章

  1. 【UVA1379】Pitcher Rotation (贪心+DP)

    题意: 你经营者一直棒球队.在接下来的g+10天中有g(3<=g<=200)场比赛,其中每天最多一场比赛.你已经分析出你的n(5<=n<=100)个投手中每个人对阵所有m个对手 ...

  2. 【bzoj4027】[HEOI2015]兔子与樱花 树形dp+贪心

    题目描述 很久很久之前,森林里住着一群兔子.有一天,兔子们突然决定要去看樱花.兔子们所在森林里的樱花树很特殊.樱花树由n个树枝分叉点组成,编号从0到n-1,这n个分叉点由n-1个树枝连接,我们可以把它 ...

  3. UVA.674 Coin Change (DP 完全背包)

    UVA.674 Coin Change (DP) 题意分析 有5种硬币, 面值分别为1.5.10.25.50,现在给出金额,问可以用多少种方式组成该面值. 每种硬币的数量是无限的.典型完全背包. 状态 ...

  4. uva 10817(数位dp)

    uva 10817(数位dp) 某校有m个教师和n个求职者,需讲授s个课程(1<=s<=8, 1<=m<=20, 1<=n<=100).已知每人的工资c(10000 ...

  5. BZOJ 2021 [Usaco2010 Jan]Cheese Towers:dp + 贪心

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2021 题意: John要建一个奶酪塔,高度最大为m. 他有n种奶酪.第i种高度为h[i]( ...

  6. 洛谷P2507 [SCOI2008]配对 题解(dp+贪心)

    洛谷P2507 [SCOI2008]配对 题解(dp+贪心) 标签:题解 阅读体验:https://zybuluo.com/Junlier/note/1299251 链接题目地址:洛谷P2507 [S ...

  7. UVA 11404 Palindromic Subsequence[DP LCS 打印]

    UVA - 11404 Palindromic Subsequence 题意:一个字符串,删去0个或多个字符,输出字典序最小且最长的回文字符串 不要求路径区间DP都可以做 然而要字典序最小 倒过来求L ...

  8. 【BZOJ-1046】上升序列 DP + 贪心

    1046: [HAOI2007]上升序列 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 3723  Solved: 1271[Submit][Stat ...

  9. Codeforces 675E Trains and Statistic(DP + 贪心 + 线段树)

    题目大概说有n(<=10W)个车站,每个车站i卖到车站i+1...a[i]的票,p[i][j]表示从车站i到车站j所需买的最少车票数,求所有的p[i][j](i<j)的和. 好难,不会写. ...

随机推荐

  1. Angular4学习笔记(十)- 组件间通信

    分类 父子组件通信 非父子组件通信 实现 父子 父子组件通信一般使用@Input和@Output即可实现,参考Angular4学习笔记(六)- Input和Output 通过Subject 代码如下: ...

  2. pixmap和label设置图片自适应大小

    在label中添加pixmap来显示图片时,当图片过大时图片显示不全. 1.这时可以使用pixmap的scared()方法,来设置图片缩放. QPixmap QPixmap.scaled (self, ...

  3. linux环境中,top命令中,对command的命令进行扩展查看详情?

    需求说明: 在使用top命令进行资源情况使用查看时,经常出现以下情况: 备注:也就是说,在COMMAND列中,有多个java进程,想要知道每个java具体的对应的是哪个程序的进程. 通过top命令的c ...

  4. MTK 修改默认屏幕亮度

    frameworks\base\packages\SettingsProvider\res\values\defaults.xml <!-- Default screenbrightness, ...

  5. 看看大网站都用什么操作系统和Web服务器

    以下内容为网络上转载总结,不是很准确 Google 用哪些软件做 Web Server? 除了有两个节点操作系统看出来是 Linux 外,其他的都是未知的. Web 服务器用的都是 GWS ? 我估计 ...

  6. Spring.NET依赖注入框架学习--简单对象注入

    Spring.NET依赖注入框架学习--简单对象注入 在前面的俩篇中讲解了依赖注入的概念以及Spring.NET框架的核心模块介绍,今天就要看看怎么来使用Spring.NET实现一个简单的对象注入 常 ...

  7. H - An Easy Problem?!

    来源 poj2826 It's raining outside. Farmer Johnson's bull Ben wants some rain to water his flowers. Ben ...

  8. D - Lake Counting

    Due to recent rains, water has pooled in various places in Farmer John's field, which is represented ...

  9. Java基础语法<八> 继承 多态 抽象 反射

    1.超类和子类 超类和子类 父类与子类 多态: 一个对象变量可以指示多种实际类型的现象称为多态 一个变量可以引用父类对象,也可以引用其子类对象,这就是多态. 不能将一个超类的引用赋给子类变量,因为调用 ...

  10. 网络通信协议之ICMP

    ICMP(互联网控制消息协议) ICMP >>Internet Control Message Protocol IP协议的缺点: >>无差错报告和差错纠正机制 >> ...