算法第四章做業

1-1

只有當局部最優跟全局最優解一致的時候,貪心法才能給出正確的解。 (3分)ios

T         F
1-2

令S爲活動選擇問題(Activity Selection Problem)中全部活動的集合。則必定存在S的某個最大相容活動子集是包含了最先結束的活動am​​的。(3分)編程

T         F
1-3

令S爲活動選擇問題(Activity Selection Problem)中全部活動的集合。則最先結束的活動am​​必定被包含在S的全部最大相容活動子集中。(3分)數組

T         F
1-4

在活動選擇問題(Activity Selection Problem)中,令 S 爲活動的集合。以「每次收集最遲開始的活動」爲貪心原則,能夠正確找到 S 中相互兼容活動的最大規模的子集合。 (3分)編碼

T         F
 
1-5

令 C 爲字母集,其中每一個字符 c 有對應頻率 c.freq。若 C 的大小爲 n,則其中任一字符 c的最優前綴編碼長度都不會超過 n1. (3分)spa

T         F
 
 
2-1

給定一段文本中的4個字符(a, b, c, d)。設a和b具備最低的出現頻率。下列哪組編碼是這段文本可能的哈夫曼編碼? (5分)ci

  1. a: 000, b:001, c:01, d:1
  2. a: 000, b:001, c:01, d:11
  3. a: 000, b:001, c:10, d:1
  4. a: 010, b:001, c:01, d:1
2-2

給定一段文本中的 4 個字符 (u,v,w,x) 及其出現頻率 (fu​​,fv​​,fw​​,fx​​)。若對應的哈夫曼編碼爲 u: 00, v: 010, w: 011, x: 1,則下列哪組頻率可能對應 (fu​​,fv​​,fw​​,fx​​)?(5分)it

  1. 15, 23, 16, 45
  2. 30, 21, 12, 33
  3. 41, 12, 20, 32
  4. 55, 22, 18, 46

 

編程題第一題io

#include <iostream>
using namespace std;class

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;//輸出結果
}stream

編程題第二題

#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;}

相關文章
相關標籤/搜索