UVA 1379 - Pitcher Rotation(DP + 贪心)
题目链接:option=com_onlinejudge&Itemid=8&page=show_problem&problem=4125" rel="nofollow">1379 - Pitcher Rotation
#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 + 贪心)的更多相关文章
- 【UVA1379】Pitcher Rotation (贪心+DP)
题意: 你经营者一直棒球队.在接下来的g+10天中有g(3<=g<=200)场比赛,其中每天最多一场比赛.你已经分析出你的n(5<=n<=100)个投手中每个人对阵所有m个对手 ...
- 【bzoj4027】[HEOI2015]兔子与樱花 树形dp+贪心
题目描述 很久很久之前,森林里住着一群兔子.有一天,兔子们突然决定要去看樱花.兔子们所在森林里的樱花树很特殊.樱花树由n个树枝分叉点组成,编号从0到n-1,这n个分叉点由n-1个树枝连接,我们可以把它 ...
- UVA.674 Coin Change (DP 完全背包)
UVA.674 Coin Change (DP) 题意分析 有5种硬币, 面值分别为1.5.10.25.50,现在给出金额,问可以用多少种方式组成该面值. 每种硬币的数量是无限的.典型完全背包. 状态 ...
- uva 10817(数位dp)
uva 10817(数位dp) 某校有m个教师和n个求职者,需讲授s个课程(1<=s<=8, 1<=m<=20, 1<=n<=100).已知每人的工资c(10000 ...
- BZOJ 2021 [Usaco2010 Jan]Cheese Towers:dp + 贪心
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2021 题意: John要建一个奶酪塔,高度最大为m. 他有n种奶酪.第i种高度为h[i]( ...
- 洛谷P2507 [SCOI2008]配对 题解(dp+贪心)
洛谷P2507 [SCOI2008]配对 题解(dp+贪心) 标签:题解 阅读体验:https://zybuluo.com/Junlier/note/1299251 链接题目地址:洛谷P2507 [S ...
- UVA 11404 Palindromic Subsequence[DP LCS 打印]
UVA - 11404 Palindromic Subsequence 题意:一个字符串,删去0个或多个字符,输出字典序最小且最长的回文字符串 不要求路径区间DP都可以做 然而要字典序最小 倒过来求L ...
- 【BZOJ-1046】上升序列 DP + 贪心
1046: [HAOI2007]上升序列 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 3723 Solved: 1271[Submit][Stat ...
- Codeforces 675E Trains and Statistic(DP + 贪心 + 线段树)
题目大概说有n(<=10W)个车站,每个车站i卖到车站i+1...a[i]的票,p[i][j]表示从车站i到车站j所需买的最少车票数,求所有的p[i][j](i<j)的和. 好难,不会写. ...
随机推荐
- AES和RSA算法的demo代码
aes代码示例: package com.autoyol.util.security.test; import java.security.Key; import java.security.NoSu ...
- [hive] hive cli 命令行
hive 版本 1.2.2 帮助信息 -d 属性 set 和 set -v 变量 hive --define 和 hivevar:变量名字 -e 不启动hive,执行完成后自动退出. ...
- [Tensorflow] Cookbook - Object Classification based on CIFAR-10
Convolutional Neural Networks (CNNs) are responsible for the major breakthroughs in image recognitio ...
- [IR] Arithmetic Coding
Statistical methods的除了huffman外的另一种常见压缩方式. Huffman coding的非连续数值特性成为了无法达到香农极限的先天无法弥补的缺陷,但Arithmetic co ...
- PHP伪造referer突破网盘禁止外链(附115源码)
新建一个文件file.php.后面的参数就是需要伪造referfer的目标地址吧.如:file.php/http://www.xxx.xxx/xxx.mp3 复制内容到剪贴板 代码: <?$ur ...
- js的 new Date()日期格式化显示以及js获取时间戳
一.日期格式化显示: 对 new Date() 得到日期的进行格式显示扩展,扩展方法如下: // 对Date的扩展,将 Date 转化为指定格式的String // 月(M).日(d).小时(h).分 ...
- cocos2dx内存管理
cocos2dx基于引用计数管理内存,所有继承自CCObject的对象都将获得引用计数的能力,可通过调用retain成员函数用于引用计数值,调用release减少引用计数值,当计数值减为0时销毁对象. ...
- 轮滑基础(一)(前摔,葫芦步,推步,A字转弯,弓步转弯)
轮滑新手入门推荐? [柚子陪你学轮滑轮滑教学]第一集 轮滑安全 1,站: 站立:脚可以成v字,或者平行,手放膝盖或者前伸.平行站立 膝盖相距一拳头左右,两腿间距略小于肩宽.膝盖略弯,腰下压,抬头挺胸 ...
- 高斯混合模型 GMM
本文将涉及到用 EM 算法来求解 GMM 模型,文中会涉及几个统计学的概念,这里先罗列出来: 方差:用来描述数据的离散或波动程度. \[var(X) = \frac{\sum_{i=1}^N( X_ ...
- SPL标准库-数据结构
数据结构:栈 );] = ;] = ;var_dump($array); 来自为知笔记(Wiz)