弹指间计算机协会 2021“码拉松”程序设计竞赛

简介: 弹指间计算机协会 2021“码拉松”程序设计竞赛

1.HELLO UJSCODERS!

Description

输出“Hello UJScoders!”

Input

Output

输出“Hello UJScoders!”

Sample Input 1

Sample Output 1

Hello UJScoders!

题解

#include <iostream>
using namespace std;
int main()
{
  cout<<"Hello UJScoders!";
  return 0;
}

2.西瓜好坏

Description

大一的期末考试考完后,还不能直接回家。因为还有课程设计要做。

潘老师和曹老师买了50000 5000050000个西瓜,只知道其中的十几个西瓜是否为好瓜,剩下的西瓜的好坏无法判断。于是,潘老师和曹老师就通过那十几个已知好坏的西瓜,让同学们研究出一套方案,去判断剩下的西瓜是否为好瓜。

社长当年爆肝7天,终于将这套方案研究了出来。如图所示:

Input

一个西瓜的纹理、密度值、触感

Output

“好瓜”或“坏瓜”

Sample Input 1

清晰 0.4 硬滑

Sample Output 1

好瓜

题解

#include<iostream>
#include<string>
#include<string.h>
using namespace std;
int main()
{
  string a;
  double b;
  string c;
  cin >> a >> b >> c;
  if (strcmp(a.c_str(), "清晰")==0)
  {
    if (b <= 0.3185)
      cout << "坏瓜";
    else
      cout << "好瓜";
  }
  else if (strcmp(a.c_str(), "稍糊")==0)
  {
    if (strcmp(c.c_str(), "硬滑")==0)
      cout << "坏瓜";
    else
      cout << "好瓜";
  }
  else
    cout << "坏瓜";
}

3.A+B

Description

输入两个数AB

输出它们的和A+B

Input

两个整数,AB

Output

一个整数

Sample Input 1

1 1

Sample Output 1

2

Hint

人生苦短,我用python

题解

A,B = map(int, input().split())
C = A+B
print(C)

4.荒岛求生

Description

小明流落荒岛。荒岛的原始人已经会铸造硬币了,但原始人使用的货币只有两种面额。

例如,原始人使用的硬币只有3元和5元两种面额。

小明在购买货物的时候,只能用这两种面额的硬币。有的时候,小明付账不能被找钱结清,比如小明要买4元钱或7元钱的货物。事实上,最大的不能找钱结清的商品价格就是7元。大于等于8元钱的货物都能被3元和5元的硬币凑出来。

问:如果原始人只用A元和B元两种面额的硬币,最大的不能找钱结清的商品价格是多少?

Input

两个正整数,A和B

Output

一个正整数,代表结果

Sample Input 1

3 5

Sample Output 1

7

题解

a, b = (input().split())
a = int(a)
b = int(b)
print(a*b-a-b)

5.筛选数字

Description

我们通过一种办法筛选数字,被剩下的数被称为“存活数”。

首先从1开始写出自然数1,2,3,4,5,6,....

1 11就是第一个“存活数”。

我们从2 22这个数开始。把所有序号能被2 22整除的项删除,数列变为:

1_3_5_7_9....

重新记序:

135791113151719 。这时,3为第2个“存活数”,然后把所有能被3整除的序号位置的数删去。删除的数是511,17,...

数列又有变化:

137913151921252731333739

此时7为第3个“存活数”,然后再删去序号位置能被7 77整除的(19,39,...)

最后剩下的数列类似:

1,3,7,9,13,15,21

Input

输入两个正整数mn, 用空格分开(m<n<10001000)

Output

程序输出 位于mn之间的存活数的个数(不包含mn)。

Sample Input 1

120

Sample Output 1

5

题解

#include<iostream>
#include<cstring>
#include<cmath>
using namespace std;
const int MAXN = 100001;
void rearrange(int* arr, int *arrdel,int &len) {
  int cur = 1;
  for (int i = 1; i <= len - 1; i++) {
    if (arrdel[i] == 0) {
      arr[cur] = arr[i];
      cur++;
    }
  }
  len = cur;
  memset(arrdel, 0, MAXN);
}
int main() {
  int m, n;
  int sum=0;
  cin >> m >> n;
  int arr[MAXN];
  int arrdel[MAXN];
  int len = MAXN;
  for (int i = 0; i <= MAXN; i++) {
    arr[i] = i;
    arrdel[i] = 0;
  }
  for (int i = 0; i <= MAXN / 2; i++) {
    arrdel[2 * i] = 1;
  }
  rearrange(arr, arrdel, len);
    for(int loop=2;loop<=n;loop++){
        int todel=arr[loop];
        for (int i = 1; i <= MAXN / todel; i++)
            arrdel[todel * i] = 1;
        rearrange(arr, arrdel, len);
  }
  for(int i=1;i<MAXN;i++)
    if(m<arr[i]&&arr[i]<n)
            sum++;
    cout<<sum;
}

6.逃离迷宫

Description

社长被困到了一个迷宫中。迷宫由nm列的密室组成。

这些密室的编号就像矩阵的编号一样。如图所示

社长要逃离这个迷宫,就需要从左上角的(1,1)号密室,走到(n,m)号密室。

社长只能向右或者向下走。

注意,如果行号和列数都能被3 33整除,则有机关陷阱!!!不能走入这一格中!

问社长有多少种办法可以逃离迷宫。

Input

两个整数nm

Output

一个整数,代表社长能逃离迷宫的方案数目。

Sample Input 1

2 3

Sample Output 1

3

