代码源每日一题div1 DP 数组划分
创始人
2024-03-01 20:14:07
0

数组划分 - 题目 - Daimayuan Online Judge

题意:

思路:

关于位运算的最大值,只需要按位去贪心即可,即从高位向低位贪心,答案一定是1111000的形式

那么我们去枚举这个1和0的分界线在哪就好了

对于一个确定好的分界线,去check一下这个答案是否能够满足条件

本来考虑在check里面进行贪心,但是贪心未遂,因此可以在check里面dp

状态设计:dp[i][j],表示前i个数,划分了j段的每段和的与的最大值

确定好状态含义后,我们去枚举上一个状态

首先去枚举第j段的长度,第j段长度确定后,如果第j段满足条件(即第j段的和比答案大),就去枚举上一段(第j-1段)的长度,取上一个状态的最大值就行(最优子结构)

Code:

#include 
using namespace std;
#define low(x) (x&-x)
#define mnf 0x3f3f3f3f
#define inf 0xc0c0c0c0
#define rep(i,x,y) for(int i=x;i<=y;i++)
#define pre(i,x,y) for(int i=x;i>=y;i--)
#define int long long
const int mxn=1e2+10,mxv=1e6+10;
int n,k,ans=0;
int a[mxn],dp[mxn][mxn],pre[mxn];
bool check(int x){//cout<>n>>k;rep(i,1,n) cin>>a[i];rep(i,1,n) pre[i]=pre[i-1]+a[i];pre(i,60,0){ans|=(1ll<>T;while(T--)solve();return 0;
}

 总结:

关于的位运算贪心,一般考虑按位贪心

如果在check函数里面不能贪心,就去考虑dp

考虑状态转移时,可以考虑枚举决策,或者直接枚举上一个状态

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
苏州离哪个飞机场近(苏州离哪个... 本篇文章极速百科小编给大家谈谈苏州离哪个飞机场近,以及苏州离哪个飞机场近点对应的知识点,希望对各位有...
客厅放八骏马摆件可以吗(家里摆... 今天给各位分享客厅放八骏马摆件可以吗的知识,其中也会对家里摆八骏马摆件好吗进行解释,如果能碰巧解决你...