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

这次比赛,个人发挥仍旧很一般 = = 一共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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值