日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

如何使用Java語(yǔ)言參加ACM

系統(tǒng) 3362 0

ACM國(guó)際大學(xué)生程序設(shè)計(jì)競(jìng)賽(英文全稱:ACM International Collegiate Programming Contest(ACM-ICPC或ICPC)是由美國(guó)計(jì)算機(jī)協(xié)會(huì)(ACM)主辦的,一項(xiàng)旨在展示大學(xué)生創(chuàng)新能力、團(tuán)隊(duì)精神和在壓力下編寫程序、分析和解 決問(wèn)題能力的年度競(jìng)賽。經(jīng)過(guò)近30多年的發(fā)展,ACM國(guó)際大學(xué)生程序設(shè)計(jì)競(jìng)賽已經(jīng)發(fā)展成為最具影響力的大學(xué)生計(jì)算機(jī)競(jìng)賽。賽事目前由IBM公司贊助。

?

?

北大ACM的地址: http://acm.pku.edu.cn

?

如何在北大ACM中提交問(wèn)題的解答?

1.在北大ACM中注冊(cè)并登陸

2.點(diǎn)擊“Problems”按鈕查看所有的問(wèn)題列表

3.點(diǎn)擊“Submit Problem”按鈕提交問(wèn)題解答

4.在打開(kāi)的頁(yè)面中輸入問(wèn)題ID,選擇語(yǔ)言類型,并粘貼代碼

5.在“Online Status”中查看狀態(tài),可以按照問(wèn)題ID,以及用戶名進(jìn)行過(guò)濾。

?

?

以下的北大ACM系統(tǒng)的FAQ,由英文原文翻譯所得:

Q : 你的程序從哪里獲取輸入,向何處輸出?

A : 你的程序只能從stdin獲取輸入,向stdout進(jìn)行輸出。例如:可以使用C語(yǔ)言中的scanf獲取C++中的cin獲取輸入,而使用C語(yǔ)言中的printf或者C++中的cout進(jìn)行輸出。 你的程序絕對(duì)不能嘗試去打開(kāi)或者讀寫文件 ,否則將給出運(yùn)行時(shí)錯(cuò)誤提示或者錯(cuò)誤答案。

?

Q : ACM使用的編譯器是什么?

A : 當(dāng)前支持7種語(yǔ)言,6種編譯器。C和C++使用VC++ 2008 Express版。Java使用JDK1.5.0。

?

    import java.util.*;

public class Main
{
    public static void main(String args[])
    {
        Scanner cin = new Scanner(System.in);
        int a = cin.nextInt(), b = cin.nextInt();
        System.out.println(a + b);
    }
}
  

?

使用Java語(yǔ)言尤其需要注意:

提交的Java程序必須是一個(gè)單源文件,并且是一個(gè)以Main命名的類,中間的執(zhí)行代碼在靜態(tài)的main函數(shù)中,否則會(huì)引起編譯錯(cuò)誤。

?

Q : 我的程序如何被判定?

A : 1. 你提交的程序首先將被保存在一個(gè)文件中,然后使用選定語(yǔ)言中的編譯器進(jìn)行編譯。如果編譯失敗,將返回“Compile Error”。

2. 接下來(lái)將會(huì)運(yùn)行你的程序,提供輸入并且進(jìn)行計(jì)時(shí)。輸入數(shù)據(jù)被保存至一個(gè)或多個(gè)文件中。每個(gè)文件都被用于判定你的程序。程序運(yùn)行過(guò)程中,如果發(fā)現(xiàn)你的程序運(yùn)行狀態(tài)超過(guò)閾值(Runtime Error,Time Limit Exceed,Memory Llimit Exceed,Output Limited Exceed),結(jié)果將會(huì)被立即返回,不會(huì)做進(jìn)一步的判定。這意味著如果出現(xiàn)了TLE或者M(jìn)LE,并不意味著你的程序在提供了足夠的資源后將正確運(yùn)行。當(dāng)你的程序結(jié)束一個(gè)輸入文件并制造了一些輸出并存儲(chǔ)在一個(gè)輸出文件中,將會(huì)用這個(gè)輸出文件與正確的輸出進(jìn)行比較。如果輸出不正確,則會(huì)給出Wrong Answer的提示。否則將會(huì)繼續(xù)處理下一個(gè)輸入文件。當(dāng)所有的輸入文件處理結(jié)束后,如果沒(méi)有出現(xiàn)Presentation Error,則會(huì)返回Accepted。

?

Q : 返回信息都是什么意思?

A :

Waiting : 你的程序正在被進(jìn)行判定,或者等候被判定

Accepted (AC) : 恭喜!你的程序已經(jīng)生成了正確的結(jié)果。

Presentation Error (PE) : 你的程序的輸出格式不能完全匹配與所期望的結(jié)果,雖然輸出是正確的。這通常意味著在兩個(gè)非空白的字符之間存在著多余或缺失的空格(空格,Tab,換行),或者在兩個(gè)非空白行之間存在空白行。在行后的空白字符以及文件后的空白行將不會(huì)被認(rèn)為是格式錯(cuò)誤。

Wrong Answer (WA) : 你的程序沒(méi)有生成正確的輸出,特別判定程序會(huì)返回Wrong Answer而不是Presentation Error,以確保簡(jiǎn)單性和健壯性。

Runtime Error (RE) : 你的程序在運(yùn)行中出錯(cuò)。可能的原因有非法文件訪問(wèn),堆棧溢出,指針引用越界,浮點(diǎn)異常,除以零等等。如果程序長(zhǎng)時(shí)間處于等待狀態(tài)而沒(méi)有使用CPU進(jìn)行計(jì)算,可能被認(rèn)為是出現(xiàn)了RE。

Time Limit Exceed (TLE) : 程序運(yùn)行總時(shí)間超出限制。

每一個(gè)Problem都有兩種時(shí)間限制,Total Time Limit和Case Time Limit。前者是你的程序處理所有輸入文件的總時(shí)間,后者是你的程序處理單個(gè)輸入文件的時(shí)間,超過(guò)兩者其一都會(huì)產(chǎn)生TLE。如果你被返回了TLE但是你的程序運(yùn)行時(shí)間在限制范圍內(nèi),則你的程序一定是超過(guò)了CASE TIME LIMIT。

如果一個(gè)Problem沒(méi)有指定具體的單個(gè)輸入文件運(yùn)行時(shí)間,則只適用總時(shí)間限制。

Memory Limit Exceed (MLE) : 你的程序超出內(nèi)存使用限制。

Output Limit Exceed (OLE) : 你的程序生成了過(guò)多的輸出。當(dāng)前的限制是期望輸出的兩倍大小。出現(xiàn)這種情況的原因可能是你的程序出現(xiàn)了死循環(huán)。

Compile Error (CE) : 程序編譯失敗。可以查看編譯器生成的警告和錯(cuò)誤消息。

No such problem: 可能由于你提交了一個(gè)不存在的題目ID或者此題目當(dāng)前處于不可用狀態(tài)

System Error : 你的程序無(wú)法運(yùn)行。比如你的程序請(qǐng)求了硬件限制之上太多的內(nèi)存。

Validate Error: 特別判定程序在檢查你的輸出時(shí)出錯(cuò),意味著特別判定程序可能存在缺陷,請(qǐng)聯(lián)系管理員,當(dāng)然也有可能是你的程序的問(wèn)題。

?

Q : 時(shí)間限制是1000MS,但是有些人的程序幾秒鐘才運(yùn)行完,仍然得到Accepted

A : 大多數(shù)這樣的程序都是java程序,Java程序的時(shí)間限制放寬到總時(shí)間限制的三倍。并且對(duì)于每個(gè)輸入文件處理額外給出150MS的時(shí)間。

?

Q : 我的程序只比時(shí)間限制慢了15MS,怎樣才能提升?

A : 大多數(shù)情況下你的程序?qū)嶋H比時(shí)間限制更慢,因?yàn)樵诔^(guò)時(shí)限時(shí)判定程序?qū)⒔Y(jié)束你的程序進(jìn)程。通常這會(huì)產(chǎn)生15MS。通用的性能提升技巧在于使用有效的算法。

如何使用Java語(yǔ)言參加ACM


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 永州市| 佳木斯市| 通许县| 黄浦区| 茌平县| 永新县| 亚东县| 嘉祥县| 乌苏市| 峨边| 永清县| 云浮市| 龙海市| 子洲县| 五家渠市| 油尖旺区| 丰顺县| 汽车| 隆回县| 正定县| 静乐县| 广昌县| 石渠县| 龙井市| 柘城县| 松滋市| 霍林郭勒市| 阿图什市| 苗栗市| 姜堰市| 东乌珠穆沁旗| 贡觉县| 泽库县| 达日县| 长寿区| 茶陵县| 右玉县| 柏乡县| 合江县| 将乐县| 恭城|