1. 程式人生 > >2016華為軟體精英挑戰賽:賽題及其答疑彙總

2016華為軟體精英挑戰賽:賽題及其答疑彙總

1、節點出度不超過8,是一個需要利用的條件嗎?
當然是了,這會影響到你的資料結構的設計。通過節點數加上出度可以計算出來這是一個稀疏圖
2、這個問題的複雜度可以有足夠時間算出最優解嗎?
不求最優,只要勝過別人即可
3、圖的頂點數不超過600個,但輸入的頂點號最大值會不會大於600?
不會超過600
4、10s包括讀寫檔案的時間嗎還是search_route執行時間
你認為IO需要多久?測一下就會帶給你驚喜
5、那個 我問一下哦 是不是經過V'中的節點不是一定要連著的 就是說 可以經 過一個V'中的 經過一個V'外的 而不是一口氣全部要經過V'中的
當然了
6、請問s,t在v’中嗎?
不在。其實在與不在沒有質的改變,在裡面只會增加費時的操作,要考察的是演算法,不是這些無關的東西
7、高階資料以後也是要十秒計算時間嗎
是的,10s對於求近似解已經足夠長了
8、如果自己寫io,最後都要提交什麼?請參考readme介紹
9、頂點1指向2會有不同權值的多條邊?
會的,這個是與教科書上的圖有不同的
10、請問題中所有節點都不允許重複經過嗎?是的
11、連線頂點A至頂點B的有向邊可能超過一條,其權重可能一樣,也可能不一樣;----是不是使用權重最小的那個就可以了,其他的也沒什麼用。
初賽階段你可以這麼做,我只能說這麼多
12、節點的索引連續嗎
一般來說是連續的,但是製作用例很麻煩,極個別情況可能不連續
13、N個測試用例分為初級、中級、高階三個等級,請問每個等級的節點數目範圍大概是多少?
節點數不是唯一衡量問題複雜度的維度,還要考慮圖的樣子等等方面
14、什麼時候出高階樣例?
大家PK的時候會有高階用例。作為調測用例,越複雜越不便於除錯
15、請問中級的測試用例試頂點數目不變,只是邊變化嗎?
頂點數目不是衡量複雜度的唯一維度
16、吳老師您好,請問初等中等高等難度分別怎樣的?各佔總分的比重和比賽時總的測試是多少個?
難度的設定比較複雜,不一定是頂點數多就複雜。具體的佔比初步計劃是5:5:5,但是有可能會有調整
17、後面大家還要考慮路徑擁塞問題
18、程式碼是以最後一次提交為準嗎,出高階樣例之後還能改程式碼嗎
初賽結束前都可以改,而且還有復活賽,沒有晉級的同學這個時候也可以修改程式碼調優
19、對於這個問題,你們專家組,有沒有好的想法麼比賽只是 找出比別人的好就行,
只要找出比別人好的就可以,所以就是跟自己的歷史程式比,只要進步了就有機會
20、那你們的測試用例,對於有無解 ,總有答案吧。
是的
21、請問後面複賽和決賽的網路規模會變大麼?如果變大,可能的規模是多少? (這個涉及演算法設計的)
頂點不會超過600
22、能保證測試資料格式正確麼?會不會突然冒出來一個特殊字元
我們會盡全力保證不出這樣的問題,即使出了也會最快的速度更正的
23、np-hard問題據資料說傾向於不存在證明意義上的最優解,不知道專家們是不是有方法能找出最優解,還是和很多同儕們一樣只是在概率意義上逼近尋找所謂最優解的
我們不需要知道最優解,因為是各組選手之間PK
24、最後是在Linux環境下編譯執行嗎?在平時 除錯時能否在windows下進行
你在win下除錯了,我們也不知道呀
25、大家注意一下,初級用例不一定就簡單,每個人的演算法側重都不一樣,完全可能高階用例做得出來,但是初級的做不出來的情況
26、官方的測試用例,應該會給出 有解和無解的情況吧, 有解 就看誰的最優, 可以這樣理解麼
正確
27、請問一般情況下這個程式的平均執行時間是多少毫秒 ?
時間不是關鍵問題,你要PK贏了cost,哪怕是用滿了10s也比別人1s的厲害
28、平臺驗證程式大概是怎麼個流程啊?
這個說來話長了。簡單說,每個程式判題之前我們會重啟虛擬機器,所以不用擔心前人把記憶體洩露光了的問題
29、題目中說頂點與有向邊的索引均從 0 開始編號(不一定連續,但用例保證索引不重複),這裡的不連續怎麼理解?如果只有三個頂點可以用0 、1、5這樣表示?
基本不會出現這樣的問題
30、是否還要考慮演算法穩定性,每個測試樣例驗證幾次?
一錘子買賣,如果你人品爆發,那就恭喜你了
31、大家注意一下,初級用例不一定就簡單,每個人的演算法側重都不一樣,完全可能高階用例做得出來,但是初級的做不出來的情況。
官方的用例應該包括各種情況,來應對不同的演算法(每個演算法的側重不同),我想問的是,你們測試我們的程式時,會把所有的官方用例都測完嗎?然後 統一 一下每組的排名麼,還是對於每組的測試用例 隨機選擇。
所有測試例全跑
32、專家是否推薦幾篇論文
引用論文的演算法,這個需要分析好,避免承擔版權責任啊
比如說我用陣列儲存索引號,那在定義索引號的值時我的容量到底應該定義超過多少呢?610個?
600足矣
33、出這個題目的背景?
開幕式會講
33、類似tsp吧
有相似性,但要想清楚哪裡不一樣,這個就自己想一想,不能再多說了
34、啟發式演算法是要拼人品的
也不一定
35、吳老師,頂點的入度呢,你們對入度有限制嘛?
這個就隨意了,沒有限制
36、如果用暴力搜尋,會不會特別費時間?
有的時候不用猶豫,直接肯定自己就好了
37、設計多少頂點合適
題目中都有介紹,600個
38、最多會有多少條邊
出度是8,最多600點,肯定最多4800邊啊
39、給程式執行的記憶體有多大?
虛擬機器2G記憶體
40、會不會有空點存在?
沒有意義的事情,不會浪費大家時間的,不會有空點
41、吳老師 你們有沒有官方自己的程式?如果有,拿官方程式能跑測試用例能跑多少分,時間是什麼水平?
裁判員當運動員不好吧,沒有
42、吳老師,從s到t的不成環有向路徑P中,是嚴格不允許重複經過任一節點嗎?還是可以通過該節點的不同入邊進入?
嚴格不允許,否則就出環了
43、吳老師,一開始說所謂稀疏圖的判斷,是不是對這個問題有優化?
稠密圖和稀疏圖設計資料結構的方法可能不同的
44、請問入度有可能為0呢?
當然可能,對入度不做任何限制
45、畢竟裁判員算是標準答案
這是一場對抗性比賽,所以沒有標準答案
46、這些必經點分佈上是均勻的吧,,,
最好不要這麼想,否則會吃虧的
47、我想問一下,能保證路徑檔案不包含多餘空格麼?有空格正則匹配會比較複雜,(會不會多花時間啊),還要trim
如果有空格,那就一個檔案變成兩個檔案了,沒有空格
48、吳老師這個問題是不是應該用多種判斷方法,從特殊到一般會不會比較省時間
可以這樣判斷,當然也可以用通殺的演算法,這完全取決於你的演算法設計
49、現所給的樣例和最終的測評樣例難度一樣嗎?
用例難度只是一種人為的評判,不具有精確的量化資料
50、最終智慧財產權歸本隊所有吧?
在大賽官網有介紹
51、權值的意義是代表接入網路裝置的個數嗎?
你可以認為是時延
52、吳老師,有向邊會不會有起點和終點一樣,權重不一樣的
有可能會有
53、初級,中級,高階測試用例,有沒有嚴格的界限,比如邊的條數等
負責任的設計用例就沒有,如果不負責任的設計用例那就簡單了。所以說沒有界限,問題的難度不止取決於頂點和邊的數量,還有很多複雜的東西要考慮
54、感覺比賽有一定的人品在裡面
有可能
55、一個程式一次在一個機子上跑完所以的測試嗎

