2016级新生周赛(八)题解

A题:题目意思看懂了的话,应该感觉这个过程不难,就是用代码实现有点麻烦而已,这就考验你的代码能力。这题就是把两个数组的前面的若干位进行交换,这里我用了数组的第0位存了每一个队伍怪物的数量,这样就方便了一点,然后再找出一个队伍,可以用最少的防御力打败这只队伍里的所有怪物,就是每次的答案了。代码链接http://paste.ubuntu.com/23658770/B题:统计一下Q和S的数量就行了。尽量用%s输出,不会出问题。代码链接 http://paste.ubuntu.com/23658626/C题:利用一点技巧的排序,还是利用冒泡排序,排序的时候就不是比较相邻的两个数哪个大哪个小,题目要求组成一个最大的数字,那么他的前面位数的数字肯定要尽可能的大,然后就会想到把首位数字大的换到前面,然而这样是不对的,因为会有两个串,前面都是一样的。对于相邻的两个串a,b应该比较是a串放前面大还是b串放前面大,这样才能得到最优的答案。代码链接http://paste.ubuntu.com/23658662/D题:可以看出,只有当硬币被翻奇数次的时候,才是正面朝上的。如果要模拟这个过程的话,肯定会超时,所以就要利用一些技巧。因为每次要把一个数的倍数的硬币都翻面,所以对每一个硬币来说,就相当于翻了他因子个数次,这样的话,就变成了找因子个数是奇数的个数的问题了,什么数的因子数的个数是奇数呢,完全平方数的因子数就是奇数个,所以只要把1~n之间的因子数输出就好了。代码链接http://paste.ubuntu.com/23658703/E题:因为只有100和200这两种重量,所以只要让他们重量的总和是200的倍数,且100个数不为零或者100的个数和200的个数都是偶数,这样才可以均分。代码链接http://paste.ubuntu.com/23658719/F题:求二元一次方程不用多说了吧。。。注意A,B两点都在坐标轴上,还有数据的范围。化成分数形式的话分子分母同除以他们的最大公约数不就行了嘛。代码链接http://paste.ubuntu.com/23658730/G题:这题有两种做法吧,一种把整个字符串读下来,然后把每个数字分离出来,还有就是每次读一个数字一个字符。解法一代码链接http://paste.ubuntu.com/23658740/解法二代码链接http://paste.ubuntu.com/23667593/

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