[TC14860]SquadConstructor2
[TC14860]SquadConstructor2
题目大意:
有\(n(n<2^m,m\le8)\)个互不相等的数\(v_i\)。从中选取\(k(k\le8)\)个数\(b_i\),求\(\sum_{i=0}^m(\sum_{j=1}^k[b_j\wedge 2^i=2^i])^2\)的最大值。
思路:
一个显然的动态规划\(f[i][s]\)表示选择了\(i\)个数,是否能使得状态为\(s\)。其中状态\(s\)表示\(0\sim m-1\)中每一个二进制位出现次数。显然可以做到\(\mathcal O(n\cdot k\cdot9^m)\)。使用bitset优化,做到\(\mathcal O(\frac{n\cdot k\cdot9^m}\omega)\)。
源代码:
#include<vector>
#include<bitset>
constexpr int M=8,N=1<<M,K=9;
constexpr int pwr[]={1,9,81,729,6561,59049,531441,4782969,43046721};
class SquadConstructor2 {
private:
int b[N];
std::bitset<pwr[M]> f[K];
int sqr(const int &x) const {
return x*x;
}
public:
int teamget(const int &m,const int &k,std::vector<int> v) {
const int n=v.size();
for(register int i=0;i<n;i++) {
for(register int j=0;j<m;j++) {
if(v[i]&(1<<j)) b[i]+=pwr[j];
}
}
f[0][0]=1;
for(register int i=0;i<n;i++) {
for(register int j=k;j;j--) {
f[j]|=f[j-1]<<b[i];
}
}
int ans=0;
for(register int s=0;s<pwr[m];s++) {
if(!f[k][s]) continue;
int tmp=0;
for(register int i=0;i<m;i++) {
tmp+=sqr(s/pwr[i]%9);
}
ans=std::max(ans,tmp);
}
return ans;
}
};
[TC14860]SquadConstructor2的更多相关文章
随机推荐
- 网页实现插入图片—css与html的区别
Q1.二者有何区别?A1.写在css里面的图片是以背景图形式存在的,而写在html里的是以<img>标签形式存在的,在网页加载的过程中,以css背景图存在的图片会等到结构加载完成(网页的内 ...
- 抓其根本(一)(hdu2710 Max Factor 素数 最大公约数 最小公倍数.....)
素数判断: 一.根据素数定义,该数除了1和它本身以外不再有其他的因数. 详见代码. int prime() { ; i*i<=n; i++) { ) //不是素数 ; //返回1 } ; //是 ...
- spring boot 注解说明
Starters 可以创建自己的Starter,但名字格式不能是 spring-boot-starter-*,而是 *-spring-boot-starter.类似Maven插件的规则. 自动配置 ...
- Perl6 Bailador框架(8):自定义400/500
第一种方法, 直接写在源码中: use Bailador; get '/' => sub { '<h1>hello, Bailador</h1>'; } get '/te ...
- perl6 修改文件并覆盖
use v6; my $filename = 'data.txt'; my $data = slurp $filename; say $data; $data ~~ s/'4'/'ABC'/; say ...
- 【bzoj4033】HAOI2015树上染色
树形dp. #include<bits/stdc++.h> #define N 2010 using namespace std; typedef long long ll; ,head[ ...
- C json实战引擎 一 , 实现解析部分
引言 以前可能是去年的去年,写了一个 c json 解析引擎用于一个统计实验数据项目开发中. 基本上能用. 去年在网上 看见了好多开源的c json引擎 .对其中一个比较标准的 cJSON 引擎 深入 ...
- Python的web服务器
1.浏览器请求动态页面过程 2.WSGI Python Web Server Gateway Interface (或简称 WSGI,读作“wizgy”). WSGI允许开发者将选择web框架和web ...
- python--数据持久化
python中与数据持久化有关的模块有很多,像pickle.json之类的就不介绍了,这里介绍两个其他的模块:dbm和shelve 1.dbm ''' 在一些小型程序中,不需要关系型数据库时,可以方便 ...
- BestCoder Round #85 前三题题解
sum Accepts: 822 Submissions: 1744 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/13107 ...