日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

topcoder使用

發(fā)布時間:2023/12/18 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 topcoder使用 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

呃,其實我是個菜如一只雞的家伙了,想了那么久說要去打Topcoder 的srm,從配置好到實際打,中間間隔估計超過1個月.

當(dāng)然第一次srm人品比較好,250和500水過,950的沒想法也就認(rèn)了,實力就沒到那里,然后Challenge階段hack 2/2,然后莫名的就給我定到了1411,缺個口的藍(lán)名。

不過說老實話,Topcoder Arena這個客戶端在默認(rèn)配置下的使用難度真是讓人覺得有點悲傷……

我就把我調(diào)教Topcoder Arena的經(jīng)歷和第一次打SRM寫在這里和(qiu)大家分(pai)享(zhuan)了,讓大家見笑了。

(整體以我在Win下的配置為例,Linux下?lián)f有更多坑,不敢往下跳,Mac OS,那我就更沒玩過,后兩種系統(tǒng)的同學(xué)們自行谷哥)

?

0、前期準(zhǔn)備

Part 0:學(xué)習(xí)一種語言

Topcoder Arena(SRM)現(xiàn)在支持的語言有,C++(gcc 4.8.1,且支持C++11特性,clj表示使用起來非常舒爽,但是老實說Codeforces管理員測出來開-O2有bug)、Java(好像是Java7,現(xiàn)在Java8出來了有沒有更新不知道)、MS C#(看起來是.NET 4.0,現(xiàn)在是不是.NET 4.5我沒有條件測試——有個Lambda和LINQ夠帥了)、MS VB.NET、Python(據(jù)說很老,查到有說Python2.6的?)

(這些語言的運行環(huán)境可以參見:http://apps.topcoder.com/wiki/display/tc/General+SRM+Algorithm+FAQ)

(另:Topcoder對提交的代碼的評測環(huán)境好像有些遮遮掩掩的,新老版本網(wǎng)頁混合運行的情況下這個最新的準(zhǔn)確信息更難找到了,Codeforces上這個相對做的較好了,專門一個頁面說明所有編譯器、運行命令情況)

這里要注意到?jīng)]有C語言,因為Topcoder的題目和傳統(tǒng)acm/icpc題目要求編寫的代碼是有區(qū)別的,Topcoder的形式下你要做的是:

約定了你提交的代碼中的類名和待調(diào)用函數(shù)的名稱和參數(shù)類型,實現(xiàn)這個待調(diào)用函數(shù),返回預(yù)期的結(jié)果(而不是通過標(biāo)準(zhǔn)輸入輸出返回)。

也就是說,你寫題的時候不可避免的涉及到類這個概念。

而且,C++的同學(xué)們要注意,在傳入和返回字符串、數(shù)組等的時候,Topcoder上一般給出的形式是string、vector<>這種,所以,C++的同學(xué)不會STL(的基本用法)那就基本沒法做題了。(搞一本劉汝佳的紫書,把第5章學(xué)習(xí)一下沒錯的)

其實用哪種語言都要注意,系統(tǒng)庫提供的一些非常實用的常用算法和容器你還是要非常熟悉的,比如排序。不熟悉的語言就不要貿(mào)然使用了,不然蠻拖累你的編程階段的。

Part 1:注冊一個Topcoder賬號,并且補(bǔ)充個人信息

注冊賬號的流程和其他注冊賬號的區(qū)別并不大,不過和國內(nèi)的相比是略顯繁雜

點擊此處的Sign Up

注:常見問題是,點擊Sign Up后沒有任何反應(yīng),或者移動到左側(cè)的About Topcoder等沒有出現(xiàn)下拉菜單

這是由于Topcoder所使用的jQuery沒有被正確加載所致(在一個cdn上,估計被block了),解決方法就是——爬梯子。

按上面的要求填寫,這些都是必填項,Email請?zhí)顚懻鎸岴mail,因為需要郵件激活。

