题目

  • A.最近距离(签到题)
    • 题目
    • 思路:
    • 代码:
  • B.这是一道特别简单的题目(简单数学题)
    • 题目:
    • 思路:
    • 代码:
  • C.M78星云的字符转换(基础题)
    • 题目:
    • 思路:
    • 代码:
  • D.M78星云的排队事故(前缀和板子题)
    • 题目:
    • 思路:
    • 代码:
  • F.不服气的洁洁学姐(gcd)
    • 题目:
    • 思路:
    • 代码:
  • E.来自M78星云的小测试(进制转换+回文)
    • 题目:
    • 思路:
    • 代码:
  • G.来自M78星云的减法运算(模拟题/彩蛋题)
    • 题目:
    • 思路:
      • python解法(最简单的解法):
        • 代码:
      • c/c++解法(大模拟):
        • 代码:

A.最近距离(签到题)

题目

思路:

只需要判断AB直线是否垂直坐标轴且F点在AB线段之间即可,若不符合:代表A、B点之间的最短路径不止一条,最终结果就为A、B两点的横纵坐标差的绝对值之和;如果符合,则代表A、B点之间的最短路径只有一条,则A到B点是需要绕过F点,则在不符合的条件上加上绕路的距离2。

代码:

#include<iostream>
#include<algorithm>using namespace std;int main()
{int t;scanf("%d",&t);while(t--){int Ax,Ay,Bx,By,Fx,Fy;//读入A、B、F点坐标 scanf("%d %d",&Ax,&Ay);scanf("%d %d",&Bx,&By);scanf("%d %d",&Fx,&Fy);int ans = abs(Bx - Ax) + abs(By - Ay);//计算A、B点的横纵坐标差的绝对值之和 if(Ax == Bx && Bx == Fx && Fy > min(Ay,By) && Fy < max(Ay,By)) ans += 2;//判断是否AB线段垂直与x轴且F点在AB线段之间 if(Ay == By && By == Fy && Fx > min(Ax,Bx) && Fx < max(Ax,Bx)) ans += 2;//判断是否AB线段垂直与y轴且F点在AB线段之间 printf("%d\n",ans);}    return 0;
}

B.这是一道特别简单的题目(简单数学题)

题目:

思路:

让你判断一个数是否有除1以外的奇数因数,只需要将数进行完全的因数分解(分解为全为质数相乘的形式),
发现,只有当因数全为2(换句话说就是这个数是2n)时,没有除1以外的奇数因子。

代码:

#include<bits/stdc++.h>using namespace std;int main()
{long long n; cin >> n;//如果n为整数,就不断/2知道其为奇数    while(n % 2 == 0 ){n /= 2;}//只需要判断这个奇数是否为1,为1证明这个数完全分解的因子全为2,反之亦然 if(n != 1) cout<<"YES";else cout<<"NO";return 0;
}

C.M78星云的字符转换(基础题)

题目:

思路:

通过ASCLL码转换,将小写字符转化为大写字母,如果忘了大小写字母相差多少位的,可以输出一下小写字母减大写字母来看一下。

代码:

#include<stdio.h>
#include<string.h>int main()
{char str[1010];//字符串读入方式 scanf("%s",str);//strlen函数求字符串长度 for(int i = 0 ; i < strlen(str) ; i ++){//根据ASCLL码小写字母比大写字母大32来转换大小写字母 if(str[i] >= 'a' && str[i] <= 'z') str[i] -= 32;}printf("%s",str);return 0;
}

D.M78星云的排队事故(前缀和板子题)

题目:

思路:

基础前缀和知识运用,先进行排序,再求区间 [l,r] 的和即求 [1,r] - [1,l - 1] 的值即可。

代码:

#include<stdio.h>
#include<iostream>
#include<algorithm>using namespace std;
const int N = 1e3 + 10;int arr[N];
int q[N];//前缀和数组 ,q[i]代表[1,i]区间中所有值的和
int n,l,r;int main()
{scanf("%d",&n);for(int i = 1 ; i <= n ; i ++){scanf("%d",&arr[i]);} sort(arr + 1 , arr + 1 + n);//sort排序函数,也可以自己写冒泡代替 //求前缀和数组 for(int i = 1 ; i <= n ; i ++) q[i] = q[i - 1] + arr[i];scanf("%d %d",&l,&r);printf("%d",q[r] - q[l - 1]);return 0;
}

F.不服气的洁洁学姐(gcd)

题目:

思路:

不限次数对数组任意区间减去相同的值,最终使数组所有值相同,假定减去的值为K,对数组任意 arri 可假设其减少了n次K值后变为定值s,即 arri - nK = s, 数组中每个值在变化前后均满足此式,求K的最大值,即求数组中所有减少量nK的最大公约数(gcd)。对于每一个数减少的量一定使K的倍数或为0,于是相邻两个数做差 |arra - arrb |= |(aK + s) - (bK + s) |= |(a-b)K|,所以只需要对所有相邻的两个数的差值的绝对值(不为0,为0没意思)求最大公约数即可。

代码:

#include<stdio.h>
#include<iostream>
#include<algorithm>using namespace std;
const int N = 1e6 + 10;int arr[N],q[N];
int n;int gcd(int a , int b)
{if(b == 0) return a;return gcd(b,a%b);
}int main()
{scanf("%d",&n);for(int i = 0 ; i < n ; i ++) scanf("%d",&arr[i]);int k = 0;//相邻两位做差,得到K的倍数 for(int i = 0 ; i + 1 < n ; i ++) if(arr[i + 1] - arr[i])//将所有不为0的差值的绝对值存入q数组 q[k++] = abs(arr[i + 1] - arr[i]);int ans = q[0];//对k个K的倍数求最大公约数,得到结果 for(int i = 1 ; i  < k ; i ++) ans = gcd(ans , q[i]);//若ans == 0 ,代表arr数组中所有值相等,K最大值趋于无穷 if(ans == 0) printf("-1");else printf("%d",ans);return 0;
}

E.来自M78星云的小测试(进制转换+回文)

题目:

思路:

将数字转化为m进制后用字符串形式存储,然后用双指针一头一尾向中间跑,不断进行比较判断是否为回文即可。

代码:

#include<stdio.h>
#include<iostream>
#include<algorithm>using namespace std;
const int N = 1e4 + 10;int n , m;
char q[20] = "0123456789ABCDEF";bool check(int a)
{char s[100];//存储a转换为m进制后的字符串 int k = 0;//记录转换为字符串后的位数 a = a * a;//进行进制转换 while(a){s[k ++] = q[a % m];a /= m;}//从头尾向中间比较是否字符相同,若存在不同则不为回文 int i = 0, j = k - 1;while(i < j){if(s[i] == s[j]) i++,j--;else return false;//不满足回文返回false }return true;}int main()
{scanf("%d %d",&n,&m);int ans = 0;for(int i = 1 ; i <= n ; i ++){if(check(i)) ans ++;//记录满足回文的数量 }printf("%d",ans);
}

G.来自M78星云的减法运算(模拟题/彩蛋题)

题目:

思路:

python解法(最简单的解法):

由于python的整数没有范围限制,之间定义两个数做差即可。

代码:

a = int(input().strip())
b = int(input().strip())
print(a-b)

c/c++解法(大模拟):

用数组模拟计算过程。

代码:

#include<bits/stdc++.h>using namespace std;//判断A是否大于B
bool check(string str1 , string str2)
{int len1 = str1.length(),len2 = str2.length();if(len1 != len2) return len1 > len2;for(int i = len1 - 1 ;i >= 0 ; i --)if(str1[i] != str2[i]) return str1[i] > str2[i];return true;
}int main()
{string str1,str2;cin>>str1>>str2;int ans[1000];bool s = true;if(!check(str1,str2)){//如果A<B,交换A,B,并用s记录结果为负 swap(str1,str2);s = false;}int i = str1.length() - 1, j = str2.length() - 1;int k = 0,cn = 0; //k代表是否借位 //A - B的模拟计算过程 while(i >= 0 &&  j >= 0){if(str1[i] + k < str2[j]){ans[cn ++] = str1[i] - str2[j] + 10 + k ;k = -1;}else{ans[cn++] = str1[i] - str2[j] + k ;k = 0;}i--,j--;}//A的位数多余B,要将A多余位数加上 while(i >= 0){if(str1[i] - '0' + k >= 0){ans[cn++] = str1[i] - '0' + k;k = 0;}else{ans[cn++] = str1[i] - '0' + k + 10;k = -1;}i--;}//同理B的位数多余A,要将B多余位数加上 while(j >= 0){if(str2[j] - '0' + k >= 0){ans[cn++] = str2[j] - '0' + k;k = 0;}else{ans[cn++] = str2[j] - '0' + k + 10;k = -1;}j--;}if(!s) cout<<"-";while(!ans[cn - 1] && cn > 1) cn--;for(int i = cn - 1 ; i >= 0 ; i --)   cout<<ans[i];}

SICNU ACM新生第一次考核相关推荐

  1. ACM新生赛部分题解

    2021级的ACM新生赛已经完结了,我就自己做出来的八道题整理一下题解,因为其他是真的不会. 链接:登录-专业IT笔试面试备考平台_牛客网 来源:牛客网 一.我们是冠军 7 日星期 777 的凌晨,7 ...

  2. PTE岗位实习期第一次考核

    **背景:**三个月的自学期间,中途会有考核.这次记下第一次考核内容. 主考官有两位,其中一位为小组主管.主要检查的是与hw-check有关的部分. 打开软件,连接测试机与测试板等常规操作,考核正式开 ...

  3. 长大 ACM新生杯试题一(个人解法)

    长大 ACM新生杯试题一(个人解法): 来自我们可可爱爱的彩虹岛!!! 题目一: A 跷跷板 Description 自从彩虹岛新引进了一批设备,同学们的校园生活变得更加丰富了.彩虹岛流传着一句话:& ...

  4. 2020年ACM团队新生第一次周赛题解

    A.王学姐去上学啦 二分法的模板题,大家先点下面的链接学习一下二分法. https://www.cnblogs.com/cs-whut/p/11212022.html 这是我一年前(整整一年,2019 ...

  5. 2022济南大学acm新生赛题解

    通过答题情况的难度系数: 签到:ABL 简单:DGKQ 中等:CMN 困难:EFHIJOPRST A-和 算出n个数的和判断正负性即可!!! 发现很多同学的代码错误:要么sum未赋初值,要么数组大小定 ...

  6. 实验室第一次考核(C语言)

    一.选择 1. #include<stdio.h> void main() {int i,j;scanf("%3d%2d",&i,&j);printf( ...

  7. 2018HYNU新生第一次选拔

    学ACM的人更贴近生活: 此题为送分题,只需要猜猜价格就行了,猜15元的同学简直丧心病狂,你吃的混沌竟然这么贵 亵渎计算器: #include<iostream> using namesp ...

  8. 2019 广工ACM新生赛决赛 K题(立方差公式)

    题目 https://ac.nowcoder.com/acm/contest/3036/K 思路

  9. 【补题日记】训练日记4:山东大学(SDU)acm新生赛

    前 牛客 题目还是偏简单的 我是零零碎碎用上课时间写的 所以当时可能处理细节不太到位吧 才提交了很多遍 但其实思路都比较简单 就是部分题有坑点吧 中 A 签到题(出题人说的) #include< ...

  10. 江中ACM新生10月26日习题题解

    目录 第一题:小球自由落体 第二题:超级玛丽游戏 第三题:算法提高 解二元一次方程组 第四题:水仙花数 第五题:C语言-猴子吃桃 第六题:镂空三角形 第七题:习题2-4-7 求最大公约数 第八题:车神 ...

最新文章

  1. 每天要问自己的十个问题
  2. boost::describe模块实现console的测试程序
  3. rtp rtcp rtsp
  4. c swap方法在哪个库里面_swap
  5. 3-5比较和Fancy Indexing
  6. 面向现代化应用,火山引擎云原生究竟提供了哪些能力?
  7. 蔺永华:虚拟化你的大数据应用
  8. 1 MySQL的备份和还原常见命令
  9. 字体系列之字体复合属性(CSS、HTML)
  10. Shell条件表达式
  11. think-cell中类别或系列标签在多个图表中未对齐
  12. 105套抖音快闪模板
  13. 天使纪元392服务器维护,天使纪元公测什么时候能玩 天使纪元1月11日服务器什么时候能进...
  14. mysql 切分_MySQL切分查询用法分析
  15. python 小甲鱼小游戏_Python 小甲鱼教程 Easygui 篇
  16. 15、react 的 非受控组件 和 受控组件
  17. android 麦克风 动画,录音麦克风动画效果
  18. 值得 .NET 开发者了解的15个特性
  19. HDU 1287.破译密码
  20. Python123分段函数计算

热门文章

  1. 20200209毕设日记-开题报告
  2. NLP-文本处理:词性消歧
  3. 统计学期末重点讲解(医学)
  4. 0基础学HTML,从快捷方式(IntelliJ IDEA)入手,一步步就能看懂了!
  5. shell解析HTML
  6. Hadoop HA 部署
  7. stm32 火灾自动报警及联动控制源码_火灾自动报警系统,消防联动控制系统,三分钟让你整体了解...
  8. ide是什么,IDE是什么,ide,IDE
  9. 反函数的概念及函数性质
  10. 以时间作为文件名的后缀