[关闭]
@Dmaxiya 2018-06-07T21:50:16.000000Z 字数 4599 阅读 991

选手须知

Hello_World


比赛流程

评测信息

题号 A B C D E F G H I
分值 15 15 15 25 25 25 30 30 45
测试点 10 10 10 10 10 10 20 10 10
分值/测试点 1.5 1.5 1.5 2.5 2.5 2.5 1.5 3 4.5


题号 评测方式
A 忽略行末空格与结尾换行符
B 特殊判定
C 忽略行末空格与结尾换行符
D 忽略行末空格与结尾换行符
E 忽略行末空格与结尾换行符
F 忽略行末空格与结尾换行符
G 忽略行末空格与结尾换行符
H 特殊判定
I 忽略行末空格与结尾换行符


注:

提交方式

每位选手将文件夹“姓名”重命名为自己的名字,在“姓名”文件夹内有每道题对应的 c/cpp 文件,每个选手每道题选择一种语言编写代码提交。
若 A 题选择用 c++ 进行编写,则请删去 A.c 文件,保留 A.cpp 文件。最后提交时选手文件夹内只能含有不多于 6 个 c/cpp 文件,文件名(除去文件后缀后)不得重复。

时间/空间限制

每道题的空间限制为 256M,若程序开辟的空间超过 256M,则该程序视为“内存超出”,若其中一个测试点超出内存,很可能本题的所有测试点都将超出内存,超出内存的测试点不得分。

内存计算方式:
如:一个 int 占用 4 个字节,则 int num[10000000] 占用

每道题的时间限制为 1s,若程序运行的时间超过 1s,则该程序视为“超时”,对于有不同数据范围的题目,程序运行的时间可能是不同的,数据范围越大,程序运行的时间可能越长,所以选手应尽量减少程序的时间复杂度

运行时间计算方式:
如:对 ~ 进行求和,若使用如下代码:

  1. long long sum = 0, i;
  2. for(i = 1; i <= 1000000000LL; ++i) {
  3. sum += i;
  4. }

则程序执行的次数为 ,需要 10s,若使用如下代码:

  1. long long sum = (1 + 1000000000LL) * 1000000000LL / 2;

则程序执行的次数为 ,所需要时间为

实际代码的运行时间可能少于估计值,但本次赛题数据保证:若程序运行次数超过 必然返回超时。

程序说明

本次比赛采用 cena 软件对选手代码进行评测,每道题都已经给出了对应的 .c 与 .cpp 模板文件,以下以 .c 模板文件为例进行说明。

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4. #include <string.h>
  5. /* run this program using the console pauser or add your own getch, system("pause") or input loop */
  6. int main(int argc, char** argv) {
  7. freopen("A.in", "r", stdin);
  8. freopen("A.out", "w", stdout);
  9. fclose(stdin);
  10. fclose(stdout);
  11. return 0;
  12. }

输入/输出

注意上述代码中的

  1. freopen("A.in", "r", stdin);
  2. freopen("A.out", "w", stdout);
  3. fclose(stdin);
  4. fclose(stdout);

其中第一条表示将标准输入流重定向到文件 A.in,后面代码中的 scanf cin getline 等标准输入语句,都将从文件 A.in 中读入;第二条表示将标准输出重定向到文件 A.out,后面代码中的 printf cout 等标准输出语句,都将输出到文件 A.out 中,第三条与第四条是关闭重定向。
对应不同题目,重定向的文件名为 *.in *.out,其中 * 为对应题号,选手可以不必担心该问题,对应题号已经写在对应的模板文件中,无需修改。
这四条语句是用于评测时数据读入与输出:

  1. 选手在写本地代码时可以先将这些语句注释,提交时工作人员将提示取消注释
  2. 若不注释这四条语句,编译链接包含这四条语句的代码,选手需在生成的 *.exe 文件对应路径下新建 *.in 文件,并将输入数据写入该文件内,运行后控制台无输出,输出内容在 *.out 文件中
  3. 选手也可以另外新建文件或工程,编写完代码后再将对应代码复制到模板文件内

示例代码

代码功能为输出

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4. #include <string.h>
  5. /* run this program using the console pauser or add your own getch, system("pause") or input loop */
  6. int n, k;
  7. int num[20];
  8. // 函数示例
  9. int sum() {
  10. int ret = 0, i;
  11. for(i = 1; i <= n; ++i) {
  12. ret += num[i];
  13. }
  14. return ret * k;
  15. }
  16. // 递归函数示例
  17. int Sum(int Index) {
  18. if(Index == 0) {
  19. return 0;
  20. }
  21. return num[Index] * k + Sum(Index - 1);
  22. }
  23. int main(int argc, char** argv) {
  24. freopen("test.in", "r", stdin);
  25. freopen("test.out", "w", stdout);
  26. int i;
  27. scanf("%d%d", &n, &k);
  28. for(i = 1; i <= n; ++i) {
  29. scanf("%d", &num[i]);
  30. }
  31. printf("%d\n", sum());
  32. printf("%d\n", Sum(n));
  33. fclose(stdin);
  34. fclose(stdout);
  35. return 0;
  36. }
  37. /*
  38. test.in
  39. 5 3
  40. 4 6 8 1 2
  41. test.out
  42. 63
  43. 63
  44. */

友情提示

  1. long long LL;
  2. unsigned long long uLL;
  3. double db = 1.23456;
  4. scanf("%lld", &LL);
  5. scanf("%llu", &uLL);
  6. cout << setiosflags(ios::fixed);
  7. cout << setprecision(4) << f << endl;
  8. scanf("%lf\n", &db);
  9. printf("%.4lf\m", db);

数据类型 大致范围
int
long long
unsigned long long
double 精确到小数点后 15 ~ 16 位

比赛结束

比赛结束后工作人员将所有测试数据与标程压缩包和题解上传群文件,所有标程均为 .c 文件,即所有题目都可以用 C 语言解决,不需要 C++ 语言基础。
比赛结束当晚(最晚 27 日)即可判完所有程序,工作人员将上传所有选手的排名分数表,对评测结果有异议的可以联系工作人员(评测结果出错,数据文件出错或者标程出错等,都可以提出),工作人员将给出回复或采取相应措施
选手也可以联系工作人员获取自己每个测试点的得分信息
27 日晚七点之前若无其他异议,则确定一、二、三等奖

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注