設有n個活動時間集合,每個活動都要使用同乙個資源,比如說會議場,而且同一時間內只能有乙個活動使用,每個活動都有乙個使用活動的開始si和結束時間fi,即他的使用區間為(si,fi),現在要求你分配活動占用時間表,即哪些活動占用該會議室,哪些不占用,使得他們不衝突,要求是盡可能多的使參加的活動最大化,即所佔時間區間最大化!
原文:
#include#includevoid greedychoose(int len,int s[11],int f[11],int flag[11]);
int main()
; int f[11] =;
memset(book,0,sizeof(book));
greedychoose(11,s,f,book);
for(i = 0; i < 11; i ++)
if(book[i])
printf("%d ",i);
printf("\n");
return 0;
}void greedychoose(int len,int s[11],int f[11],int flag[11])
}
類似這種題還有個區間覆蓋問題,就是說很多個區間,其中有些是相互覆蓋著的,要求去除多餘的區間,使剩下的區間占用長度最大,實際就是這個題,只是問法變換了而已!
在一維空間中告訴你n條線段的起始座標與終止座標,要求求出這些線段一共覆蓋了多大的長度。
#includeint main()
; int f[10] = ;
len = f[0]-s[0];
j = 0;
for(i = 1; i < 10; i ++)
else
}} printf("%d\n",len);
return 0;
}
執行結果為13.
設有n個正整數,現在需要你設計乙個程式,使他們連線在一起成為最大的數字,比如說3個整數 12,456,342 很明顯是45634212為最大,4個整數 342,45,7,98顯然為98745342最大
程式要求:輸入整數n 接下來一行輸入n個數字,最後一行輸出最大的那個數字!
題目解析:這道題乍一看挺簡單,但仔細分析分析也是有點難度的。簡單在好像就是尋找哪個開頭最大,然後連在一起就是了,難在如果n大了,假如幾千幾萬,好像就不是那麼回事了,要解答這個題目需要選對合適的貪心策略,並不是把數字由大排到小那麼簡單。
相信氣泡排序都已經很熟悉了,注意看程式中最核心的比較規則是什麼,是這一句if(a[j] > a[j+1] ) 他是以數字大小作為比較準則來返回true或者是false,那麼我們完全可以改變一下這個排序準則,比如23,123,這兩個數字,在我們這個題中它可以組成兩個數字 23123和12323,分明是前者大些,所以我們可以說23排在123前面,也就是23的優先順序比123大,123的優先順序比23小,所以不妨寫個函式,傳遞引數a和b,如果ab比ba大,則返回true,反之返回false。
#include#includeint compare(int num1,int num2);
int main()
for(i = 1; i <= n; i ++)
printf("%d",a[i]);
printf("\n");
return 0;
}int compare(int num1,int num2)
while(num2)
if((k1*pow(10,ans2)+k2) < (k2*pow(10,ans1)+k1))
return 1;
return 0;
}
在貪心演算法裡面最常見的莫過於找零錢的問題了,題目大意如下,對於人民幣的面值有1元 5元 10元 20元 50元 100元,下面要求設計乙個程式,輸入找零的錢,輸出找錢方案中最少張數的方案,比如123元,最少是1張100的,1張20的,3張1元的,一共5張!
解析:這樣的題目運用的貪心策略是每次選擇最大的錢,如果最後超過了,再選擇次大的面值,然後次次大的面值,一直到最後與找的錢相等。
#includeint main()
; int moneyindex[6] =;
moneycount = count = 0;
scanf("%d",&all);
for(i = 0; i < 6;)
moneycount += moneyclass[i];
moneyindex[i] ++;
count ++;
if(moneycount == all)
break;
} for(i = 0; i < 6; i ++)
if(moneyindex[i] != 0)
printf("%d =%d\n",moneyclass[i],moneyindex[i]);
printf("%d\n",count);
return 0;
}
Verilog不完整if else,case鎖存
僅在組合邏輯電路 電平觸發 中產生鎖存,因時序邏輯電路本身具有儲存功能 邊沿觸發,邊沿到來前保持原狀 去掉注釋後 q 1 b0 若寫q q 仍鎖存器 rtl analysis schematic if else以上三種情況 去掉注釋後 僅此處無reg,因二選一選擇器不存值 module latcho...
php curl 獲取資料不完整
curl獲取資料的時候,結果的字串長度比較大。相同的結果每次獲取的資料都不全,並且長度也不一樣。試著把 header資訊修改為except 但還是不行 這個可以解決的問題是資料量太大導致獲取結果為空的情況 去掉curlopt returntransfer true 可以列印出完整資料 解決方案 修改...
OllyDbg完全教程 示例 不完整
不幸的是,您不能通過這種方式除錯ollydbg的外掛程式,外掛程式關聯到ollydbg.exe檔案,windows系統不能在同乙個應用程式裡載入並執行兩個可執行檔案。解碼提示 decoding hints 在某些情況下,分析器不能區分 和資料。讓我們看看下面的例子 const char s 11 0...