bzoj 3965: [WF2011]Pyramids
Description
#include<cstdio>
#include<algorithm>
#include<bitset>
int s1[],s2[];
struct item{
int v,a,t;
bool operator<(item x)const{return v!=x.v?v<x.v:t<x.t;}
}is[],ps[],ps1[];
std::bitset<>f[];
int ip=,pp,mf[];
void dfs(int n,int w,int t){
if(t+mf[n]>=pp)return;
if(!n){
pp=t;
for(int i=;i<t;++i)ps[i]=ps1[i];
}
if(!w)return;
if(n>=is[w].v&&f[w-].test(n-is[w].v))ps1[t]=is[w],dfs(n-is[w].v,w-,t+);
dfs(n,w-,t);
}
int main(){
s1[]=s2[]=;
for(int i=;i<=;++i){
s1[i]=s1[i-]+i*i;
s2[i]=s2[i-]+i*i;
}
for(int i=;s1[i]<=;++i)is[++ip]=(item){s1[i],i,};
for(int i=;s2[i]<=;++i)is[++ip]=(item){s2[i],i,};
std::sort(is+,is+ip+);
f[].set();
for(int i=;i<=ip;++i)f[i]=f[i-]|f[i-]<<is[i].v;
for(int i=;i<=ip;++i){
int x=is[i].v;
if(!mf[x])mf[x]=;
}
for(int i=;i<=ip;++i){
for(int j=i+;j<=ip;++j){
int x=is[i].v+is[j].v;
if(x<=&&!mf[x])mf[x]=;
}
}
for(int i=;i<=ip;++i){
for(int j=i+;j<=ip;++j){
for(int k=j+;k<=ip;++k){
int x=is[i].v+is[j].v+is[k].v;
if(x<=&&!mf[x])mf[x]=;
}
}
}
for(int i=;i<=;++i)if(!mf[i])mf[i]=;
for(int _t=,n;;++_t){
if(scanf("%d",&n)!=||!n)return ;
if(!f[ip].test(n))printf("Case %d: impossible\n",_t);
else{
printf("Case %d:",_t);
pp=;
dfs(n,ip,);
for(int i=;i<pp;++i)printf(" %d%c",ps[i].a,"LH"[ps[i].t]);
puts("");
}
}
}
bzoj 3965: [WF2011]Pyramids的更多相关文章
- HDU 3824/ BZOJ 3963 [WF2011]MachineWorks (斜率优化DP+CDQ分治维护凸包)
题面 BZOJ传送门(中文题面但是权限题) HDU传送门(英文题面) 分析 定义f[i]f[i]f[i]表示在iii时间(离散化之后)卖出手上的机器的最大收益.转移方程式比较好写f[i]=max{f[ ...
- BZOJ 3963: [WF2011]MachineWorks [CDQ分治 斜率优化DP]
传送门 当然了WF的题uva hdu上也有 你的公司获得了一个厂房N天的使用权和一笔启动资金,你打算在这N天里租借机器进行生产来获得收益.可以租借的机器有M台.每台机器有四个参数D,P,R,G.你可以 ...
- ●BZOJ 3963 [WF2011]MachineWorks
题链: http://www.lydsy.com/JudgeOnline/problem.php?id=3963 题解: 斜率优化DP,CDQ分治. 先按时间排序.(规定以下内容的第i台机器的卖出时间 ...
- bzoj 3961: [WF2011]Chips Challenge【最小费用最大流】
参考:https://blog.csdn.net/Quack_quack/article/details/50554032 神建图系列 首先把问题转为全填上,最少扣下来几个能符合条件 先考虑第2个条件 ...
- BZOJ 3963: [WF2011]MachineWorks 斜率优化 + splay动态维护凸包
Description 你是任意性复杂机器公司(Arbitrarily Complex Machines, ACM)的经理,公司使用更加先进的机械设备生产先进的机器.原来的那一台生产机器已经坏了,所以 ...
- bzoj AC倒序
Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...
- 【BZOJ 3958】 3958: [WF2011]Mummy Madness (二分+扫描线、线段树)
3958: [WF2011]Mummy Madness Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 96 Solved: 41 Descripti ...
- 【BZOJ 2673】[Wf2011]Chips Challenge
题目大意: 传送门 $n*n$的棋盘,有一些位置可以放棋子,有一些已经放了棋子,有一些什么都没有,也不能放,要求放置以后满足:第i行和第i列的棋子数相同,同时每行的棋子数占总数比例小于$\frac{A ...
- BZOJ 3963 HDU3842 [WF2011]MachineWorks cdq分治 斜率优化 dp
http://acm.hdu.edu.cn/showproblem.php?pid=3842 写的check函数里写的<但是应该是<=,调了一下午,我是个zz. 就是普通的斜率优化因为有两 ...
随机推荐
- 树上启发式合并(dsu on tree)学习笔记
有丶难,学到自闭 参考的文章: zcysky:[学习笔记]dsu on tree Arpa:[Tutorial] Sack (dsu on tree) 先康一康模板题吧:CF 600E($Lomsat ...
- UVa 557 汉堡
https://vjudge.net/problem/UVA-557 题意: 有n个牛肉堡和n个鸡肉堡给2n个孩子吃.每个孩子在吃之前都要抛硬币,正面吃牛肉堡,反面吃鸡肉堡.如果剩下的所有汉堡都一样, ...
- C#中json字符串的序列化和反序列化
改文章转自:https://www.cnblogs.com/shang201215019/p/7907655.html 什么是 Json ? Json[javascript对象表示方法] ...
- redhat7下mysql5.7.12重启电脑后起不来问题
环境介绍: 64位reahat7 mysql5.7.12 初次安装后mysql运行是正常的,重启操作系统后检查mysql运行状态如下: [root@localhost ~]# systemctl st ...
- React中使用UEditor
一般UEditor用于表单的新建和编辑 <FormItem {...formItemLayout} label='商品详情'> {getFieldDecorator('detail', { ...
- 51nod1347思维
1347 旋转字符串 基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题 收藏 关注 S[0...n-1]是一个长度为n的字符串,定义旋转函数Left(S)=S[1… ...
- HDU 2577 分情况多维DP
How to Type Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- UVA-820 Internet Bandwidth (最大流)
题目大意:单源单汇无向网络求最大流. 题目分析:入门级别的题.但是ISAP在这儿好像不大好使?... 代码如下: # include<iostream> # include<cstd ...
- 直方图及low_value、high_value
直方图 Histogram是一种特殊的列统计信息,详细描述了目标列的数据分布情况.存储在数据字典基表 histogram$; 专门为了准确评估分布不均匀的目标列的可选择率.结果集的cardianlit ...
- IOS-网络(数据安全:MD5加密)
// // ViewController.m // IOS_0129_HTTP请求 // // Created by ma c on 16/1/29. // Copyright © 2016年 博文科 ...