ACM团队招新赛题解

标程代码全部为C语言编写。代码中的#if LOCAL_ #endif为本地一些调试内容,可以忽略。

XennyA+B1)【容易】【签到】

签到题,做不出的话可能你有点不太适合ACM了。

 

 

 

XennyA+B2)【容易】【签到】

也没什么好说的,用一个循环控制输入的次数就行了

 

 

XennyA+B3)【困难】【模拟】

这是本次比赛最难的题目,用意在于赛后你们看见此题题解可以开拓一下思维方式,不要局限于中学的思维,要掌握计算机。

乍一看这题没法做,怎么去存AB两个这么大的数字,但我们可以用数组存储这两个数字,然后模拟手算,一位一位的相加,满10进位,使用数组模拟的方式便可以很快的解决掉这道题目。值得注意的是char数组存储的是ASCII码,注意之间转换。

注:scanf中的第一个%s前的空格不是没有意义的,它是为了吸收缓冲区的东西,防止造成错误。

 

 

Xenny的三角形(1)【容易】【签到】

三角形任意两边之和大于第三边,根据这个判断即可。

 

 

Xenny的三角形(2)【简单】【枚举】

直角三角形满足勾股定理,而且这道题数据范围不大。

直接循环枚举1C的每个数i,再判断sqrt(C^2 - i^2)是不是一个整数即可。

注意输出条件!输出的时候得判断一下哪个数小一点,先输出较小数字。

 

 

Xenny的三角形(3)【一般】【思维】

题意即为给你RT三角形的一条直角边A,找BC

直接运用勾股数的定义求即可。此题若不知道勾股数的相关规律较难,但也不难找出规律。

 

 

了解规律后,这题变得很简单了。直接套用即可,同时判断一下BC是否合法。

 

 

Xenny的数学题(1)【简单】【思维】

L大于等于4

L为偶数时,一定可以拼出矩形,最大面积即为最接近正方形的时候。

L为奇数时,肯定不能拼一个没有多余部分的矩形。

 

 

Xenny的数学题(2)【简单】【简单数学】

直接计算僵尸走到植物面前需要几秒,每秒承受一颗豆子,判断能否射死僵尸即可。

 

 

Xenny的数学题(3)【一般】【简单几何】

这题应该算简单题,但涉及到精度计算,还是归为一般算了。

高中数学知识,两种方式,建坐标系或者几何法。下面给出几何法的过程。

不要看过程运算量大,计算机的存在就是帮你运算。所以也希望各位能从这道题中领悟些东西。

 

 

 

代码1

 

 

 

代码2

 

 

 

代码3

 

 

 

Xenny的数字【简单】【思维】

就是让你找到三个数a+b+c = x,而且都不是3的倍数。

a = 1

如果x-2不是三的倍数,则11x-2满足题意;

如果x-2是三的倍数,那么x-3肯定不是三的倍数,此时12x-3满足题意。

 

 

 

Xenny的防AK题【一般】【位运算+思维+猜】

为什么说这道题一般呢,如果我把数据范围开大一点这道题肯定就是非常困难的题目了。但我的每个数字Ai-th都是小于1e7的,所以你可以开一个1e7的数组存储每个数字出现的次数,最后再遍历一遍寻找出现次数为奇数次的数字即可,不管是空间还是时间限制都是允许的。如果你没有做出这道题,可以尝试用这种方法解决这道题。

正解是需要用到异或位运算操作,何为异或,自行搜索。

异或有这么一个性质:A^B^B = A;

根据这个性质,我们在输入的时候把每个值都异或。最后的得到的Num即为我们要求的两个数字AB的异或值,现在要做的就是如何分解得到两个数。

Num中一定有不为0的二进制位置(易理解),假设第k位不为0,则AB的第k位不为0,数组中的其余的数若有第k位不为0的数对,则AB与这些数对异或,可以得到AB,最后再让此数与Num异或,则得到另外一值。

 

 

还是再给你们写一下用第一种方法解决的代码

 

 

还有一点,我说了这道题目我只给了一组数据,而且范围在[600,800]之间,你有猜到我的答案吗?没错,就是760,所以你直接输出760也可以AC掉这题。

 

  1. S.可能你们知道while(scanf(...) != EOF)是多组输入,但我的题解中多用while(~scanf(...))~其实就是取非符号,每个语句都是有返回值的,!= EOF这种方式就是说scanf的返回值不能是EOF,而~EOF恰好等于0,二者是等价的,所以可以这样进行多组输入。具体关于EOF以及~操作的解释各位可以自行搜索。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
杭州电子科技大学ACM是指杭州电子科技大学(Hangzhou Dianzi University)学生所组成的参与国际大学生程序设计竞ACM-ICPC)的团队ACM-ICPC是全球规模最大、最具影响力的大学生程序设计竞,由美国计算机协会(ACM)主办。 作为杭州电子科技大学的代表,ACM团队的成员经过选拔和培训,是学校优秀的计算机科学与技术专业学生。这些学生掌握了扎实的算法和编程基础,具有丰富的解决问题的能力和团队协作精神。 参加ACM对于学生们来说,不仅是锻炼自己的编程能力和算法思维,更是一个展示才华和拓宽视野的平台。比中,团队成员将面对各种难题,需要快速思考并给出高效的解决方案,这对于他们的综合素质和实践能力是一个重要的考验。 杭州电子科技大学ACM团队在比中取得了优异的成绩,多次进入国际区的决,甚至获得了国际冠军头衔。这不仅彰显了团队成员的个人才华,更体现了学校培养优秀计算机人才的实力和质量。 ACM的参与不仅对于学生个人的成长和发展有积极的影响,也对学校提升学科建设和促进学院声誉有着重要的意义。杭州电子科技大学ACM团队的出色表现是学校计算机学科实力的一大体现,也是学校教育理念和教学质量的有力证明。 总的来说,杭州电子科技大学ACM是一支备受期待和骄傲的团队,他们的参经历和成果不仅彰显了他们个人的才华,更代表了学校在计算机科学与技术领域的卓越实力和卓越教育质量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值