标题：JOJ
百科名片
  JLU OJ　　joj 是“吉林大学在线评测系统”（JiLin University Online Judge System）的缩写，是个提供编程题目的网站。目前网站共有程序设计题目2700多道。
简介
joj(JiLin University Online Judge System)，吉林大学 ACM 竞赛在线提交系统，建立于 2002 年 12 月 18 日，吉林大学程序设计在线提交与测试系统是一个免费的公益性网上程序设计题库，目前网站已经拥有上千道各种类型与难度的程序设计题目和完善的在线测试与积分系统，是吉林大学学生提高动手能力的理想平台，也是学校 ACM 选手备战大赛的重要环节。
ACM/ICPC简介
ACM/ICPC(ACM International Collegiate Programming Contest, 国际大学生程序设计竞  ACM/ICPC赛)是由国际计算机界历史悠久、颇具权威性的组织ACM（Association for Computing Machinery，美国计算机协会）主办的，世界上公认的规模最大、水平最高的国际大学生程序设计竞赛，其目的旨在使大学生运用计算机来充分展示自己分析问题和解决问题的能力。1970年在美国Texas a&m大学举办了首次区域比赛，从而拉开了国际大学生程序设计竞赛的序幕。因历届竞赛都汇聚了世界各大洲的程序设计精英，云集了计算机界的“希望之星”，而受到国际各知名大学的重视，并受到全世界各著名计算机公司的高度关注，成为世界各国大学生最具影响力的国际级计算机类的赛事。
吉林大学ACM程序设计竞赛
历史成绩2006年以前，吉林大学于2002、2003、2004、2005年参加亚洲预赛，分别在这八个赛区中取得学校排名第16、第17、第12、第9，第7、第18，第21，第17，共获得银奖2块、铜奖6块，竞赛成绩不断稳步提高。
参赛对象1、凡吉林大学在校本专科生均可报名参加。年级、专业不限。鼓励低年级同学参加。
2、比赛学生以个人身份参加，每人独立参赛。
3、参赛同学应在竞赛网站上注册参加热身赛，在报名时提供个人资料。
4、参赛同学应保证自己身份等资料的真实性。
5、以往学校代表队同学成绩不影响其他同学排名及奖励。
竞赛细则1、选手在参赛时携带个人证件。
2、竞赛以上机为比赛方式。
3、竞赛中至少命题6题，至多命题10题，上机比赛时间为5个小时，中间不休息。
4、参赛选手可以携带诸如书籍、字典、手册、程序清单等文字性参考资料。
5、参赛选手不能携带任何可用计算机处理的软件或数据(不允许任何私人携带的磁盘或计算器)。
6、参赛选手不能携带任何类型的通讯工具，包括无线电接收器、移动电话等。
7、选手未解决全部题目不得提前离场
8、竞赛的预定时间为5小时，但当竞赛进行一定时间后，竞赛裁判可以因为出现不可预见的事件而调整比赛时间长度，一旦比赛时间长度发生改变，将会以及时并且统一的方式通告所有参赛选手。
9、当参赛选手出现妨碍比赛正常进行的行为时，诸如擅自移动赛场中的设备，未经授权修改比赛软硬件，干扰他人比赛等，都将会被竞赛裁判取消参赛资格。
试题与交流
1、竞赛中至少命题6题，至多命题10题。题目的次序不代表任何含义，选手可以自由选择题目解答。
2、试题将以书面形式提供，每人一套，同时提供电子版。
3、在竞赛过程中，参赛选手不得和其他选手交流。
4、对于机器、环境等其他问题，选手可以与工作人员联系。系统支持人员可以回答和系统相关的问题，例如解释系统错误信息。
5、对于试题本身的问题可以通过提交程序向裁判提问，裁判根据情况予以解答。裁判认为必要时，将会通知所有选手。
6、比赛的试题及与裁判之间的交流使用的语言为英语。与工作人员交流使用汉语。
竞赛评分
1、正确解答中等数量以上试题的选手会根据解题数目进行排名，解题数在中等数量以下的选手只发布解题数量，不进行排名。
2、在进行排名时，如果多人解题数量相同，则根据总用时加上惩罚时间进行排名。总用时和惩罚时间由每道解答正确的试题的用时之和加上惩罚时间之和而成。每道试题用时将从竞赛开始到试题解答被判定为正确为止，期间每一次错误的运行将被加罚20分钟时间。未正确解答的试题不记时，对应的错误运行也不计入惩罚时间。
3、选手在比赛期间不能看到排名表和他人的成绩、解决的问题。
4、比赛中每一道题目对应一种颜色的气球（颜色的对应在试题中注明）。在选手正确解答出某道题目后，工作人员将会把对应颜色的气球插到此同学的位置旁。
5、比赛结束前一个小时内，将不再为正确的解答摆放气球。
6、请注意竞赛裁判决定解答提交是否正确需要一定的时间。
7、参赛选手在竞赛时由裁决软件系统随机确定座位。
竞赛环境和竞赛语言
1、竞赛语言包括C++、C、JAVA和PASCAL。
2、每个参赛者使用一台计算机，所有参赛计算机的规格配置完全相同，选手使用MS VC++6语言环境，服务端配置同热身赛环境。注
3、选手的座位分布由组织者随机指派，在比赛之前确定，并通知选手。
4、吉林大学ACM/ICPC网站现提供一千余道练习题目以及在线自动判题系统，报名者可在本网站注册后进行练习，并参加热身赛。
5、试题的解答提交裁判称为运行，每一次运行会被判为正确或者错误，判决结果会立即通知参赛队伍。
竞赛评奖
比赛设一等奖，约3名；二等奖，约5名，三等奖，约10名。其他成绩较好的同学将获得纪念奖。往年学校代表队成员不影响新参赛同学排名得奖。
训练重点：基本算法、基本程序设计能力
基本算法
1、高精度计算。计算任意长位数的两数加减乘除四则运算。
参考书目：《国际大学生程序设计竞赛辅导教程》，郭嵩山，北京大学出版社
典型例题：1004 1386 1920 1949
2、数论算法。用欧几里得算法求两整数的GCD、LCM；求解模线性方程；中国余数定理；质因数分解等。
参考书目：《实用算法的分析与程序设计》，吴文虎，清华大学出版社
典型例题：1019 1027 1062 1167
3、组合数学算法。生成集合的全排列（有或没有重复元素）；生成集合的所有子集（有或没有重复元素）；组合计数；递推关系；Polya定理等。
参考书目：《组合数学》，（美）Richard A. Brualdi，机械工业出版社
典型例题：1026 1031 1175 1273
4、常用图论算法。最短路径（单源最短路径、指定两点间最短路径和任意两点间最短路径）；无向图的最小生成树；求任意图的连通分量等。
参考书目：《算法设计技巧与分析》，（沙特）M. H. Alsuwaiyel，电子工业出版社
典型例题：1002 1016 1075 1831
5、计算几何算法。平面上，判断线段相交（两条或一组）；求任意多边形面积；判断给定点是否在多边形内；求凸包的算法等。
参考书目：《计算几何-算法分析与设计》，周培德，清华大学出版社
典型例题：1053 1080 1173 1957
基本程序设计能力
1、熟练运用语言。C/C++常用函数；STL等
参考书目：《C++标准程序库》，（美）Nicolai M. Josuttis，华中科技大学出版社
2、模拟类
典型例题：1034 1035 1060 1086
3、搜索类。深度优先（剪枝）；广度优先
典型例题：1024 1050 1073 1134
每年度吉林大学ACM代表队选拔及培训计划
选拔范围：
1、校内选拔赛的获奖者
2、此后网上竞赛成绩优秀者
3、JOJ做题数量和质量较高者
培训计划：
1、5-6月份，网上单人热身赛
2、暑假集训
3、8月份单人选拔
4、9月、10月组队训练
5、10月、11月参加分区赛
ACM/ICPC常见问题解答
Q(Question)：我能否携带字典、书籍和程序清单？
A(Answer)：可以，建议至少携带一本英文字典。
Q：我能否携带光盘、软盘等存储介质？
A：不能。
Q：我能否携带计算器？
A：不能。
Q：是否提供模拟题？
A：本次比赛不直接提供模拟题，选手可以直接到吉林大学ACM站点的在线测试（JOJ）中作题。站点上的题目与本次比赛在风格、判决方式等方面基本类似，但难度上更高一些。
Q：如果我在比赛过程中对试题有疑问怎么办？
A：可以通过在线的对话系统询问裁判。但请使用英语。
Q：我问裁判的问题，别人能够看到么？
A：一般看不到，当裁判认为这个问题有共性时，可以发布给大家。
Q：在比赛过程中，我能否看到自己的成绩？
A：可以看到自己以前的所有提交过程，包括每次提交的结论和提交时间。但不能看到自己在整个赛场的排名。
Q：在比赛过程中，我能否看到别人的成绩？
A：除了根据气球判断别人解答出的问题外，不能直接看到排名表和别人成绩。
Q：我提交一个解答后，多长时间能够反馈回判决？
A：一般可以马上得出结果。如果超过5分钟仍未有结论，请速与工作人员联系。
Q：如果我的机器出问题怎么办？
A：请速与工作人员联系。请尽量在测试环境阶段发现问题。在正式比赛期间由于机器问题造成的比赛时间延误，一般不追加时间。
Q：在测试环境过程中，我应该干什么？
A：在此阶段，将出一道简单的热身题目，题目的解答与否与比赛成绩没有任何关系。选手应该在此期间熟悉所用机器的环境，检查软硬件是否有问题，并编制程序进行提交，熟悉提交系统的使用方法。可以故意编制一些含有错误的程序，熟悉系统对于错误提交的反馈结果。
Q：提交的解答由谁来判决？
A：本次比赛的提交程序由程序自动判决。在特殊情况下，由裁判判决。
Q：提交的是程序本身还是可执行文件？
A：程序。
Q：我是否可以将程序放到多个文件中？
A：不可以。
Q：是否会因为我的程序书写规范而获得奖励，或者因为程序不易读而遭到惩罚？
A：不会。一切以程序的执行结果为标准，除非特殊情况，否则裁判不会留意你的程序的。
Q：试题对算法有要求么？
A：没有，只要在限制时间内能够正确解答出来就可以。
Q：我的程序的运行时间远远低于要求，这是否作为一个衡量标准？
A：不会。只要在规定的时间内运行正确，都将同样对待。
Q：我已经在纸面上写出了某道题的答案，但由于时间原因没有在计算机上运行，能否给一定的分数？
A：不能。本比赛完全按照在计算机上的程序与运行决定成绩。
关于试题：
Q：这个竞赛都考什么样的试题？
A：本竞赛是关于程序设计方面的竞赛，因此试题类型都是编制程序，解决一个问题。具体样例可以参见acm网站。
Q：题目的难度如何？
A：一般来说，如果在JOJ上能够作出50道左右的题目，那么在本次比赛中应该至少作出两道题。
Q：我一定要按照题目的次序作题么？
A：不。选手可以自由决定作题的次序。试卷中的题目次序与试题难度无关。
Q：我是否要解决所有问题？
A：不必。如果你能解决所有问题，那么可以保证获得金奖了。
Q：要想获得一等奖，需要解决多少道题目？
A：按照我们的估计，大概需要解决三分之二以上的题目。
Q：我只会用PASCAL语言，是否可以参赛？
A：可以，本次竞赛允许使用PASCAL语言。但国际上的ACM竞赛只允许使用C/C++和Java语言，因此如果你想参加吉林大学ACM代表队，还要学习和使用这两种语言，尤其是C++。
Q：在判决时使用的数据是否和试题中的一样？
A：不一样。判决时使用的数据可以是符合题目要求的各种数据。数据量也可能很大。
Q：我需要测试输入数据是否满足输入条件么？
A：不需要。可以保证输入数据都是符合题目中的要求的。
Q：数据从那里输入？输出到哪里？
A：本次比赛的输入输出都是标准输入和标准输出。例如在C/C++中可以直接使用cin, cout。
Q：我在本地如何进行测试？
A：将你的程序编译成可执行文件后（假设为prog.exe），将输入数据写在一个文件中（假设为in.txt）。在命令行模式下，使用文件重定向来测试。例如：
Prog < in.txt。也可以将结果写到另一个文件中，如prog < in.txt > out.txt。这种方式可以读取到文件结束符。
Q：输入输出是否有一定要求？
A：是的。试题中对于输入输出都有严格说明，必须按照这个标准进行。否则程序将不能得到正确结果。
Q：Compiler Error（编译错）是什么含义？
A：这说明你的程序在服务器上出现编译错误，请查看详细信息确定错误的具体内容。并请检查提交时是否选择了正确的语言。
Q：Runtime Error（运行错）是什么含义？
A：这说明你的程序在运行期间出现了某些错误。常见的错误包括：除零错误，数组越界，指针指向的单元不存在等。还有一种可能就是在C/C++中，main函数的返回值不是0。
Q：Time Over（超时）是什么含义？
A：每一个题目都有一个最大运行时间的要求（在试题中明确标出），如果你的程序的运行时间超过这个要求，将被强制停止，并返回这个错误。这种情况可能是由于程序中错误地出现了死循环，也可能是因为你的算法不够优化，这就需要重新设计算法和数据结构。
Q：Output Too Much（输出过多）是什么含义？
A：在系统中，为管理资源，对每个程序的输出数量是有限制的。出现这种情况，一般都是因为程序中错误地出现了死循环，不断输出一些错误结果。
Q：Wrong Answer（结果错）是什么含义？
A：这是一种最常见的错误，也就是说明你的程序的计算出的结果不对。如果你在本地测试正确，则要注意到判决时所使用的可能是各种符合要求的数据，需要考虑你的算法是否考虑到了所有情况。
Q：Presentation Error（格式错）是什么含义？
A：如果输出中只有空格和回车与答案不一样，则返回这个错误。在试题中均有严格说明，请仔细察看题目，尤其是空行。这个错误一般标志算法的基本方案已经正确了，离正确解答只有一步之遥。