用户工具

站点工具


2020-2021:teams:farmer_john:jjleo:aising_programming_contest_2020

这是本文档旧的修订版!


目录

A B C D E F
+ + + + O O

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)$
  • 题解:数据范围很小,直接枚举$x,y,z$进行贡献即可。

D

  • 题意:定义$f(n)=n \mod \mathrm{popcount}(n)$,给出一个$N$位的二进制串,若只将从高到低第$i$位反转,对应的十进制数经过多少次$f$变换变为$0$。$(1 \leq N \leq 2 \times 10^5)$
  • 题解:可以发现将大串进行一次$f$变换后数据范围很小就可以直接暴力,而第一次变换模数只有两种,设原本$1$的个数为$x$,则只有$x+1$和$x-1$两种,预处理扫一遍即可。

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