2018级新生周赛(二)题解

这次出题,主要目的是给大家见见模板题以外的一些题。而且为了减少大家做题时的枯燥感,把每题的开头第一句话都写成一个轻松的格式。所有的代码都在发的网址里 A题铺地板,举例子思考后发现:当广场的长n 不能整除石板边长a时,则所铺石板的列数即为n/a+1,能整除即为n/a.石板的行数也同理。注意数据范围是1000000000,而int上限是2^32-1,相乘会炸,所以要用longlong来计算。(课本上那个输出阶乘前30个的已经说的很明白了)https://paste.ubuntu.com/p/PHhG4TJqgy/B题曼哈顿,作图分析可得,从原点过两个点只有两条路,所以只要把三点构成的三条边分别计算出来,一个if就完事https://paste.ubuntu.com/p/NkKwFKh8Xp/C题学素数,就把素数统计出来就行了,注意1不是素数。而且用暴力地统计会超时,要开根号计算。这个课本上也有呀...(用欧拉素数筛法会更快)https://paste.ubuntu.com/p/mxFWb66DVg/D题看似很高大上的超越数,其实仔细看看就是让算n是不是阶乘数。(没坑,专门测过数据,不会让你们爆int)https://paste.ubuntu.com/p/mt5JN2hdTp/E题有点难度,这个题需要举好多栗子去找规律,找到最后发现,总共可以取石子的编号就是a和b的最大公约数的倍数!只要拿n除以最大公约数就能得到次数,再判一下奇偶就可以知道谁能赢。https://paste.ubuntu.com/p/CydxWTcdHf/F题用到了数组,大二的老学长可能会想到用队列。其实存的时候不把编号存入而把i存入数组,就记下了每本书的位置,再设置一个标志变量F,记下当前取书的位置。读入一个编号就把判断一下是否把标志变量F后移,是的话同时更新标志变量F,就能模拟出这个过程。https://paste.ubuntu.com/p/NWsHJjvmYP/G题签到题,为了给一丢丢难度,中间加了个空格没有明说,代码就不贴了

posted @ 2022-10-22 18:45  河南工业大学算法协会  阅读(2)  评论(0编辑  收藏  举报