2017年数信学院第九届新生程序设计竞赛

  • 对不起,该竞赛为内部竞赛,请登录系统并报名参加

参加竞赛人数
 81
解答题目人数
 77
创建者
开始时间
2017-12-23 12:00:00.0
结束时间
2017-12-23 17:00:00.0
当前时间
2024-05-07 07:26:10
状态
已结束


解题报告:
该解题报告由zhouzexi提供:


A:游戏之我不是签到题

IF判断一下输出即可。

(一道自欺欺人的水题,还说自己不是签到用的,超时的小伙伴是不是没有写EOF结束了?)

B:游戏之PK

根据题目意思模拟即可,注意一下细节问题。

(我不想说什么了)

C:游戏之切萝卜

不断的切割,经过计算(相似三角形的相似比)就可以知道切第i份后剩下的高为sqrt(h*i*h/n)),然后就循环i输出,

注意一下空格。

BobHuang家里有好多只兔子啊,他切的该有多累,其实我的关注点在这里(删去))


D:游戏之数据库

这题也是复杂模拟题,大家看到似乎都不想做,主要考察了STL模板的使用和结构体,根据题意模拟即可。


E:游戏之合成

快速幂和快速乘(不会这两个算法的同学请点击百度)。m^(A-B%m[k]m[k]表示第K个梅森素数,由于第9个梅森素

数有19位数,相乘已经超过int64了。所以才去快速乘。据说大家不知道2305843009213693951这个数要怎么存,

其实只要a = 2305843009213693951LL 或者 a = (1LL<<61)-1就可以喽。

(有兴趣的同学可以试试大数模拟这题,注:我不知道能不能过)


F:游戏之购物

先算出Superice学姐那一天购物的总金额S,然后满400-50,就减去S/400*50就可以了,需要判断一下是否超过了津贴

的总额,再减去红包的数目,即可。

s=s-((s/400*50)>p?p:(s/400*50))-q;s=s>0?s:0;

(看到这题,就知道Superice学姐应该在双11买了好多东西。)

G:游戏之不愉快地玩耍

For循环的题目,就是年份有一点烦。TN大五倍,所以要预处理。

预处理有3种方式

  1. 预处理素数

  2. 预处理年份所有的结果

  3. 1,2都预处理

(据说anruoxin学长想要卡预处理,可是被我循环水过去了。)

附带我素数判断的代码:

for(int r=3;r*r<=k;r+=2) if(k%r==0)break;


H:游戏之抛硬币

这题对高中没有接触过概率的同学十分的不友好(虽然是我出的)

,然而这题的答案也是一个公式的问题,C(k,n) * (0.5)^n

计算C的时候采取杨辉三角的方法进行计算(当然你可以用其他正确的方法,这只是一种)。


I:游戏之随机数

这题就是寻找到最大值,最小值,平均数,注意一下算所有数的和时会超出unsigned的范围,开int64就可以的。

(这题还是比较简单的,没做的小伙伴是不是看不懂题目的函数了?)


J:游戏之禁酒

一道掺杂的数学知识的搜索题,首先被9整除的数有一个性质,各个位数加起来被9整除,然后将所有是陷阱和不是陷

阱的格子用不同字符重新构建一副图,然后搜索即可。(不会搜索的同学,可以百度学习深搜和广搜)


K:游戏之写素数

相邻的两位和是素数,1+ 1=2......,2是素数,于是题目就变成了输入一个N,输出N1。(嗯,就是这样)

(大家有什么更好的想法吗?)


欢迎大家评论提问(吐槽)


|返回 |   | 转到页头|
Copyright @ 2008-2024(浙ICP备2022001332号), TZOJ. All Rights Reserved.