/*
*下面的**只ac了40%,我認為是對我的演算法思路對測試資料造成了遺漏
*我的思路是先按照時間和等級進行貪心排序,因為時間的影響力比等級大,所以把時間作
*為第一排序選擇;然後迴圈選擇機器時間大於任務時間,且機器等級大於任務等級的任務
*陣列下標,在計算moreincome和count同時,將機器和任務的資料置為-1,以下面的測
*試資料為例,最後count比正確答案的值小1存在著遺漏,漏掉了13 99這組任務資料,
*具體怎麼遺漏的呢?我認為是這樣的:這種演算法策略是同時找到符合機器時間大於任務時間,
*機器等級大於任務等級的條件就break,然後計算,但資料量變大後,且越計算到後面,
*由於只要一找到符合條件的資料就break,這會發生你現在break的機器資料不能更好的體現它的價值,
*怎麼個不好法,不夠貪心吧,其實你的這組機器資料用到後面更能體現價值。當然這只是我的猜想,
*沒用資料來證實,如果哪位大佬看見了,希望能解答下這個疑惑。
*/#include using namespace std;
const int maxn = 100005;
struct node machine[maxn], task[maxn], test[maxn];
int cmp(node a, node b)
int main()
} if (flag1 != -1 && flag2 != -1)
} sort(test, test+k, cmp);
for (int i=0; iusing namespace std;
const int maxn = 100005;
struct node machine[maxn], task[maxn];
int cnt[105];
int cmp(node a ,node b)
int main()
// printf ("退出while\n");
// printf ("machine[j-1].time machine[j-1].priority = %d %d\n", machine[j-1].time, machine[j-1].priority);
for(k = task[i].priority;k <= 100;k++)}}
printf ("****************************\n");
printf("%d %lld\n",num,ans);
return 0;
}/*測試資料取自牛客網
77 51
599 10
420 55
533 70
969 70
925 12
765 18
942 51
483 62
691 74
798 43
912 58
807 83
543 80
756 69
762 95
62 68
122 8
902 66
971 28
308 88
625 76
411 74
974 90
229 66
320 98
956 69
862 23
613 37
783 21
690 85
858 5
698 99
748 50
231 79
916 91
221 2
609 57
40 99
282 27
281 8
436 16
736 100
667 71
314 68
889 26
883 43
531 81
989 38
724 23
12 46
652 91
978 47
730 67
241 74
878 19
619 60
796 73
885 96
861 61
187 57
888 69
815 19
863 97
816 26
295 93
281 95
917 59
820 99
311 15
89 62
784 97
6 51
653 61
715 98
77 60
965 70
748 94
518 69
963 60
19 91
125 36
844 97
447 10
523 100
778 65
219 25
255 95
889 21
27 11
905 14
740 58
755 89
531 92
941 58
712 10
894 71
837 11
705 77
577 89
388 27
64 84
382 5
115 91
919 46
885 30
16 91
490 79
297 28
870 49
407 65
205 91
796 61
624 39
966 91
264 35
167 65
177 19
56 16
144 95
974 80
49 79
13 99
86 46
93 79
354 93
573 12
487 9
666 49
*/
來一張列印圖,沒擷取,左邊是第一段**,右邊是第二段**
演算法題15 安排機器 牛客網,騰訊筆試題
小q的公司最近接到m個任務,第i個任務需要xi的時間去完成,難度等級為yi。小q擁有n臺機器,每台機器最長工作時間zi,機器等級wi。對於乙個任務,它只能交由一台機器來完成,如果安排給它的機器的最長工作時間小於任務需要的時間,則不能完成,如果完成這個任務將獲得200 xi 3 yi收益。對於一台機器...
騰訊筆試題
一.單選題 每題4 分,15題,共60分 1.考慮函式原型void hello int a,int b 7,char pszc 下面的函式呼叫鐘,屬於不合法呼叫的是 a hello 5 b.hello 5,8 c.hello 6,d.hello 0,0,2.下面有關過載函式的說法中正確的是 a.過載...
騰訊筆試題
1 請定義乙個巨集,比較兩個數a b的大小,不能使用大於 小於 if語句 2 如何輸出原始檔的標題和目前執行行的行數 3 兩個數相乘,小數點後位數沒有限制,請寫乙個高精度演算法 4 寫乙個病毒 5 有a b c d 四個人,要在夜裡過一座橋。他們通過這座橋分別需要耗時1 2 5 10分鐘,只有一支手...