当前位置:   article > 正文

2024年睿抗机器人开发者大赛(RAICOM)CAIP-编程技能赛-本科组省赛_题解_睿抗机器人开发者大赛(raicom)caip

睿抗机器人开发者大赛(raicom)caip

本人分数:

10+15+17+1+30=73 九百多名次,省一

情况:

接近七千人比赛,前二十多分钟进不去,炸掉了,官方补时20min.

7.15比赛,ioi赛制,这么长时间出废物榜单,7.23出来错误榜单,漏了好几百人,群里所有人都在骂,7.24才出来第二遍的成绩。

官方群里的cy老师语录:

全是乐子

RC-u1 热҈热҈热҈  分数 10

热҈热҈热҈……最近热得打的字都出汗了!

幸好某连锁餐厅开启了气温大于等于 35 度即可获得一杯免费雪碧的活动。但不知为何,在每个星期四的时候,这个活动会暂停一天……

现在给定连续的若干天的气温情况以及给定的第一天是星期几,请你算出有多少天你可以喝到免费的雪碧,又有多少天是因为星期四而导致你喝不到雪碧的。

输入格式:

输入第一行是两个正整数 N, W (1≤N≤50,1≤W≤7),表示给定连续的 N 天,下面给定的第一天是星期 W(7 等于星期天)。

接下来的一行给出 N 个用一个空格隔开的、小于 60 的整数,第 i 个数表示第 i 天的温度。保证温度大于等于 -273 度。

输出格式:

输出两个数,第一个是你能喝到免费雪碧的天数,第二个是你本来能喝到免费雪碧、但因为是星期四而无法喝到的天数。

输入样例:

  1. 15 3
  2. 33 35 34 36 37 40 32 31 30 29 28 29 33 38 40

输出样例:

5 1

代码长度限制 16 KB

时间限制 400 ms

内存限制 64 MB

栈限制 8192 KB

满分:

  1. import java.util.Scanner;
  2. public class Main {
  3. public static void main(String[] args) {
  4. Scanner sc = new Scanner(System.in);
  5. int N = sc.nextInt();
  6. int W = sc.nextInt();
  7. int[] t = new int[N];
  8. for (int i = 0; i < N; i++) {
  9. t[i] = sc.nextInt();
  10. }
  11. int[] result = countSpritedays(N, W, t);
  12. System.out.println(result[0] + " " + result[1]);
  13. }
  14. public static int[] countSpritedays(int N, int W, int[] t) {
  15. int free = 0;
  16. int thurs = 0;
  17. for (int i = 0; i < N; i++) {
  18. int temperature = t[i];
  19. int dayOfWeek = (W + i -1) % 7 + 1; // 计算当前星期几
  20. if (temperature >= 35) {
  21. free++;
  22. // System.out.println(dayOfWeek+ " " + i+ " " + temperature);
  23. }
  24. if (dayOfWeek == 4 && temperature >= 35) {
  25. thurs++;
  26. free--;
  27. }
  28. }
  29. return new int[]{free, thurs};
  30. }
  31. }

RC-u2 谁进线下了?   分数 15

Xepa Legends 是一个第一人称射击类大逃杀(“吃鸡”)游戏,每轮游戏共有 20 支 3 人小队参加,最后获胜的队伍被称为“捍卫者”。

最近 Xepa Legends 举行了亚太地区南赛区的线上比赛,争夺 7 个前往德国曼海姆参加线下赛的资格,国内共有 14 支队伍参与到了其中。

因为比赛十分激烈,直到最后谁进了线下仍有巨大的疑问。

小 K 喜欢的国内知名战队 DreamTear 因其队内选手杀马特表现不佳,正好卡在出线分数前后,请你赶紧帮帮小 K,计算一下最后的分数情况,看看他喜欢的战队出线了没有吧!

Xepa Legends 的比赛共进行 N 场游戏,在每场游戏中,每支队伍在游戏中会获得一个排名和一个杀敌数(击败其他队伍玩家的数量),

一支队伍在一场游戏的得分为杀敌数+排名分,排名分由队伍当场的排名根据以下表格求得:

排名 分数

第一名 12 分

第二名 9 分

第三名 7 分

第四名 5 分

第五名 4 分

第六名至第七名 3 分

第八名至第十名 2 分

第十一名至第十五名 1 分

第十六名至第二十名 0 分

例如,

DreamTear 战队在第三场比赛获得了第三名、有 6 个杀敌数,那么他们将获得 7 + 6 = 13 分;

KV 战队在第二场比赛获得了第 19 名、有 1 个杀敌数,那么他们将获得 0 + 1 = 1 分;

SRN 战队在第四场比赛获得了第 1 名、有 9 个杀敌数,那么他们将获得 12 + 9 = 21 分。

注:本题与实际情况无关,所有比赛规则、队伍、队员名称均为虚构。

输入格式:

输入第一行是一个正整数 N (≤20),表示有 N 场比赛。

接下来有 N 部分输入,每部分是一场比赛的情况。

对每一场比赛,信息共分 20 行,第 i 行(i=1,⋯,20)给出的两个非负整数 p 和 k 表示第 i 支队伍在这场比赛里获得了第 p 名、杀敌数为 k。

数据保证所有给定的情况中,排名永远大于等于 1 且小于等于 20,杀敌数小于等于 57。

输出格式:

输出 20 行,按编号从小到大依次输出队伍的编号及该队全部游戏结束时的总分。

输入样例:

  1. 3
  2. 6 2
  3. 7 3
  4. 11 5
  5. 10 1
  6. 2 9
  7. 5 8
  8. 14 3
  9. 4 3
  10. 1 6
  11. 18 1
  12. 12 1
  13. 20 0
  14. 13 0
  15. 3 2
  16. 16 4
  17. 8 1
  18. 19 0
  19. 9 4
  20. 17 1
  21. 15 0
  22. 8 2
  23. 19 1
  24. 12 2
  25. 1 9
  26. 10 1
  27. 7 5
  28. 18 0
  29. 14 0
  30. 5 2
  31. 4 4
  32. 2 5
  33. 6 2
  34. 16 3
  35. 13 1
  36. 20 0
  37. 3 7
  38. 9 3
  39. 15 0
  40. 17 5
  41. 11 3
  42. 18 0
  43. 5 2
  44. 2 9
  45. 9 4
  46. 4 7
  47. 10 3
  48. 16 0
  49. 1 6
  50. 20 0
  51. 15 1
  52. 6 0
  53. 3 6
  54. 14 3
  55. 7 4
  56. 19 0
  57. 17 0
  58. 8 9
  59. 11 0
  60. 13 5
  61. 12 0

输出样例:

  1. 1 9
  2. 2 13
  3. 3 27
  4. 4 30
  5. 5 33
  6. 6 25
  7. 7 4
  8. 8 27
  9. 9 24
  10. 10 12
  11. 11 19
  12. 12 18
  13. 13 8
  14. 14 18
  15. 15 4
  16. 16 17
  17. 17 16
  18. 18 8
  19. 19 12
  20. 20 6

代码长度限制 16 KB

时间限制 400 ms

内存限制 64 MB

栈限制 8192 KB

满分:

  1. import java.util.Scanner;
  2. public class Main {
  3. public static void main(String[] args) {
  4. Scanner sc = new Scanner(System.in);
  5. int[] arr = new int[20];
  6. int n = sc.nextInt();
  7. int[] res = new int[21];
  8. //忘记那个数组怎么新建了声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
    推荐阅读
    相关标签