騰訊筆試題 安排機器

2021-08-21 20:45:12 字數 3201 閱讀 3271

/*

*下面的**只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分鐘,只有一支手...