另外能讓我小小的吐槽一下嗎,密碼一定要大小寫字母和數(shù)字混合的,而且強(qiáng)度必須滿足要求,這好像是我注冊各種賬號中,在蘋果之后的第二家……

這樣注冊了,如果只是想打打TC Arena,夠用了,如果有一些TC相關(guān)活動想?yún)⑴c(比如2014.7.29 的 [topcoder]Asia Programming Comptition),還需要補(bǔ)充一些信息。

Log In登錄,然后

1、點一下主頁——My Account——Account Settings

2、點一下 Update my profile

3、跟著向?qū)б徊讲酵晟颇愕膫€人信息(不懂的單詞,那就找找英語詞典吧)

?

Part 2:安裝并配置JRE

Topcoder Arena是一個Java應(yīng)用程序,現(xiàn)在的環(huán)境下,你必須需要通過Java Web Start啟動。

好吧,就算你是個想好了不用Java寫題的C++/C#/VB.NET選手,抱歉,Java Runtime Environment還是要裝(JDK倒是沒必要,畢竟不用寫Java程序)。

(另:linux下的同學(xué)請注意,據(jù)說OpenJDK的web start跑這個Arena跑不起來,為了您 的幸福,還是裝一下Oracle的JRE/JDK吧)

不同系統(tǒng)環(huán)境下的具體安裝方法和系統(tǒng)環(huán)境變量的配置方法這個大家都可以搜索到的,這里就不講了。

1、第一次啟動Topcoder Arena,第一次做練習(xí)

前面的準(zhǔn)備工作做足以后,終于可以開始第一次見識一下Topcoder Arena了。

不知道你有沒有把JRE的bin目錄加到你的環(huán)境變量的path里,有的話:

Win+R,然后輸入cmd,回車打開命令提示符

然后,復(fù)制粘貼一下下面這個命令

==============================================================

javaws http://community.topcoder.com/contest/arena/ContestAppletProd.jnlp

==============================================================

是的,就上面這一行

(你可以選擇保存成一個.bat文件,放在桌面上當(dāng)一個快捷方式用)

多等一會(視網(wǎng)絡(luò)情況而定),你就能看到Topcoder Arena的登陸界面了

常見問題1:

我怎么按上面的步驟打開,提示無法啟動應(yīng)用程序,詳細(xì)信息說是,發(fā)現(xiàn)未簽名的條目呢?(如下圖)

答:這種情況多見于新的Java7/Java8下。Java7/Java8增強(qiáng)了安全性,限制非常之嚴(yán)格

解決方法:把topcoder的域名加入例外站點中。

打開Java控制面板(Windows下:控制面板-Java,或者開始菜單-Java-配置Java),切換到安全選項卡。

看到“例外站點”列表了嗎?點擊邊上的“編輯站點列表”

點擊添加,輸入http://www.topcoder.com(必須是這樣輸入的,一個字符都不能省,也不能改)

單擊空白地方,彈出提示框

點擊“繼續(xù)”,之后一路確認(rèn),保存這個修改。然后順帶清空一下Java應(yīng)用程序緩存(必須步驟,不然不起效)。

再啟動試試看,就好了,問題解決。

?

常見問題2:

之前用TC Arena好好的,突然有一天開始,無法見到這個登陸界面,Java總是說無法打開應(yīng)用程序,怎么回事?

這種情況一般多見于TC Arena更新后。Java有這種jnlp應(yīng)用的緩存機(jī)制,會緩存jnlp的,但是很可能會導(dǎo)致使用過老的jnlp,從而訪問已經(jīng)不存在的老版本jar文件。

解決方法:清空一下Java的緩存。打開Java控制面板,臨時Internet文件-設(shè)置-刪除文件,確定,重新嘗試打開客戶端,就沒事了。

?

然后輸入你注冊時的handle和你的密碼,點Go登錄

