CF981D

题意:

给你n个数,要求你分成k堆。每堆的内部加和,每堆之间是相与。问最大的值。

解法:

二进制下最大的数的所有位一定是1,所以贪心去找是否最大一定是正确的。

然后DP记录+贪心就可以AC。

CODE:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm> using namespace std; #define LL long long
#define N 60 LL dp[N][N],a[N];
LL sum[N],n,k; int main() {
scanf("%lld%lld",&n,&k);
for(int i = 1 ; i <= n ; i++) {
scanf("%lld",&a[i]);
sum[i] = sum[i - 1] + a[i];
}
LL ans = 0;
for(int bit = 55 ; bit >= 0 ; bit--) {
LL num = (LL)1 << bit;
memset(dp,0,sizeof(dp));
dp[0][0] = 1;
for(int l = 1 ; l <= k ; l++) {
for(int i = 1 ; i <= n ; i++) {
for(int j = 0 ; j < i ; j++) {
if(dp[l - 1][j] && ((sum[i] - sum[j]) & num) && (((sum[i] - sum[j]) & ans) == ans))
dp[l][i] = 1;
}
}
}
if(dp[k][n]) ans += num;
}
printf("%lld \n",ans);
//system("pause");
return 0;
}

CF981D的更多相关文章

  1. 【CF981D】Bookshelves(贪心,动态规划)

    [CF981D]Bookshelves(贪心,动态规划) 题面 洛谷 Codeforces 给定一个长度为\(n\)的数列,把他们划分成\(k\)段,使得每段的和的结构按位与起来最大. 题解 从高位往 ...

  2. CF981D Bookshelves

    按位贪心+DP的好题qwq 首先看到题目的要求,统计价值的时候的操作是按位与,就要有按位分别计算的意识 开始没意识到结果想了好久还是看了题解才想到 由于统计价值的方式不是加和,所以可能会出现两个较大的 ...

  3. Codechef April Challenge 2019 游记

    Codechef April Challenge 2019 游记 Subtree Removal 题目大意: 一棵\(n(n\le10^5)\)个结点的有根树,每个结点有一个权值\(w_i(|w_i\ ...

随机推荐

  1. China Union Pay helper

    static string proxyIpAddress = AppConfig.GetProxyIpAddress; static string proxyUserName = AppConfig. ...

  2. Python集合的常用方法

    注释很详细 collection={,,"apple","orange","cat"} # 查看一个数是否在集合中 in print(&qu ...

  3. Django rest-framework框架-版本控制

    第一版: from rest_framework.versioning import BaseVersioning class ParamVersion(object): def determine_ ...

  4. PCA(主成分分析)方法浅析

    PCA(主成分分析)方法浅析 降维.数据压缩 找到数据中最重要的方向:方差最大的方向,也就是样本间差距最显著的方向 在与第一个正交的超平面上找最合适的第二个方向 PCA算法流程 上图第一步描述不正确, ...

  5. caffe prototxt分析

    测试用prototxt name: "CIFAR10_quick"layer { name: "data" type: "MemoryData&quo ...

  6. 安卓开发之ArrayAdapter使用

    package com.lidaochen.test; import android.support.v7.app.AppCompatActivity; import android.os.Bundl ...

  7. github 提交和更新代码

    …or create a new repository on the command line   echo "# flutterPluginsWorks" >> RE ...

  8. MySQL间隙锁问题

    间隙锁(Gap Lock):锁加在不存在的空闲空间,可以是两个索引记录之间,也可能是第一个索引记录之前或最后一个索引之后的空间. 最近用户反馈说系统老是出现insert时,等待超时了,最后发现是ins ...

  9. RabbitMQ的特点与应用场景(二)

      1.RabbitMQ的主要特点 (1)可靠性:RabbitMQ可通过队列持久化,交换机持久化,消息持久化及ACK回应等机制保证可靠性 (2)支持多种语言与协议:RabbitMQ几乎支持所有的编程语 ...

  10. 用window.showModalDialog()打开的页面Request.UrlReferrer为null

    今天在解决一个问题,怎么也找不到解决方案.我的一个窗体是IE通过window.showModalDialog()打开的,但为了防止用户手工输的地址,所以我需要判断是通过别的页面调整获得,用Reques ...