——>点我跳转<——
公司中总共有 n n n 个人,其中第 i i i 个人的初始工资为 a i a_i ai。公司根据每个人的绩效(工作表现)来评定每个人的涨薪幅度。每年有 x x x 个人绩效为 A,工资可以变为原来的 3 3 3 倍; y y y 个人绩效为 B,工资可以变为原来的 2 2 2 倍,其余人绩效为 C,工资不变,连续两年绩效为 C 会被开除。(保证 x + y ≤ n x+y \leq n x+y≤n)
假如公司没有一直招聘新员工,请问 m m m 年后,公司需要给所有在职员工支付的工资总和最多为多少。由于答案可能很大,请输出对 1 0 9 + 7 10^9 + 7 109+7 取模后的结果。
输入第一行包含四个正整数 n , m , x , y n, m,x,y n,m,x,y,意义如题面所示。 接下来一行包含 n n n 个正整数,第 i i i 个正整数为 a i a_i ai 代表第 i i i 个人的初始工资。
输出一行一个整数表示 m m m 年后工资总和对 1 0 9 + 7 10^9+7 109+7 取模后的结果。
对于 20 % 20\% 20% 的数据范围,满足 n ≤ 10 , m ≤ 10 , a i ≤ 10 n \leq 10, m \leq 10, a_i \leq 10 n≤10,m≤10,ai≤10 对于 40 % 40\% 40% 的数据范围,满足 n ≤ 1 0 5 , m ≤ 10 , a i ≤ 1 0 5 n \leq 10^5, m \leq 10, a_i \leq 10^5 n≤105,m≤10,ai≤105 对于另外 20 % 20\% 20% 的数据范围,满足 满足 n ≤ 1 0 5 , m ≤ 10 , a i ≤ 1 0 5 n \leq 10^5, m \leq 10, a_i \leq 10^5 n≤105,m≤10,ai≤105 且 x + y = n x+y=n x+y=n 对于另外 20 % 20\% 20% 的数据范围,满足 满足 n ≤ 1 0 5 , m ≤ 1 0 9 , a i ≤ 1 0 5 n \leq 10^5, m \leq 10^9, a_i \leq 10^5 n≤105,m≤109,ai≤105 且 x + y = n x+y=n x+y=n 对于 100 % 100\% 100% 的数据范围,满足 1 ≤ n ≤ 1 0 5 , 1 ≤ m ≤ 1 0 9 , 1 ≤ a i ≤ 1 0 5 1 \leq n \leq 10^5, 1 \leq m \leq 10^9, 1 \leq a_i \leq 10^5 1≤n≤105,1≤m≤109,1≤ai≤105
这道题是一道贪心。
我们可以发现,我们一直把 A 给初始值最大的那些人,把 B 给初始值接着大的人是最优的。 至于别的人,被开除也无所谓(好惨
求 A 类人和 B 类人的贡献就先用快速幂求出每类人增长的倍数,然后乘上去即可。
有一个细节,就是如果年数小于 2 2 2 年的话 C 类人不会被开除,就还要算上它们的。
看出来了,就码出来了。
