题目链接:

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. [hadoop] hadoop 运行 wordcount

    讲准备好的文本文件放到hdfs中 执行 hadoop 安装包中的例子 [root@hadoop01 mapreduce]# hadoop jar hadoop-mapreduce-examples-2 ...

  2. [Localization] YOLO: Real-Time Object Detection

    Ref: https://pjreddie.com/darknet/yolo/ 关注点在于,为何变得更快? 论文笔记:You Only Look Once: Unified, Real-Time Ob ...

  3. [JS] ECMAScript 6 - String, Number, Function : compare with c#

    字符串的扩展 正则的扩展 数值的扩展 函数的扩展 字符串的扩展 js 字符的 Unicode 表示法 codePointAt() String.fromCodePoint() 字符串的遍历器接口 at ...

  4. Nuxt.js项目实战

    感悟 经过几个周六周日的尝试,终于解决了服务端渲染中的常见问题,当SEO不在是问题的时候,或许才是我们搞前端的真正的春天,其中也遇到了一些小坑,Nuxt.js官方还是很给力的,提issue后很积极的给 ...

  5. linux下mysql 文件导入导出

    最近在做mysql的数据导入导出得到的一些经验,记录下. 1.首先要开通导入导出的功能,需要设置一个mysql的配置 可以在 my.conf 文件的最后增加配置项 secure-file-priv=' ...

  6. customer.java

    package banking; public class Customer { private String firstName; private String lastName; private ...

  7. SharePoint2013与SharePoint2016语言切换原理以及如何使用代码进行语言切换

    1.前言 在SharePoint 2010版本,在首页面直接"选择显示语言"的菜单(如下图所示),如下图 : 在sharepoint2013和sharepoint2016并非如此. ...

  8. 6.26 py GIL

    在python中,多进程效率远大于多线程效率 python中存在GIL这个"线程锁", 关键地方可以使用c语言解决  GIL问题  然后可以提高cpu占用效率 异步的实现!!! 同 ...

  9. B - 考试排名

    C++编程考试使用的实时提交系统,具有即时获得成绩排名的特点.它的功能是怎么实现的呢? 我们做好了题目的解答,提交之后,要么"AC",要么错误,不管怎样错法,总是给你记上一笔,表明 ...

  10. {Django基础七之Ajax} 一 Ajax简介 二 Ajax使用 三 Ajax请求设置csrf_token 四 关于json 五 补充一个SweetAlert插件(了解)

    Django基础七之Ajax 本节目录 一 Ajax简介 二 Ajax使用 三 Ajax请求设置csrf_token 四 关于json 五 补充一个SweetAlert插件(了解) 一 Ajax简介 ...