【比赛】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

  1. 没有写return(已经无数遍的错误了
  2. 手贱写了一个特判,但是显然是错的(啊

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\)就能写出来了,淦

还是要提高代码能力

posted @ 2020-07-06 08:29  pyyyyyy  阅读(172)  评论(0编辑  收藏  举报