木材加工
来源:互联网 发布:淘宝女中年上衣运动单 编辑:程序博客网 时间:2024/04/23 16:24
题目
二分的思想 好像也没体现出动归。。。
#include <iostream>#include <cstdio>using namespace std;int wood[10001];int total = 0;int main(){// freopen("in2.txt","r",stdin);// freopen("outMy.txt","w",stdout); int N,K; scanf("%d%d",&N,&K); for(int i = 0; i < N; ++i) { scanf("%d",&wood[i]); total += wood[i];//把木头合成一个长木头来看 } if( K > total)//首先判断K,N是不是合理的数 这里N是可以大于K的。。。因为是要切割成长度相等的K段 { printf("0\n"); return 0; } else if(K == total)//这种情况 只能1cm来切了 直接输出 不用计算 { printf("1\n"); return 0; } else { int left = 1, right = total / K; //开始切木头 二分的思想 又端点最大为 total / K while(true) { if(right -left <= 1) { right = (left + right) / 2;//right 和left 只相差1的时候 一直按这个mid值在切木头 但是这以后都是一样的结果了 所以强制在这里退出 break; } int mid = (left + right) / 2;// cout<<left<<endl;// cout<<mid<<endl;// cout<<right<<endl<<endl<<endl; int tem = 0; for(int i = 0; i < N; ++i) tem += wood[i] / mid; if(tem < K) //以mid来切木头 不够 说明mid过大 { right = mid; } else if(tem >= K)//够切 甚至超过了要求的K段 说明mid过小 或者刚好可以继续增加mid { left = mid; } } printf("%d\n",right); } return 0;}
0 0
- 木材加工
- 木材加工
- 木材加工
- 木材加工
- wikioi 3297 木材加工
- [POJ2774]木材加工
- OpenJugde - 2774:木材加工
- OpenJudge 2774 木材加工
- LintCode-木材加工
- noip2005初赛-木材加工
- LintCode 木材加工
- lintcode-木材加工-183
- lintcode 木材加工
- OpenJudge_P1776 木材加工
- openjudge 木材加工
- LintCode 木材加工
- codevs 3297 木材加工
- LintCode : 木材加工
- hdu 1231 解题报告
- 使用反射创建Bean、Spring中是如何根据类名配置创建Bean实例、Java提供了Class类获取类别的字段和方法,包括构造方法
- android Gridview 点击某个item 改变item的背景(不是点击效果是选中效果)
- 移植NTFS-3G到ARM-linux环境
- PAT(Advanced level) 1005. Spell It Right
- 木材加工
- 23种设计模式
- 单源最短路(spfa),删边求和
- 代码初探->能耗
- Android的Message机制(简单小结)
- Linux设备管理之udev
- 河南三门峡一农场近百名员工着红军装上班(组图)
- 高效开发Android App的10个建议
- 条款2:尽量以const,enum,inline 替换 #define