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. 就是普通的斜率优化因为有两 ...
随机推荐
- CentOS7.2 安装nginx-1.10.3
nginx-1.10.3 下载nginx 检查是否安装了依赖库: [root@localhost ~]# rpm -q gcc gcc-4.8.5-11.el7.x86_64 [root@localh ...
- NOIP 2018 兔纸旅游记
今年是第一次参加tg呢... Day0 早上出发去中旅坐大巴,走有 lz 特色的OI比赛道路. 车上谈笑风生,看 jw 的 GDOI 的小本本. 到动车站取票入站,看 lmh 和 zn 的爱恨情 ...
- MyBatis使用小案例
首先回顾一下MyBatis封装简化Dao层连接数据库操作的顺序. 首先MyBatis是一个引入的jar包,还有一些依赖包,可能用不到的jar包,一并引入就好了,再多引入一个Juntil.jar测试包( ...
- H5 canvas建造敌人坦克
接着上一篇(http://www.cnblogs.com/zhouhuan/p/H5_tankgame3.html),这一篇建造敌人的坦克. 思路是,基于可扩展性和性能等方面的考虑,用构造函数改造 ...
- Rails Guide -- Ruby on Rake(未详细阅读)
一个软件task管理和build 自动化的工具. 它允许用户指定tasks和describe dependencies, 也可以在一个namespace中group tasks. 使用Ruby语言写的 ...
- idea配置echache.xml报错Cannot resolve file 'ehcache.xsd'
解决方法: 打开settings->languages&frameworks->schemas and dtds ,添加地址 http://ehcache.org/ehcache. ...
- Javascript设计模式笔记
Javascript是越来越厉害了,一统前后端开发.于是最近把设计模式又看了一遍,顺便做了个笔记,以方便自己和他人共同学习. 笔记连载详见:http://www.meteorcn.net/wordpr ...
- Spring MVC中使用Swagger生成API文档和完整项目示例Demo,swagger-server-api(二十)
一:Swagger介绍 Swagger是当前最好用的Restful API文档生成的开源项目,通过swagger-spring项目 实现了与SpingMVC框架的无缝集成功能,方便生成spring r ...
- BZOJ1555 KD之死
如果没有必选的限制条件,就是水题了... 只要按照w + t排序就可以了,然后搞个堆来维护 于是有了限制条件,还是水题... 到了必选的时候强制选上,不加入堆中即可. /*************** ...
- 007——php字符串中的处理函数(六)
<?php /** * 一.addslashes() 在预定义字符串前添加反斜杠 * * stripslashes() 把转义字符串前的反斜杠删除 * get_magic_quotes_gpc ...