有 n 种主武器,m 种副武器。每种武器有一个基础分数k种属性值 X[i] 。

选出一种主武器 mw 和一种副武器 sw,使得两种武器的分数和 + 每个属性的差值尽量大。(参考下面的式子)

多维的最远曼哈顿距离。

因为对于每一种属性对答案的贡献,要么是 Xmw[i] - Xsw[i] ,要么是 Xsw[i] - Xmv[i]。

枚举每个主武器所有属性的符号,副武器的符号与主武器相反。

然后每次从主武器和副武器里面分别找一个属性值和基础分数的总和最大的,用这两个最大值的和更新答案。

因为k <= 5,所以枚举所有符号的复杂度是 2^k <= 32,总复杂度是 O(2^k * nk)。

#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
typedef long long LL;
const int maxn = + ;
const LL INF = 1e19/; int n, m, k, t;
LL a[maxn][], b[maxn][];
LL sum; int main()
{
scanf("%d", &t);
for (int ca = ; ca <= t; ca++)
{
LL ans = ;
scanf("%d%d%d", &n, &m, &k);
for (int i = ; i <= n; i++)
for (int j = ; j <= k; j++) scanf("%lld", &a[i][j]); for (int i = ; i <= m; i++)
for (int j = ; j <= k; j++) scanf("%lld", &b[i][j]); for (int s = ; s <= (<<k)-; s++)
{
LL max1 = -INF, max2 = -INF;
for (int i = ; i <= n; i++)
{
sum = a[i][];
for (int j = ; j <= k; j++)
sum += a[i][j]*(s>>(j-) & ? :-); max1 = max(max1, sum);
} for (int i = ; i <= m; i++)
{
sum = b[i][];
for (int j = ; j <= k; j++)
sum += b[i][j]*(s>>(j-) & ? -:); max2 = max(max2, sum);
} ans = max(ans, max1+max2);
} printf("%lld\n", ans);
}
}

2018 Multi-University Training Contest 10 CSGO(HDU - 6435)(最远曼哈顿距离)的更多相关文章

  1. HDU 4666 最远曼哈顿距离

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4666 关于最远曼哈顿距离的介绍: http://blog.csdn.net/taozifish/ar ...

  2. 2018 Nowcoder Multi-University Training Contest 10

    Practice Link J. Rikka with Nickname 题意: 给出\(n\)个字符串,要求依次合并两个串\(s, t\),满足将\(t\)合并到\(s\)中变成\(r\),使得\( ...

  3. hdu 5416 CRB and Tree(2015 Multi-University Training Contest 10)

    CRB and Tree                                                             Time Limit: 8000/4000 MS (J ...

  4. 2015 Multi-University Training Contest 10 hdu 5406 CRB and Apple

    CRB and Apple Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)To ...

  5. 2015 Multi-University Training Contest 10 hdu 5412 CRB and Queries

    CRB and Queries Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Other ...

  6. 2016 Multi-University Training Contest 10

    solved 7/11 2016 Multi-University Training Contest 10 题解链接 分类讨论 1001 Median(BH) 题意: 有长度为n排好序的序列,给两段子 ...

  7. [二分,multiset] 2019 Multi-University Training Contest 10 Welcome Party

    Welcome Party Time Limit: 4000/4000 MS (Java/Others)    Memory Limit: 524288/524288 K (Java/Others)T ...

  8. 2015 Multi-University Training Contest 10(9/11)

    2015 Multi-University Training Contest 10 5406 CRB and Apple 1.排序之后费用流 spfa用stack才能过 //#pragma GCC o ...

  9. hdu 4666:Hyperspace(最远曼哈顿距离 + STL使用)

    Hyperspace Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others)Tota ...

随机推荐

  1. NPOI导出EXCEL后公式无结果,公式重新计算开关

    但其实这个选项是可以控制的.在NPOI中,这个属性叫做XSSFSheet.ForceFormulaRecalculation. 打开该选项的话,代码为 sheet1.ForceFormulaRecal ...

  2. Aspose.word组件介绍

    阅读目录 1.基本介绍 2.文档对象模型概述        本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p/4288836.html 本博客其他.NET开 ...

  3. Vue.js之vue-router路由

    vue学习的一系列,全部来自于表哥---表严肃,是我遇到过的讲课最通透,英文发音最好听的老师,想一起听课就去这里吧 https://biaoyansu.com/i/hzhj1206 1概述 vue-r ...

  4. BZOJ 4896 :[Thu Summer Camp2016]补退选 Trie树+Vector

    4896: [Thu Summer Camp2016]补退选 Time Limit: 20 Sec  Memory Limit: 512 MBSubmit: 315  Solved: 97[Submi ...

  5. Logback文档(1)

    http://b6ec263c.wiz03.com/share/s/2SX2oY0nX4f32CY5ax1bapaL030VCK2svQZU2rRyDR05KMh5

  6. python解析xml实例

    如下,一个银行卡打标签后导出的数据 <?xml version="1.0" encoding="ISO-8859-1"?> <annotati ...

  7. 《实战Python网络爬虫》- 感想

    端午节假期过了,之前一直在做出行准备,后面旅游完又休息了一下,最近才恢复状态. 端午假期最后一天收到一个快递,回去打开,发现是微信抽奖中的一本书,黄永祥的<实战Python网络爬虫>. 去 ...

  8. 2004: C语言实验——数日子(数组)

    2004: C语言实验——数日子 Time Limit: 1 Sec  Memory Limit: 64 MBSubmit: 213  Solved: 111[Submit][Status][Web ...

  9. 四种UNIX实现

    四种UNIX实现:FreeBSD 5.2.1          Linux 2.4.22           mac OS X 10.3        Solaris 9 ubuntu 属于哪一种呢?

  10. java基础——冒泡排序

    最近开始准备面试,所以将Java基础复习一遍,又学习了冒泡排序 冒泡排序的基本思想是,对相邻的元素进行两两比较,顺序相反则进行交换,这样,每一趟会将最小或最大的元素“浮”到顶端,最终达到完全有序 ja ...