【比赛】AtCoder Beginner Contest 173
题目 | 名称 | 时限 | 空间 | 用时 | 得分 |
---|---|---|---|---|---|
A | Payment | \(2\) sec | \(1024\) MB | \(3min\) | \(100\) |
B | Judge Status Summary | \(2\) sec | \(1024\) MB | \(10min\) | \(200\) |
C | H and V | \(1\) sec | \(1024\) MB | \(40min\) | \(300\) |
D | Chat in a Circle | \(2\) sec | \(1024\) MB | \(5min\) | \(0\) |
E | Multiplication 4 | \(2\) sec | \(1024\) MB | \(15min\) | \(0\) |
F | Intervals on Tree | \(2\) sec | \(1024\) MB | \(0\) | \(0\) |
A
思路
直接输出\([(n+1000)1000]\times1000-n\),注意判一下\(n\mod1000=0\)的情况
Debug
B
思路
统计字符串数量即可
Debug
printf
手残写了一个&
printf("%d",&a);
C
思路
爆搜,枚举更改哪些行那些列,注意处理行列交叉的地方,可以记录一下被覆盖次数
Debug
- 没有写
return
(已经无数遍的错误了 - 手贱写了一个特判,但是显然是错的(啊
D
思路
贪心题
可以发现显然的性质
将玩家按照\(a_i\)从大到小的顺序加入必然是最优的
所有只需要看每一个\(a_i\)对答案贡献了几次就可以了,手玩即可发现贡献的规律
Debug
考场没想出来
E
思路
还是贪心题
若\(k=n\),则将所有的数乘起来就是答案
若全是正整数,则从小到大排序后,选后\(k\)个相乘
若没有正整数而且\(k\)为奇数,则最后乘积为负值,选前\(k\)个相乘
若没有正整数而且\(k\)为偶数,则最后乘积为负值,选后\(k\)个相乘
否则就将绝对值从大到小排序将前\(k\)个相乘
若乘积为正,则为答案
否则就说明这\(k\)个数中有奇数个负数相乘,我们要么再乘一个没在这\(k\)个数里的绝对值最大的负数,让后扔掉绝对值最小的正数,要么就扔掉一个绝对值最小的负数,换没在这\(k\)个数里的绝对值最大的整数
Debug
没时间写了
F
思路
致远星
Debug
致远星
总结
得分是\(100+200+300+0+0=600\)
主要时间浪费在\(C\)上了,明明是个智障爆搜,写了\(10\)分钟,因为一些小错误调了近半小时,不然\(E\)就能写出来了,淦
还是要提高代码能力
$$Life \quad is \quad fantastic!$$