欢迎加入西电微软俱乐部招新群 588166170,做出福利题,免技术部第一次面试且赠送“福利”海报或小礼品~~~~
Xidian Online Judge WebBoard
[ New Thread ]
MainBoard >> ACM新手必看
adminlight @ 2015-05-05 17:51:18
[ Quote ] [ Edit ] [ Delete ] 1#
1.请仔细查看主页上的所有信息,这些会解决你们很多的问题。
2.关于时间复杂度和空间复杂度。时间复杂度为你计算一个问题所需计算次数的数量级,比如:
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++) ans++;
这样的程序由于主循环循环了n次,次循环也循环了n次,所以他的时间复杂度为O(n^2)。再比如:
for(int i=1;i<=n;i++) ans++;
for(int j=1;j<=n;j++) ans++;
这样的程序由于i和j都非嵌套的循环,所以运行的次数一共是2n,时间复杂度是O(n)。
空间复杂度为你这个程序所需的空间大小,要注意题目中的空间限制,不要使自己的数组开得过分大,比如100000000的数组一般是开不出来的。
3.时间限制:一般的题目时间要求为1秒,个别会有其他的要求,以1秒为例,差不多1秒能运行1亿次,换句话说,如果n为1000,你可以使用O(n^2)的算法而不可以使用O(n^3)的算法,否则就会出现TLE(时间超限),同样,如果n为100,000,你就不能够选用O(n^2)的算法,只能够使用一些更快的算法是运行次数控制在1亿以内,比如O(nlogn),O(n)……
4.ACM的核心是算法,所谓算法,一个很粗略的理解就是使你们的程序跑得更快。比如快速排序的复杂度为O(nlogn)就比选择排序、冒泡排序O(n^2)要快。
5.如果看到你从来没有听说过的名词,请自行百度。
6.题目或者数据只有很小的几率会出现错误,所以当你的程序返回WA(结果错误)的时候,99.99999%是你程序的问题。
7.样例只是辅助你理解的工具,和测试数据没有太大关系,所以不要认为样例过了测试数据就能过。
8.提交的时候注意选对语言,特别是C和C++。
adminlight @ 2015-05-06 12:24:47
[ Quote ] [ Edit ] [ Delete ] 2#
错误原因:
JE:评测机错误,方法:重交一次
CE:编译错误,方法:检查你的程序有没有语法错误或者选错语言,最好不要使用VC
WA:答案错误,方法:你的程序的输出和答案不一样,请仔细思考并debug你的程序
TLE:时间超限,方法:可能是因为你的算法不够快,想一些更快的方法,也有很小可能是程序出现死循环
MLE:空间超限,方法:检查你的数组是否开得过大。
RE:运行错误,方法:溢出(数组溢出,递归爆栈,除0),不建议递归次数太大,反正10w层会炸
PE:格式错误,方法:你遇到这个错误就说明你的程序快要对了,PE可能是因为你在输出时多(少)了一个回车或者在某些地方多(少)了一个空格……
OLE:输出超限,方法:你的代码输出太多东西了,检查代码是否多输出了不需要输出的东西
[Top] [Previous Page] [Next Page]
Anything about the Problems, Please Contact Admin:admin
All Copyright Reserved 2010-2014 Xidian ACM Online Judge TEAM
GPL2.0 2003-2014 HUSTOJ Project TEAM