博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【bzoj1082】栅栏[SCOI2005]
阅读量:4454 次
发布时间:2019-06-07

本文共 834 字,大约阅读时间需要 2 分钟。

显然我们取的肯定是前ans块木板。然后砍的木材也应该是从小到大砍(如果小的木材可以满足条件,就一定不会去动大的木材)

所以两遍排序。

二分答案。

然后对于要取的每块木板,我们搜索它是在第x块木板上砍下来的。。

要加剪枝:

①如果砍下了这块木材然后这块木材小于第一块木板,那就失去价值,用t来记录。当t>tot-s[now],(tot是记录的所有给的木板长度),那么退出。

②如果b[now]==b[now-1]那么从当前点开始枚举就可以了,因为前面小的点都被跳过了

 

#include
#include
#include
#include
#include
#include
using namespace std; #define N 60#define M 1010 int n,m;int tot,mid;int t; int a[N],b[M],c[N];int s[M]; bool DFS(int now,int d){ if (!now) return true; if (t>tot-s[mid]) return false; for (int i=d;i<=m;i++) if (c[i]>=b[now]) { c[i]-=b[now]; if (c[i]
tot) n--; int l=0,r=n; while (l
>1; if (work(mid+1)) l=mid+1; else r=mid; } printf("%d\n",l); return 0;}

  

转载于:https://www.cnblogs.com/yangjiyuan/p/5320956.html

你可能感兴趣的文章
wpf鼠标捕获与控件交互——UIElement.CaptureMouse
查看>>
bugku 图穷匕见
查看>>
WOJ 46 完全背包
查看>>
spring框架学习笔记(十)
查看>>
排球计分程序(现场记分员)
查看>>
流媒体技术笔记(视频编码相关)
查看>>
神马16核的服务器你让我单线程跑ffmpeg
查看>>
block,inline,inline-block的区别
查看>>
html表单
查看>>
const关键字——读《嵌入式c语言进阶之道》整理
查看>>
libevent入门(1)
查看>>
CSS 样式显示为小手
查看>>
关联模型错误的蛋疼错误提示
查看>>
JS当心隐式的强制转换
查看>>
通过ros节点发布Twist Messages控制机器人--10
查看>>
STL--list
查看>>
maven 学习之路之二(1)
查看>>
爬虫第二课:解析网页中的元素
查看>>
域名注册必须实名认证 《互联网域名管理办法》11月1日实施
查看>>
Convert a byte[] array to readable string format. This makes the "hex" readable!
查看>>