有的時候點Go也登陸不進(jìn)去,有可能是Topcoder的Arena在做維護(hù),也有可能是你的網(wǎng)絡(luò)有點悲催,只能說,多試試就行了。

?

下面是登陸以后的界面

在做TC Arena里的題目之前,首先要設(shè)置一下默認(rèn)語言。

依次點擊上面菜單欄的Options--Setup user preferences

單擊Editors選項卡,在Default Language里選擇你所喜歡使用的語言,之后注意要【單擊右下角的Save,再單擊Close】

?

然后我們要開始TC Arena上第一次看看它的題目應(yīng)該怎么做了。

單擊菜單欄上的Practice Room,這里放了TC歷次的比賽題目。我們這次以SRMs-985-SRM 628 Div2 為例。

這里就是比賽時和練習(xí)時能看到的房間了。

單擊下拉菜單,可以看到每個題目的分值,選擇某個分值,稍后就能看到相應(yīng)的題目。

一般TC上題目的分值都是250-500-1000的分布(每題可能上下浮動50分),從點開題目開始減分,通過一個略復(fù)雜的函數(shù)計算你到某一秒時提交這個題你的得分。

這里,我們選擇最簡單的250分題看看。

之前我們說過,做Topcoder Arena的題目時,你只需要完成一個類的一個方法即可。

整個界面的最頂上約定了題目的類名、方法名、傳入?yún)?shù)的類型、返回值的類型。

界面上半部分是題目描述,下半部分是打代碼的地方。

你可以看到,下面空空如也,于是我們首先要完成一個類的基本框架

?

  • class BishopMove {

  • public:

  • int howManyMoves(int r1, int c1, int r2, int c2) {

  • return 0;

  • }

  • };

    • 1


    之后我們把這個方法內(nèi)要寫的一切都寫好。(當(dāng)然,你可以自己再多加幾個方法供這個主要的被調(diào)方法調(diào)用)

    ?

    然后你可以點擊Complie編譯(編譯通不過的TC Arena不會讓你提交的),點擊Test進(jìn)行一下測試,再點擊Submit進(jìn)行提交,提交成功會返回給你你這次提交的得分

    如果你覺得你之前的提交有問題,你可以重復(fù)提交,但是重復(fù)提交將會以最后一次提交的得分為準(zhǔn),并且你還要額外損失大約10%的得分

    (所以要又快又準(zhǔn))

    然后,在練習(xí)模式下,你可以即時的進(jìn)行系統(tǒng)測試

    在練習(xí)房間里,單擊Practice Options-Run System Test,之后系統(tǒng)將會評測你的提交并返回你的提交是否通過了系統(tǒng)測試

    ?

    ===========================這是一條分割線===================================

    Topcoder Arena本身所提供的功能就簡單介紹到這里。

    不過大家肯定有感覺,如果每個題我都要把類的框架這樣辛辛苦苦寫好,測試還要一個個測試點自己一次次測過去,那真是太麻煩了。

    幸好,Topcoder Arena提供了插件功能,你可以選用自己喜歡的插件作為默認(rèn)的Editor。

    限于篇幅,本篇只能介紹這么多了,之后將會有3篇文章,分別來介紹一下Topcoder Arena平臺上流行的3種插件方案(就當(dāng)我挖了這3個坑了)

    1、CodeProcessor+FileEdit+任意一款數(shù)據(jù)生成器(最傳統(tǒng)的方案)

    2、KawigiEdit(Arena默認(rèn)的Editor的加強(qiáng)版,clj也在用的插件)

    3、Greed 2.0(我個人非常喜歡的插件,默認(rèn)配置非常簡單且已經(jīng)夠好用了,而且還在更新)

    這三種方案所需的插件文件我已經(jīng)整理上傳了,下載地址:http://pan.baidu.com/s/1qWFevA8

    總結(jié)

    以上是生活随笔為你收集整理的topcoder使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。