2020-2021:teams:farmer_john:jjleo:aising_programming_contest_2020
这是本文档旧的修订版!
rank:684
AB
C
题意:设$f(n)$为满足$x^2 + y^2 + z^2 + xy + yz + zx = n$的$(x,y,z)$三元组个数,求$f(1),f(2), \cdots , f(N)$。$(1 \leq N \leq 10^4)$
D
E
题意:有$N$个骆驼,对他们进行排列。第$i$个骆驼如果在前$k_i$个,它的权值为$l_i$,否则权值为$r_i$,求最大的权值和。$(1 \leq N \leq 2 \times 10^{5})$
题解:考虑将$l_i>r_i$与$l_i<r_i$的骆驼分为两组,分别讨论。显然两组交集为空,第一组骆驼尽量向左放,第二组骆驼尽量向右放,互不冲突,因此可以独立进行讨论。对于每一组,按照$k_i$(或$n-k_i$)从小到大进行排序,维护一个小根堆存放目前可以取到更大值的骆驼,如果堆中数量小于$k_i$(或$n-k_i$)则直接放入堆中,否则看是否比堆顶元素大,大的话将堆顶元素替换为更大的即可。
F
2020-2021/teams/farmer_john/jjleo/aising_programming_contest_2020.1594954835.txt.gz · 最后更改: 2020/07/17 11:00 由 jjleo