#include<iostream>
using namespace std;
int main()
{
  int n,m,map[100][100],i,j;
  cin>>n>>m;
  for (i=0;i<=n+1;i++)
    for (j=0;j<=m+1;j++)
    {
      if (i==0||j==0) {
      map[i][j]=-1;}else
      {
        if (i%3==0&&j%3==0)
          map[i][j]=-1;
        else
        map[i][j]=0;
      }
    }
  for (i=1;i<=n;i++) map[i][1]=1;
  for (i=1;i<=m;i++)map[1][i]=1;
  for (i=2;i<=n;i++)
    for (j=2;j<=m;j++)
    {
      if (map[i][j]!=-1)
      {
        if (map[i-1][j]>0&&map[i][j-1]>0)
        {
          map[i][j]=map[i-1][j]+map[i][j-1];
        }else
        {
          map[i][j]=map[i-1][j]+map[i][j-1]+1;
        }
      }
    }
    if (n%3==0&&m%3==0)cout<<0;else cout<<map[n][m];
}

7.星际穿越

Description

小明发明了宇宙飞船,可以进行星际穿越。每次航程都会从一个虫洞跃迁到另一个虫洞。

宇宙的所有虫洞围成了一个大圆圈,虫洞总数为n,顺时针标序号为:0,1,2,......n1,而宇宙飞船每次跃迁的距离为d。例如,小明能从第0个虫洞开始跃迁到第d个虫洞而不能跃迁到这两个虫洞之间的任一虫洞。因为虫洞围成了一个圈,所以小明也可以从n1号虫洞跃迁到d1号虫洞,从n2号虫洞跃迁到d2号虫洞,以此类推。

现在小明所在的虫洞记为x,而小明想去的虫洞在y

小明要跃迁多少次才能到达目的地?

注意:小明只能在顺时针方向上跃迁。

Input

输入多组测试数据。

第一行是一个整数M,即:输入M组测试数据。

接下来M MM行,每行包括4 44个数。分别为虫洞总总数量n,跃迁的距离d,小明的初始位置x和小明的终点位置y

Output

对于每组测试数据,输出一行,给出小明至少跃迁多少次才能到达目的地。

如果无论翻跃迁多少次也不能到达,输出 Impossible。

Sample Input 1

2

3 2 0 2

3 2 0 1

Sample Output 1

1

2

#include<iostream>
using namespace std;
long long exgcd(long long a, long long b, long long& x, long long& y) {
    if (b == 0) {
        x = 1; y = 0;
        return a;
    }
    long long d = exgcd(b, a % b, y, x);
    y -= a / b * x;
    return d;
}
int main() {
    int t;
    cin >> t;
    while (t--) {
        long long n, d, x, y,a,b;
        cin >> n >> d >> x >> y;
        long long gcd = exgcd(n, d, a, b);
        if ((y - x) % gcd != 0) {
            cout << "Impossible" << endl;
            continue;
        }
        b = b * (y - x) / gcd;
        n = n / gcd;
        cout << ((b % n) + n) % n<<endl;
    }
    return 0;
}


目录
相关文章
|
存储 Oracle Unix
关于小机 | 计算机百年趣味史(上)第8篇
小机即小型机(minicomputer),从名字上我们可以知道是体积会较小的机器,不过体积也是针对大机(mainframe)来说是,如果光从绝对体积上讲,那显然又不对。所以,小机是对特定时代一群类似机器的统称。我们来看下小机的关键历史。其历史时间是与大型机并行的。
2490 0
关于小机 | 计算机百年趣味史(上)第8篇
|
算法
孜孜不倦,上下求索——悼念原复旦大学计算机学院朱洪教授
上海交通大学软件学院副教授李停舟发微博称,原复旦大学计算机系教授朱洪1月27日逝世。朱洪教授是我国知名算法理论专家,也是复旦大学计算机科学技术学院40多年发展的亲历者和建设者。本文将朱洪教授在复旦工作的经历进行编辑,以念逝者。
3630 0
|
存储 人工智能 自然语言处理
2022021第二届青少年计算机知识竞赛
2022021第二届青少年计算机知识竞赛
146 0
|
量子技术
清华大学计算机系成立量子软件研究中心,应明生受聘为主任
清华大学计算机系成立量子软件研究中心,应明生受聘为主任
179 0
清华大学计算机系成立量子软件研究中心,应明生受聘为主任
|
机器学习/深度学习 人工智能 移动开发
弹指间计算机协会 2021“千里码”程序设计竞赛 题面
弹指间计算机协会 2021“千里码”程序设计竞赛 题面
121 0
弹指间计算机协会 2021“千里码”程序设计竞赛 题面
|
C++
弹指间计算机协会 X Five Pines Robomaster实验室 考核题面与题解(一)
弹指间计算机协会 X Five Pines Robomaster实验室 考核题面与题解
134 0
弹指间计算机协会 X Five Pines Robomaster实验室 考核题面与题解(一)
|
机器人
弹指间计算机协会 X Five Pines Robomaster实验室 考核题面与题解(三)
弹指间计算机协会 X Five Pines Robomaster实验室 考核题面与题解
114 0
弹指间计算机协会 X Five Pines Robomaster实验室 考核题面与题解(三)
|
人工智能 测试技术
弹指间计算机协会 X Five Pines Robomaster实验室 考核题面与题解(二)
弹指间计算机协会 X Five Pines Robomaster实验室 考核题面与题解
152 0
弹指间计算机协会 X Five Pines Robomaster实验室 考核题面与题解(二)
英国《物理世界》杂志评选出世界十大物理学家
英国《物理世界》杂志评选出了人类有史以来10位最伟大的物理学家。他们是:1.爱因斯坦; 2.牛顿; 3.麦克斯韦; 4.玻尔; 5.海森伯格; 6.伽利略; 7.费曼; 8.狄拉克; 9.薛定鄂; 10.卢瑟福。
1924 0
下一篇
无影云桌面