第四章上级实践报告
时间:2019-11-18
本文章向大家介绍第四章上级实践报告,主要包括第四章上级实践报告使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
一、实践题目
程序存储问题
二、问题描述
有给定长度的n个程序要放在长度为L的磁盘上,计算磁盘上最多能装多少个程序
三、算法描述(说明你的贪心策略,并且参考会场安排问题,利用反证法证明贪心选择和最优子结构性质)
设程序集合E={1,2,3,... ,n }以按程序大小的非减顺序排序,则程序1是其中最小的
贪心策略:每次选择当前长度最短的程序放入磁盘
贪心选择与最优子结构性质:首先必有程序1,不然设A∈E是最优解,且A中最小的程序为k。若k=1,则最优解包含1。若k>1,则活动1必与A中除k以外的程序相容。令B=A-{k}∪{1},则B也是个最优解
进一步,若A是原问题的包含程序1的最优解,则A‘=A-{1}是程序集合E'={i∈E:si>f1}的一个最优解
不然,设B'是E'的解且|B'|>|A'|,则B'∪{1}是E的解且|B'|+1>|A|。此与A是最优解矛盾。所以必有最短的程序1。
四、算法时间及空间复杂度分析(要有分析过程)
代码如下:
#include<iostream> #include<algorithm> using namespace std; int n,l; int a[100000]; int main(){ cin>>n>>l; for(int i=0;i<n;i++){ cin>>a[i]; } sort(a,a+n-1); int ans=0; for(int i=0;i<n;i++){ if(l-a[i]>=0){ l=l-a[i]; ans++; } } cout<<ans; return 0; }
时间复杂度:进行了一次快排,还有一次对数组的遍历,所以时间复杂度为O(nlogn)
空间复杂度:只开了一个变量用以记录剩余空间,则空间复杂度为O(1)
五、心得体会(对本次实践收获及疑惑进行总结)
这道题比较简单,只要想好贪心策略,证明其正确性,基本就可以迎刃而解了。
原文地址:https://www.cnblogs.com/hxyawsl/p/11884424.html
- centos6.8下安装部署LNMP-(nginx1.8.0+php5.6.10+mysql5.6.12)
- IE7下当position:fixed遇到text-align:center
- 数组-在Shell脚本中的基本使用介绍
- .Net Core下通过Proxy 模式 使用 WCF
- javascript中function调用时的参数检测常用办法
- squid代理http和https方式上网的操作记录
- kvm虚拟化管理平台WebVirtMgr部署-完整记录(3)
- 域名hiku.com曾百万价格被交易,目前被加拿大大麻公司收购
- Linux系统下的用户密码设定梳理
- Silverlight中的序列化
- 第四次工业革命
- 每周.NET前沿技术文章摘要(2017-06-07)
- 再谈Silverlight中的对象序列化/反序列化
- jQuery打造智能提示插件
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- php简单检测404页面的方法示例
- thinkPHP3.2使用RBAC实现权限管理的实现
- Flutter以两种方式实现App主题切换的代码
- PHP中非常有用却鲜有人知的函数集锦
- PHP针对redis常用操作实例详解
- thinkPHP5使用Rabc实现权限管理
- PHP实现cookie跨域session共享的方法分析
- VS Code开发React-Native及Flutter 开启无线局域网安卓真机调试问题
- Laravel5.4简单实现app接口Api Token认证方法
- PHP生成zip压缩包的常用方法示例
- Android Studio用genymotion运行后小图标无法显示问题
- PHP7数组的底层实现示例
- 浅析Flutter AbsorbPointer 与 IgnorePointer的区别
- php用wangeditor3实现图片上传功能
- Flutter集成到已有iOS工程的方法步骤