2017年第八届山东省ACM大学生程序设计竞赛后记

来源:互联网 发布:python量化交易 github 编辑:程序博客网 时间:2024/05/14 20:52

这次比赛,个人发挥仍旧很一般 = = 一共AC了4题,其中和我有关的有三道题= =...

G题: 用Java大数过的,毫无技术含量(只不过队友不会写Java而已)

I题:找规律。首先一看就知道这是个斐波那契数列,然后看求的结果,一看发现求的是斐波那契数的奇偶。那就找规律,很容易的发现斐波那契数列是 0 1 1 2 3 5 8 13 21 34... :偶数,奇数,奇数,偶数.... 于是问题就变成了n对3取模。到这一步可以通过大数解决(n很大),但是这里我们不难发现,只有n%3==0的时候为偶数,问题可以简化为n是否能被3整除。这里用到了一个初中数学学到的常识:能被3整除的数,所有数字加和的值也能被3整除。至此问题已简化为字符求和。

J题:水题。先把每种商品的价值从小到大排序(带着每种商品的数量一起),然后展开为一个长数列,展开过程中找到第一个正数。算两个值,正数求和A,正数按照天数原则计算的总价值B。然后从最大的一个负数开始尝试,如果这个负数的绝对值小于A,这说明加入这么一个负数对总值有益。因而更新A为(A+此负数),更新B为(B+更新后的A)。重复此操作直到不能再添加负数或已经到达数据最左端。


其他队伍有一个AC了5题,得到了银牌。祝贺一下他们~


0 0
原创粉丝点击