题目大意:给定$n$个$A$类元素和$m$个$B$类元素,每类元素有值$S$和$k$个值$x_0,x_1,\dots,x_{k-1}(k\leqslant 5)$。

要求选出一个$A$类元素$a$和$B$类元素$b$,最大化$a.S+b.S+\sum\limits_{i=0}^{k-1}|a.x_i-b.x_i|$。

题解:发现$k\leqslant 5$,可以搞事情,$|a-b|=max(a-b,b-a)$,枚举每个元素的$x_i$是正是负,对每个一个状态求出在$A$和$B$中的最大值,取最大值就行了

卡点:

C++ Code:

#include <cstdio>
#include <cstring>
#define maxn 100010
const long long inf = 0x3f3f3f3f3f3f3f3f;
int Tim;
int n, m, K, U;
long long MW[1 << 5 | 3], SW[1 << 5 | 3], x[10];
long long ans;
inline long long max(long long a, long long b) {return a > b ? a : b;}
void read(int n, long long *W) {
long long tmp;
for (int i = 1; i <= n; i++) {
scanf("%lld", &tmp);
for (int j = 0; j < K; j++) scanf("%lld", x + j);
for (int j = 0; j < U; j++) {
long long tmp6 = tmp;
for (int k = 0; k < K; k++) tmp6 += (j & (1 << k)) ? x[k] : -x[k];
W[j] = max(W[j], tmp6);
}
}
}
int main() {
scanf("%d", &Tim);
while (Tim --> 0) {
scanf("%d%d%d", &n, &m, &K); ans = -inf;
U = 1 << K;
for (int i = 0; i < U; i++) MW[i] = SW[i] = -inf;
read(n, MW);
read(m, SW);
for (int i = 0; i < U; i++) {
ans = max(ans, MW[i] + SW[(U - 1) ^ i]);
}
printf("%lld\n", ans);
}
return 0;
}

[hdu6435]Problem J. CSGO的更多相关文章

  1. hdu6435 Problem J. CSGO标程讲解以及改正标程的一个错误(本来第一个样例过不了2333) 以及 poj2926 五维曼哈顿距离模板

    比赛的时候抄poj2926的模板,但改不来啊orz #include <iostream> #include <cstdio> #include <cstring> ...

  2. HDU - 6435 Problem J. CSGO 2018 Multi-University Training Contest 10 (二进制枚举+思维)

    题意:有N个主武器(MW)和M个副武器(SW),每个武器都有自己的S值,和K个附加属性xi.要选取一对主副武器搭配,搭配后获得的性能由该公式得出: 求获得最大的性能为多少. 分析:由于|xm - xs ...

  3. HDU - 6435 Problem J. CSGO (曼哈顿距离变换)

    题目大意:有两类武器(主武器和副武器),每类有若干把,每把武器都有一个基础属性S,以及k个附加属性,让你选一把主武器M和一把副武器S,使得最大. 显然后面的和式是一个k维的曼哈顿距离,带绝对值符号不好 ...

  4. 实验12:Problem J: 动物爱好者

    #define null ""是用来将字符串清空的 #define none -1是用来当不存在这种动物时,返回-1. 其实这种做法有点多余,不过好理解一些. Home Web B ...

  5. Codeforces Gym 100342J Problem J. Triatrip 求三元环的数量 bitset

    Problem J. Triatrip Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100342/at ...

  6. The Ninth Hunan Collegiate Programming Contest (2013) Problem J

    Problem J Joking with Fermat's Last Theorem Fermat's Last Theorem: no three positive integers a, b, ...

  7. Codeforces Gym 100342J Problem J. Triatrip bitset 求三元环的数量

    Problem J. TriatripTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100342/att ...

  8. Problem J: 求个最大值

    Problem J: 求个最大值 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 871  Solved: 663[Submit][Status][Web ...

  9. Problem J. Journey with Pigs

    Problem J. Journey with Pigshttp://codeforces.com/gym/241680/problem/J考察排序不等式算出来单位重量在每个村庄的收益,然后生序排列猪 ...

随机推荐

  1. 虚拟dom和真实dom的转化和class解析的顺序

    昨天出去溜了一圈,被问到几个问题回来整理了一下,当被特意问到一看感觉就会的问题,千万要不要急于回答,先想想,因为这往往是一个被忽略的坑(例如class解析顺序)!!! 1.写出虚拟dom和真实dom之 ...

  2. 基于asp.net MVC 的服务器和客户端的交互(一)

    架构思想 三层架构 提出了一种基于ASP.NET开发方式的三层架构的Web应用系统构造思想.其基本内容是:将面向对象的UML建模与Web应用系统开发 相结合,将整个系统分成适合ASP.NET开发方式的 ...

  3. spring-bean(xml方式管理)

    特点 每一次加载XML文件时候,都会将配置文件中包含的配置实例化. ID与name区别:name不是唯一的,但是可以使用特殊字符 Class:生成类的实例 Bean的作用域: 三种实例化方式 类的构造 ...

  4. hasOwnProperty自我理解

    暂时不考虑ES6中symbol,hasOwnProperty()方法返回的是一个对象上是否包含一个指定属性,如果含有则返回true,如果没有则返回false.   和 in 运算符不同,该方法会忽略掉 ...

  5. zip压缩工具,unzip解压缩工具

    zip压缩工具,unzip解压缩工具=================== [root@aminglinux tmp]# yum install -y zip[root@aminglinux tmp] ...

  6. 基本数据类型补充,set集合,深浅拷贝等

    1.join:将字符串,列表,用指定的字符连接,也可以用空去连接,这样就可以把列表变成str ll = ["wang","jian","wei&quo ...

  7. Python__for循环和列表生成式的区别

    话不多,上例子 >>> L = [,,] >>> for i in range(len(L)): L[i] = L[i] + L[i-] print(L) #结果 ...

  8. MySQL查询优化 对not in 、in 的优化

    因为 not in不走索引,所以不在不得已情况下,就不要使用not in 下面使用 join 来替代not in 做查询 select ID from A where ID not in (selec ...

  9. python学习之循环语句

    编程语言中的循环语句,以循环判断达式是否成立为条件,若表达式成立则循环执行该表达式,若不成立则跳出当前执行执行语句且继续执行其后代码. 如下图所示. Python中提供以下循环方式 循环类型 描述 w ...

  10. sigaction函数

    sigaction函数是设置信号处理的接口.比signal函数更健壮 #include <signal.h> int sigaction(int signum, const struct ...