只有當局部最優跟全局最優解一致的時候,貪心法才能給出正確的解。 (3分)ios
令S爲活動選擇問題(Activity Selection Problem)中全部活動的集合。則必定存在S的某個最大相容活動子集是包含了最先結束的活動am的。(3分)編程
令S爲活動選擇問題(Activity Selection Problem)中全部活動的集合。則最先結束的活動am必定被包含在S的全部最大相容活動子集中。(3分)數組
在活動選擇問題(Activity Selection Problem)中,令 S 爲活動的集合。以「每次收集最遲開始的活動」爲貪心原則,能夠正確找到 S 中相互兼容活動的最大規模的子集合。 (3分)編碼
令 C 爲字母集,其中每一個字符 c 有對應頻率 c.freq。若 C 的大小爲 n,則其中任一字符 c的最優前綴編碼長度都不會超過 n−1. (3分)spa
給定一段文本中的4個字符(a, b, c, d)。設a和b具備最低的出現頻率。下列哪組編碼是這段文本可能的哈夫曼編碼? (5分)ci
- a: 000, b:001, c:01, d:1
- a: 000, b:001, c:01, d:11
- a: 000, b:001, c:10, d:1
- a: 010, b:001, c:01, d:1
給定一段文本中的 4 個字符 (u,v,w,x) 及其出現頻率 (fu,fv,fw,fx)。若對應的哈夫曼編碼爲 u: 00, v: 010, w: 011, x: 1,則下列哪組頻率可能對應 (fu,fv,fw,fx)?(5分)it
- 15, 23, 16, 45
- 30, 21, 12, 33
- 41, 12, 20, 32
- 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;}