常见问题及解答

English


问:为什么系统提示我无法上传题目?

答:只有超级管理员和高级用户(在本系统解答题目超过300题,且总难度值超过30万)才允许上传题目。


问:提交完代码后系统返回了结果,那些结果表示什么意思呢?

答:程序各种运行结果的含义如下:

Waiting: 系统正在做评判的准备工作,这个过程不会太久,请您稍等片刻再刷新浏览器

Judging: 系统正在评判你的程序,最多几秒钟后您就能看到最终的评判结果

Accepted: 您的程序是正确的,恭喜!

Presentation Error: 虽然您的程序貌似输出了正确的结果,但是这个结果的格式有点问题。请检查程序的输出是否多了或者少了空格(' ')、制表符('\t')或者换行符('\n')。

Wrong Answer: 你的程序正常运行并输出了结果,不过是答案错误

Runtime Error: 运行时错误,这个一般是程序在运行期间执行了非法的操作造成的。以下列出常见的错误类型:

Runtime Error(ARRAY_BOUNDS_EXCEEDED) //数组越界

Runtime Error(DIVIDE_BY_ZERO) //除零

Runtime Error(ACCESS_VIOLATION) //非法内存访问

Runtime Error(STACK_OVERFLOW) //堆栈溢出

Time Limit Exceeded: 您的程序运行的时间已经超出了这个题目的时间限制。

Memory Limit Exceeded: 您的程序运行的内存已经超出了这个题目的内存限制。

Output Limit Exceeded:你的程序往控制台输出了太多信息,请检查程序是否死循环 。

Compile Error: 您的程序语法有问题,编译器无法编译。具体的出错信息可以点击链接查看。

System Error: OJ内部出现错误。由于我们的OJ可能存在一些小问题,所以出现这个信息请原谅,同时请及时与管理员联系。

以下两个为Special Judge题目特有,一般与Judge程序不够健壮有关(当然很大的可能用户的结果是错误的),如发现这样的反馈,请告知管理员:

Judge Delay:评判时间过长,强制终止评判 。

Judge Error:一般不会发生这样的错误,因为这代表Judge程序本身是错的,不过有备无患吧^_^。


问:系统使用的编译环境是怎样的?需要特别注意什么吗?

答:本系统运行于Windows平台,内置九种编译环境,支持C/C++/Java/Pascal/C#/Python六种语言,有关编译器的注意事项有:

1、GCC,,G++ 分别为GNU组织提供的C 和C++语言的编译器,与常用的VC有少许不同,主要有main 函数必须返回int 类型的数据 。

1001题解答如下:

G++:

#include <iostream> using namespace std; int main() { int a,b; cin >> a >> b; cout << a+b << endl; return 0; }

GCC,C89标准, 如不能在for中定义变量,类似for(int i=0;i<n;i++):

#include <stdio.h> int main() { int a,b; scanf("%d %d",&a, &b); printf("%d\n",a+b); return 0; }

Java(JDK 1.5):

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

Pascal:

var a,b:Integer; begin Readln(a,b); Writeln(a+b); end.

C#:

using System; public class TOJ1001 { private static void Main() { int a = int.Parse(Console.ReadLine()); int b = int.Parse(Console.ReadLine()); Console.WriteLine(a+b); } }

Python2:

a=raw_input() b=raw_input() print int(a)+int(b)

Python3:

a=input() b=input() print(int(a)+int(b))

C++17(可以使用C++新特性):

#include<bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(false);//关闭输入输出同步流 cin.tie(0); cout.tie(0); int a,b; cin>>a>>b; auto x1{a}, x2{b}; cout<<x1+x2<<endl; return 0; }

注意在使用万能头文件时,若输入输出数据量较大,建议关闭同步流且使用C++ I/O;
若使用万能头文件stdc++.h或cstdio头文件,同时使用C I/O可能会导致速度较慢,建议使用stdio.h


问:有些题目要求“多组测试数据”,我应该怎样处理这样的数据输入?

答:举例说明多组数据输入的问题如下

题号:1002