56、@老師,這個問題複雜之處在哪裡?
我們對這個問題難度定義為NP-Complete的級別
57、再統一說明一下,這個問題的複雜之處不僅僅在於頂點個數和邊的個數。還要考慮如何不成環
58、最後會對程式碼有具體的評估嗎?還是隻看執行結果?
需要評估,至少不能抄襲,否則影響比賽的公平,對吧
59、請問,必經結點的實際意義體現在什麼地方?謝謝
這個在開幕式上會有介紹。簡單說一下吧,比如需要到某個站點做資料處理。例如線上看一段視訊,格式源和最終播放的格式不一樣,需要到指定站點做轉碼。
60、怎麼來確定邊的權重,是自己輸入的嗎
賽題介紹中有說明,可以看一下輸入那一段
61、降低計算不就是看運氣了
不完全是,如果演算法穩定,運氣的成分就不重要了
62、@老師,這道題目和華為主題未來網路有何關係,或者說題目背景
保留一點神祕感,待到開幕式上揭曉吧。如果到時候很多人還是不明白,我承諾專門寫一篇文字介紹清楚,可好?
63、不會多花時間啊),還要trim,如果有空格,那就一個檔案變成兩個檔案了
我指的是1,2,3,4這樣的路徑會不會出現空格
不會,本題的考察點重點在於演算法,不會在這裡難為大家的
64、感覺就是一個異化的哈密頓通路問題,加上了權重,然而並沒有最優解
漢密爾頓問題也沒有要求最優解
65、如果是雙連通分量,是不是可以判定無解?
你說的雙連通分量指的是什麼?
雙連通是指一個點需要經過兩次
是的,成環的路徑是不符合要求的。那就是無解
66、吳老師 所有難度的題目中必經節點佔總結點的比例?
沒有這個比例的限制
67、吳老師,17號提交的時候排名就是固定的用例嗎?之後的初賽階段用例是變化的還是固定的2個(初級&中級)
19號開通提交通道。如果用例沒有錯誤,是不會更換用例的。初賽過程中先放出初級和中級的用例,第二次會增加高階用例。
感覺得拉一個學數學的來
可以呀,就是一種數學建模
68、吳老師 所有題目中無解樣例多麼,能說個大概比例麼不?
這個不太好說
69、官方可以多提供一些測試案例不?@軟體精英挑戰賽命題組專家–吳迪
這個對每一組都是公平的
70、吳老師,每個小組是不是在最後都有復活賽的機會?
只要你的改進足夠大,就可以復活
71、那您意思就是初賽只有初、中級用例?第二次是什麼意思。。。
復活賽之前,會分兩次把所有用例放上去
72、吳老師,據說華為內部演算法對600個點可以在10ms內給出一個解,是真的嗎
這樣的演算法有,但不是可以解決所有用例,是有針對性的演算法。這次比賽也是希望發現在這方面有特長的同學
73、吳老師,在計時系統中,使用Java是否有時間上的補償?Java執行的太慢了。@軟體精英挑戰賽命題組專家–吳迪
沒有補償。時間不是關鍵,關鍵是cost足夠小
74、關於獎勵,是每人一份還是全隊一份(既然沒人問……)
全隊一份
75、,,,弄的我想轉成c++程式碼了
對於這個賽題演算法為王
76、Cost指權重之和嗎?
如果你問的是P的cost,那麼是,P是指最後輸出的路徑
77、這樣的演算法有,但不是可以解決所有用例,是有針對性的演算法,也就是說您在設計圖的時候是否儘量避免了某些特殊情況?
不排除這種可能性
78、普通演算法不容易通過所有測試用例。
是的
79、這種圖如何分類,比如華為跑10ms的演算法針對哪種圖?
沒有明確的分類方法
80、10秒是怎麼執行吶,不用定時退出吧,只要十秒內有儲存
10s內有輸出即可
81、一個用例只能跑一次嗎?想用機器學習做下,能不能給第二次機會?@軟體精英挑戰賽命題組專家–吳迪
你可以把10s分成10個1s
82、有解和無解分開排名 但測試的時候有解和無解是打亂放的嗎? 算成績的時候再把他們區出來?
是的
83、有解和無解分開排名 但測試的時候有解和無解是打亂放的嗎? 算成績的時候再把他們區出來?
是的
84、我想問每個節點是按順序給出嗎?邊的標號也是按順序給出嗎
基本上是
85、請問給出的測試用例case1中的這條路徑是不適最優路徑?還是隻是一條最優路徑?
就算你求出了最優解,也沒有辦法驗證就是最優
86、給個建議,有必要出解一個存一下嗎
用SDK無法支援你的方法,需要你自己實現IO了
87、是否存在多條滿足題意的路徑使得cost最小,如果權值一樣,就拼時間咯
什麼叫拼時間,是指輸出任意path就行麼
權值一樣時,看誰的執行時間短