• 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以及~操作的解释各位可以自行搜索。
  • 相关阅读:
    LYDSY模拟赛day3 序列
    LYDSY模拟赛day3 涂色游戏
    LYDSY模拟赛day3 平均数
    hdu1757 A Simple Math Problem
    清北国庆day1 (脑)残
    poj3070 Fibonacci
    uva10870 递推关系Recurrences
    湖南附中模拟day1 瞭望塔
    湖南附中模拟day1 收银员
    湖南附中模拟day1 金坷垃
  • 原文地址:https://www.cnblogs.com/xenny/p/9903217.html
Copyright © 2020-2023  润新知