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. Scala学习二十二——定界延续

    一.本章要点 延续让你可以回到程序执行当中之前的某个点; 可以在shift块中捕获延续 延续函数一直延展到包含它的reset块的尾部 延续所谓的”余下的运算“,从包含shift的表达式开始,到包含它的 ...

  2. Tag Helper1

    Tag Helpers是服务器段的C#代码,在Razor文件里,参与到创建和渲染HTML元素的过程 和HTML Helpers类似 跟HTML的命名规范一致 内置了很多Tag Helpers也可以自定 ...

  3. MongoDB查询操作 返回指定字段(C#官方驱动)

    首先,MongoDB中返回指定的字段的查询方法如下: db.person.find({Name:"小丑"},{Age:1,Sex:1}) 该语句表示:查询person表中name为 ...

  4. C#UDP异步通信

    using SetingDemo.LogHelp;using SetingDemo.SingleRowDeclare;using System;using System.Collections.Gen ...

  5. Vue Elementui中的Tag与页面其它元素相互交互

    参考:https://www.jb51.net/article/147917.htm 思路 一.多选框勾选,出现对应的tag: 1.利用watch监听多选框绑定的值A(数组)的变化:2.根据A的变化, ...

  6. C语言memset函数详解

    C语言memset函数详解 memset() 的作用:在一段内存块中填充某个给定的值,通常用于数组初始化与数组清零. 它是直接操作内存空间,mem即“内存”(memory)的意思.该函数的原型为: # ...

  7. ASE19团队项目alpha阶段model组 scrum4 记录

    本次会议于11月6日,19时整在微软北京西二号楼sky garden召开,持续50分钟. 与会人员:Jiyan He, Kun Yan, Lei Chai, Linfeng Qi, Xueqing W ...

  8. DbHelper简单的使用

    using System; using System.Windows.Forms; using System.Data.SqlClient; namespace WindowsFormsApp3 { ...

  9. STM32唯一ID(Unique Device ID)的读取方法

    每一个STM32微控制器都自带一个96位的唯一ID,也就是Unique Device ID或称为UID,这个唯一ID在任何情况下都是唯一的且不允许修改.    在开发过程中,可能需要用到这个UID,比 ...

  10. 5.caffe:train.sh 和 test.sh (训练与测试 )

    一,train.sh #!/usr/bin/env sh ./build/tools/caffe train --solver=myself/00b/solver.prototxt # cd CAFF ...