当前位置: 移动技术网 > IT编程>开发语言>C/C++ > BZOJ5068: 友好的生物(状压 贪心)

BZOJ5068: 友好的生物(状压 贪心)

2018年12月01日  | 移动技术网IT编程  | 我要评论

题意

题目链接

sol

又是一道神仙题??。。

把绝对值拆开之后状压前面的符号?。。

下界显然,但是上界为啥是对的呀qwq。。

#include<bits/stdc++.h>
using namespace std;
const int maxn = 1e6 + 10;
inline int read() {
    char c = getchar(); int x = 0, f = 1; 
    while(c < '0' || c > '9') {if(c == '-') f = -1; c = getchar();}
    while(c >= '0' && c <= '9') x = x * 10 + c - '0', c = getchar();
    return x * f;
}
int n, k, c[maxn], ans;
struct node {
    int v[6], vk;
    bool operator < (const node &rhs) const {
        return vk < rhs.vk;
    }
}a[maxn];
int main() {
    n = read(); k = read() - 1;
    for(int i = 0; i <= k; i++) c[i] = read();
    for(int i = 1; i <= n; i++) {
        for(int j = 0; j < k; j++) a[i].v[j] = read() * c[j]; a[i].vk = read() * c[k];
    }
    sort(a + 1, a + n + 1);
    for(int sta = 0; sta < (1 << k); sta++) {
        int mn = 1e9 + 10;
        for(int i = 1; i <= n; i++) {
            int now = 0;
            for(int j = 0; j < k; j++) 
                now += (sta >> j & 1) ? -a[i].v[j] : a[i].v[j];
            now -= a[i].vk;
            ans = max(ans, now - mn);
            mn = min(now, mn);
        }
    }
    cout << ans;
    return 0;
}
/*
5 3
1 2 3
-5 3 2
-2 3 0
0 5 9
3 4 -1
-10 -11 7
*/

如对本文有疑问, 点击进行留言回复!!

相关文章:

  • C++ 静态持续变量

    链接性:外部、内部、无 存储:固定的内存块(即整个程序执行期间存在) 创建: 外部链接性:代码块的外部声明 内部链接性:代码块的外部且用 static ... [阅读全文]
  • C++ 单定义规则

    变量只能有一次定义:定义声明(定义)、引用声明(声明) 引用声明: 关键字 extern 不初始化(否则变为定义,分配内存) 注意: 一个文件定义后,其... [阅读全文]
  • 【QT1】QT的下载

    【QT1】QT的下载

    Qt 体积很大,有 1GB~3GB,官方下载通道非常慢,相信很多读者会崩溃,所以建议大家使用国内的镜像网站(较快),或者使用迅雷下载(很快)。... [阅读全文]
  • 解密C语言编译背后的过程

    解密C语言编译背后的过程

    我们大部分程序员可能都是从C语言学起的,写过几万行、几十万行、甚至上百万行的代码,但是大家是否都清楚C语言编译的完整过程呢,如果不清楚的话,我今天就带着... [阅读全文]
  • C++ 单独编译

    用法: 可以单独编译一个文件,使它与其它文件的编译版本链接。(使大程序的管理更便捷) 程序分段: 头文件:包含结构声明和使用这些结构的函数的原型 不要放... [阅读全文]
  • C++ 存储持续性

    自动存储持续性: 在函数或代码块中声明的变量(包括函数参数)的存储持续性为自动。执行函数或代码块时自动创建,结束时释放。 静态存储持续性: 函数定义外定... [阅读全文]
  • C++ 作用域

    作用域:名称在翻译单元(包括文件)的可见范围 局部: 只在定义它的代码块中可用,如自动变量 全局(文件作用域): 从定义位置到文件结尾都可用 注意: 静... [阅读全文]
  • Prim计算最小生成树权值 C语言

    题目描述 现在,你被委托在一个广阔区域里面为某些确定的结点设计连接网络。首先,你会给定在区域里面的一系列结点,和连接这些结点的一组线路。对于每条可能使用... [阅读全文]
  • C打印楼梯,同时在楼梯上方打印两个笑脸

    C打印楼梯,同时在楼梯上方打印两个笑脸

    题目:打印楼梯,同时在楼梯上方打印两个笑脸。 程序分析:用 ASCII 1 来输出笑脸;用i控制行,j来控制列,j根据i的变化来控制输出黑方格的个数。 ... [阅读全文]
  • 算法笔记刷题6 ( PAT 1003我要通过 )

    算法笔记刷题6 ( PAT1003我要通过 ) 题目本体 “ 答案正确 ”是自动判题系统给出的最令人欢喜的回复。本题属于 PAT 的“ 答案正确 ”大派... [阅读全文]
验证码:
移动技术网