切割木板 (贪心)
木板长为:21
输入:
N=3
L={8,5,8}
输出:
34
由于木板的切割顺序不确定,自由度很高.首先,切割的方法可以参见二叉树,每一个叶子节点就对应了切割出的一块块木板.叶子节点的深度就对应了为了得到对应木板所需的切割次数,开销的合计就是个叶子节点的
木板的长度*节点的深度
的总和.
最短的板与次短板的节点应当是兄弟节点
1 typedef long long ll; 2 3 int N,L[MAX]; 4 5 void solve() 6 { 7 ll ans=0; 8 //直到计算到木板为1块时为止 9 while(N>1){ 10 int mii1=0,mii2=1; 11 if(L[mii1]>L[mii2]) swap(mii1,mii2); 12 13 for(int i=2; i<N; i++){ 14 if(L[i]<L[mii1]){ 15 mii2=mii1; 16 mii1=i; 17 } 18 else if(L[i]<Lmii2){ 19 mii2=i; 20 } 21 } 22 //将两块板拼合 23 int t=L[mii1]+L[mii2]; 24 ans+=t; 25 26 if(mii1 == N-1) swap(mii1.mii2); 27 L[mii1]=t; 28 L[mii2]=L[N-1]; 29 N--; 30 } 31 printf("%d\n"ans); 32 }
<<挑战程序设计竞赛>>读后感
转载于:https://www.cnblogs.com/wangmengmeng/p/5226765.html
切割木板 (贪心)相关推荐
- 1724: [Usaco2006 Nov]Fence Repair 切割木板( 贪心 )
倒过来看 , 每次总是选择最短的两块木板合并 , 用heap维护 ------------------------------------------------------------------- ...
- poj3253切割木板(哈夫曼树) 贪心【优先队列】
Fence Repair Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 37272 Accepted: 12078 De ...
- [BZOJ1724][Usaco2006 Nov]Fence Repair 切割木板
1724: [Usaco2006 Nov]Fence Repair 切割木板 Time Limit: 5 Sec Memory Limit: 64 MB Submit: 1272 Solved: ...
- BZOJ 1724: [Usaco2006 Nov]Fence Repair 切割木板
题目 1724: [Usaco2006 Nov]Fence Repair 切割木板 Time Limit: 5 Sec Memory Limit: 64 MB Description Farmer ...
- [Usaco2006 Nov] Fence Repair 切割木板
Time Limit: 5 Sec Memory Limit: 64 MB Submit: 1356 Solved: 714 [Submit][Status][Discuss] Descripti ...
- bzoj1724[Usaco2006 Nov]Fence Repair 切割木板*
bzoj1724[Usaco2006 Nov]Fence Repair 切割木板 题意: FJ需要n块木板,第i块木板长度为ai.但他只有一块长度为sigma(i,1,n)ai的木板.每切一次的代价为 ...
- bzoj1724【Usaco2006 Nov】Fence Repair 切割木板
1724: [Usaco2006 Nov]Fence Repair 切割木板 Time Limit: 5 Sec Memory Limit: 64 MB Submit: 920 Solved: 4 ...
- poj3253求切割木板开销最少是多少, 赫夫曼编码
/* poj3252: 农夫为修理栅栏,要将一块很长的木板切成N块,准备切成的木板的长度为L1,L2,L3--Ln.未切割木板之前的长度正好是是要切割的总长度. 每次切断木板时,需要的开销为这块木板的 ...
- 木板切割问题——贪心
一.问题引入 农夫约翰为了修理栅栏,要将一块很长的木块切成N块.准备切成的长度分别是L1.L2...,LN,未切割前的木板长度切好为切割后木板长度的总和.每次切断木板时的开销是这块木板的长度.(1 ≤ ...
最新文章
- python 密度 语音_Python+sklearn机器学习应该了解的33个基本概念
- Druid:一个用于大数据实时处理的开源分布式系统——大数据实时查询和分析的高容错、高性能开源分布式系统...
- Data Guard搭建困境突围(一)
- c语言for循环加法,BigDecimal 在for循环中相加注意事项
- 使用Github搜索开源项目
- MySQL创建用户(CREATE USER)
- 全球及中国矿棉板行业运营能力状况与十四五规模预测报告2022年
- MacOS中安装OpenCV
- 惊人体积,无码改造,黑月V1.7.4增强版[20110810]
- 单身的原因终于找到了!原来是这几个......
- 摘抄自知乎的redis相关
- 阿里Java面试答案【283页PDF文档免费领】
- Openresty 与 Tengine
- vue 插值表达式,v-cloak,v-text,v-html,以及v-bind,v-on
- VirtualBox安装教程(Win10)含软件安装包
- 关于redis (error) CLUSTERDOWN Hash slot not served
- 电视剧《大秦赋》最近很火!于是我用Python抓取了“相关数据”,发现了这些秘密.........
- JavaWeb宿舍管理系统环境搭建运行教程
- 物联网竞赛-LoRa和NB-IOT模块学习知识汇总
- 在 win7 上简单搭建ftp服务器
热门文章
- (六)Python查询12306余票:升级版-----图形化界面代码
- ubuntu快捷复制粘贴
- docker build 时出现no space left on device解决方法
- html5 刮刮乐 源码,HTML5 canvas实现刮刮乐功能
- net stop mysql 服务名无效
- NatureProtocols:使用MicrobiomeAnalyst统计和功能分析微生物组数据
- 统信UOS提示系统磁盘空间不足,磁盘扩容
- OpenCV-Python (官方)中文教程(部分三)
- 【leetcode】 剑指 Offer学习计划(java版本含注释)(上)
- 网络爬虫,淘宝API商品详情测试(抓取详情数据)