算法第四章作业


1-1

只有当局部最优跟全局最优解一致的时候,贪心法才能给出正确的解。(3分)

1-2

令S为活动选择问题(Activity Selection Problem)中所有活动的集合。则一定存在S的某个最大相容活动子集是包含了最早结束的活动am​​的。(3分)

1-3

令S为活动选择问题(Activity Selection Problem)中所有活动的集合。则最早结束的活动am​​一定被包含在S的所有最大相容活动子集中。(3分)

1-4

在活动选择问题(Activity Selection Problem)中,令 S 为活动的集合。以“每次收集最迟开始的活动”为贪心原则,可以正确找到 S 中相互兼容活动的最大规模的子集合。(3分)

1-5

C为字母集,其中每个字符c有对应频率c.freq。若C的大小为n,则其中任一字符c的最优前缀编码长度都不会超过n1.(3分)

2-1

给定一段文本中的4个字符(a, b, c, d)。设a和b具有最低的出现频率。下列哪组编码是这段文本可能的哈夫曼编码?(5分)

2-2

给定一段文本中的 4 个字符(u,v,w,x)及其出现频率(fu​​,fv​​,fw​​,fx​​)。若对应的哈夫曼编码为u: 00,v: 010,w: 011,x: 1,则下列哪组频率可能对应(fu​​,fv​​,fw​​,fx​​)?(5分)

编程题第一题

#include <iostream>
using namespace std;

int main()
{
int n,k;//定义n和k。
int a[100];//定义数组保存各个加油站之间的距离。
int ans=0;//定义加油次数。
cin>>n>>k;//输入n和k。
int r=n;//定义一个存储油箱内油量的变量。
for(int i=0;i<k+1;i++)
{
cin>>a[k-i];
}//输入每个加油站之间的距离。
for(int i=0;i<k+1;i++)
{
if(a[i]<=r)
{
r=r-a[i];
}
else
{
r=n-a[i];
ans++;
}
}
cout<<ans;//输出结果
}

编程题第二题

#include <iostream>
#include <map>
using namespace std;
int a[100010],b[100010],c[100010],d[100010],n,now,sum,Max;
map<int,int>e;
int main(){
freopen("sche.in","r",stdin);
freopen("sche.out","w",stdout);
cin>>n;
for(int i=1;i<=n;i++){
scanf("%d%d",&a[i],&b[i]);
c[2*i-1]=a[i];
c[2*i]=b[i];
}
sort(c+1,c+2*n+1);
for(int i=1;i<=2*n;i++)
if(!e[c[i]])
e[c[i]]=++now;
for(int i=1;i<=n;i++)
d[e[a[i]]]++,
d[e[b[i]]]--;
for(int i=1;i<=now+1;i++)
sum+=d[i],
Max=max(Max,sum);
cout<<Max;
fclose(stdin);
fclose(stdout);
//system("pause");
return 0;
}

优质内容筛选与推荐>>
1、Eclipse插件开发总结(第二天)
2、c#socket发送邮件详解
3、由“单独搭建Mybatis”到“Mybatis与Spring的整合/集成”
4、Java 8函数编程轻松入门(四)方法引用
5、JS特效


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号





    联系我们

    欢迎来到TinyMind。

    关于TinyMind的内容或商务合作、网站建议,举报不良信息等均可联系我们。

    TinyMind客服邮箱:support@tinymind.net.cn