解答:

#include <stdio.h> int main() { int n,i,a,b; scanf("%d",&n); /*先输入测试组数*/ for(i=0;i<n;i++) { scanf("%d %d",&a,&b); if(a>b) printf("%d\n",a); else printf("%d\n",b); } }

说明:

1、样例输入了“1 2”和“3 4”两行,但这只是“样例”,实际可能有很多行;

2、样例输出为“3”和“7”,分别对应样例输入的“1 2”和“3 4”,

但要注意:不要以为输入完成后,才开始输出;而是:输入一行“1 2”后输出一行“3”,

再输入一行“3 4”,输出“7”,直到结束;

因为“1 2”和“3 4”两行是无关的,属于两组独立的测试用例。

解答:

#include <stdio.h> int main() /*注意这里需要 int 类型,并非“void main()”*/ { int a,b; while(scanf("%d %d",&a,&b)!=EOF) /*判断输入是否结束*/ { printf("%d\n",a+b); /*每接受一行输入后,马上运算,把结果输出*/ } }

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

题号:1077

解答:

#include <stdio.h> int main() { int n,i,a,b; scanf("%d",&n); /*先输入测试组数*/ for(i=0;i<n;i++) { scanf("%d %d",&a,&b); printf("%d\n",a+b); } }

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

题号:1078

解答:

#include <stdio.h> int main() { int a,b; while(1) { scanf("%d %d",&a,&b); if(a==0 && b==0)break; /*输入结束标志*/ printf("%d\n",a+b); } }

或利用逗号表达式,简化判断:

#include <stdio.h> int main() { int a,b; while(scanf("%d %d",&a,&b), a!=0 || b!=0) { printf("%d\n",a+b); } }

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

题号:1079

解答:

#include <stdio.h> int main() { int a,b,k=0; while(1) { scanf("%d %d",&a,&b); if(a==0 && b==0)break; /*输入结束标志*/ if(k)printf("\n"); /*每组数据之间保留一个空行*/ printf("%d\n",a+b); k=1; } }

或:

#include <stdio.h> int main() { int a,b,k=0; while(scanf("%d %d",&a,&b), a!=0 || b!=0) { if(k)printf("\n"); /*每组数据之间保留一个空行*/ printf("%d\n",a+b); k=1; } }

问:有些题目标有“Special Judge”,这是什么意思呢?

答:有的题目可能会有答案不唯一的情况,这时会使用一个Special Judge程序提取用户的答案并判断对错,用户无须知道Special Judge的评判细节,只有一个需要注意的地方,即为简化评判,Special Judge程序一般不评判Presentation Error,请务必保证输出格式的正确。


问:我想参加TZOJ的在线比赛,如何参加比赛呢?

答:TZOJ两种类型的比赛:一种是public公开比赛,另外一种是private内部比赛。所有注册用户均可以参加公开的比赛, 内部比赛需要用户报名并通过管理员审核才可以参加。
 


问:如何使用64位整数类型?

答:服务器支持64位有符号和无符号类型的整数。

  • 有符号型64位整数,值域为:-9223372036854775808 .. 9223372036854775807。

     
    语言 GCC C++ Pascal
    类型名称 __int64, long long __int64, long long int64
    输入方法 scanf("%I64d", &x); scanf("%lld", &x); cin>>x; read(x);
    输出方法 printf("%I64d", x);printf("%lld", x); cout<<x; write(x);

     
  • 无符号型64位整数,值域为:0 .. 18446744073709551615。

     
    语言 GCC C++ Pascal
    类型名称 unsigned __int64, unsigned long long unsigned __int64, unsigned long long qword
    输入方法 scanf("%I64u", &x); scanf("%llu", &x); cin>>x; read(x);
    输出方法 printf("%I64u", x);printf("%llu", x); cout<<x; write(x);
|返回 |
Copyright © 2008-2025 (浙ICP备2022001332号), TZOJ. All Rights Reserved.
2017-2025 台州市非普软件技术有限公司,浙江省台州市君悦大厦B幢1603室