CF981D Bookshelves】的更多相关文章

按位贪心+DP的好题qwq 首先看到题目的要求,统计价值的时候的操作是按位与,就要有按位分别计算的意识 开始没意识到结果想了好久还是看了题解才想到 由于统计价值的方式不是加和,所以可能会出现两个较大的值AND起来更小甚至变成0,所以不能直接DP 考虑按位贪心 显然高位为1后的值一定比高位不为1的值要大,所以从高位向下贪心,每次检查能否在使前i个位值不变的情况下,使新加入的位变为1 检查的时候用区间dp实现即可 设\(dp[i][j]\)表示前j本书分到前i个书架上是否能使前面的位不变且当前检查的…
[CF981D]Bookshelves(贪心,动态规划) 题面 洛谷 Codeforces 给定一个长度为\(n\)的数列,把他们划分成\(k\)段,使得每段的和的结构按位与起来最大. 题解 从高位往低位贪心,然后暴力\(dp\)就行了吧... #include<iostream> #include<cstdio> using namespace std; #define MAX 55 #define ll long long inline ll read() { ll x=0;b…
Codeforces Avito Code Challenge 2018 D. Bookshelves 题目连接: http://codeforces.com/contest/981/problem/D Description Mr Keks is a typical white-collar in Byteland. He has a bookshelf in his office with some books on it, each book has an integer positive…
CF981D 题意: 给你n个数,要求你分成k堆.每堆的内部加和,每堆之间是相与.问最大的值. 解法: 二进制下最大的数的所有位一定是1,所以贪心去找是否最大一定是正确的. 然后DP记录+贪心就可以AC. CODE: #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; #define LL long long #defin…
Codeforces 981 D.Bookshelves 题目大意: 给n个数,将这n个数分为k段,(n,k<=50)分别对每一段求和,再将每个求和的结果做与运算(&).求最终结果的最大值. 思路: 将答案ans二进制表示,按位枚举,从最高位i开始,检查ans|(1<<i)是否能够得到,如果能,则ans|=1<<i,向低位继续枚举:不能,就直接继续向低位枚举. 检查 ans|(1<<i)能否得到:每次用DP的方式寻找,dp[i][j]表示将前i个数分为j段…
题目链接:http://codeforces.com/contest/981/problem/D 题目大意:给你n本书以及每本书的价值,现在让你把n本书放到k个书架上(只有连续的几本书可以放到一个书架上),每个书架的价值值是书架上每本书的价值和,总的价值每个书架权值按位与的结果,要求输出最大的总价值.解题思路:按位从高到低枚举,每次都判断一下是否符合条件(即判断ans|(1<<i)是否能够取到),如果符合则更新答案.判断过程:设dp[i][j]表示将1~i分为j段是否符合条件,然后枚举区间,状…
Discription Mr Keks is a typical white-collar in Byteland. He has a bookshelf in his office with some books on it, each book has an integer positive price. Mr Keks defines the value of a shelf as the sum of books prices on it. Miraculously, Mr Keks w…
js移动导航对应,您可以使用自适应时屏幕,当小画面在一定程度上的网站.使导航出现,The navigation effects such as the following figures:多级导航! 基本的设计思路是:在菜单中往往会有非常多内容或者有多个层次的子菜单.为了更加简洁和节省空间,在这个下拉菜单中将每一个子菜单都隐藏在一个主导航button下方,当点击的时候通过细微的动画显示出来:当再次点击层级菜单时,能够再次以不同形式的动画展示下一级菜单.由于此菜单是流体布局的.所以能够非常easy…
The silver-gold triathlon bike was sitting in Kris's dining room next to the door. It had no kickstand,so he had wedged the front tire in between two bookshelves so that the bike would stand upright. Both tires were flat. Dust covered the bike. Howev…
Codechef April Challenge 2019 游记 Subtree Removal 题目大意: 一棵\(n(n\le10^5)\)个结点的有根树,每个结点有一个权值\(w_i(|w_i\le10^9|)\).你可以进行若干次(包括\(0\)次)操作,每次你可以选择一个连通块,将其删去.若你的操作次数为\(k\),则总收益为剩下结点权值之和\(-X\cdot k\).求最大总收益. 思路: 树形DP,\(f_x\)表示以\(x\)为根的子树的最大总收益.转移时\(f_x=w_x+\s…