牛客-涨薪

it2025-04-17  6

https://ac.nowcoder.com/acm/contest/7606/C

公司中总共有 n 个人,其中第 i 个人的初始工资为ai。公司根据每个人的绩效(工作表现)来评定每个人的涨薪幅度。每年有 x 个人绩效为 A,工资可以变为原来的 3 倍;y 个人绩效为 B,工资可以变为原来的 2 倍,其余人绩效为 C,工资不变,连续两年绩效为 C 会被开除。(保证 x+y ≤n)

假如公司没有一直招聘新员工,请问 m 年后,公司需要给所有在职员工支付的工资总和最多为多少。由于答案可能很大,请输出对 10^9 + 7取模后的结果。 输入描述: 输入第一行包含四个正整数 n, m,x,y,意义如题面所示。 接下来一行包含 n 个正整数,第 i 个正整数为 ai , 代表第 i 个人的初始工资。 输出描述: 输出一行一个整数表示 m 年后工资总和对 10^9+7 取模后的结果。 示例1 输入 2 1 1 1 5 3 输出 21 示例2 输入 2 2 0 0 5 2 输出 0

power函数不能直接暴力写,会超时;新的power函数可节省大量时间

#include<iostream> using namespace std; #define ll long long ll power(ll a,ll b) { ll res = 1; while(b){ if(b&1){//判断是否为奇数 res = res*a; } b>>=1;//位运算,等同于除以2,但运算更快 a = a*a; } return res; } int main() { int a,b; cin>>a>>b; cout<<power(a,b)<<endl; return 0; }
最新回复(0)