首页 > 其他分享 >2023.6.7 老鼠和奶酪

2023.6.7 老鼠和奶酪

时间:2023-06-07 12:56:25浏览次数:35  
标签:老鼠 reward2 reward1 Ordering res 奶酪 2023.6

image

贪心+排序。

由于第一只老鼠一定要吃k个奶酪的,为了让答案最大,一定要吃k个收益最大的奶酪。而reward1reward2大的越多,收益就越多。所有可以按照reward1 - reward2进行从大到小的排序,排完序后前k个奶酪由第一个老鼠吃,后面的所有奶酪由第二个老鼠吃,得到的就是最大得分。

use std::cmp::Ordering;

impl Solution 
{
    pub fn mice_and_cheese(reward1: Vec<i32>, reward2: Vec<i32>, k: i32) -> i32 
    {
        let mut rewards:Vec<_> = reward1.into_iter().zip(reward2.into_iter()).collect();
        rewards.sort_unstable_by(|&a, &b| if a.0 - b.0 < a.1 - b.1 { Ordering::Greater } else { Ordering::Less });
    	let mut res = 0;
    	rewards.iter().enumerate().for_each(|(i, &(x, y))| if i < k as usize { res += x } else { res += y });
    	res
    }
}

标签:老鼠,reward2,reward1,Ordering,res,奶酪,2023.6
From: https://www.cnblogs.com/st0rmKR/p/17463014.html

相关文章

  • 2023.6.6 相等行列对
    用暴力做法,遍历每一列,然后遍历所有的行,每当有一个行与该列相同,ans++。implSolution{pubfnequal_pairs(grid:Vec<Vec<i32>>)->i32{let(n,mutcol,mutres)=(grid.len(),vec![0;grid.len()],0);foriin0..n{......
  • 2611. 老鼠和奶酪
    2611.老鼠和奶酪有两只老鼠和 n 块不同类型的奶酪,每块奶酪都只能被其中一只老鼠吃掉。下标为i 处的奶酪被吃掉的得分为:如果第一只老鼠吃掉,则得分为 reward1[i] 。如果第二只老鼠吃掉,则得分为 reward2[i] 。给你一个正整数数组 reward1 ,一个正整数数组 reward2 ,......
  • 2611. 老鼠和奶酪
    有两只老鼠和 n 块不同类型的奶酪,每块奶酪都只能被其中一只老鼠吃掉。下标为i 处的奶酪被吃掉的得分为:如果第一只老鼠吃掉,则得分为 reward1[i] 。如果第二只老鼠吃掉,则得分为 reward2[i] 。给你一个正整数数组 reward1 ,一个正整数数组 reward2 ,和一个非负整数 k......
  • 2023.6.6
    信号与系统:h[n]是离散LTI系统的唯一标识;一个离散LTI系统的全部特点被集中反映于h[n]用列表法计算卷积的计算复杂度为o(N^2),而快速傅里叶变换的复杂度是o(NlogN)计算卷积和方法列表法卷积公式法......
  • 2023.6.6
    stoi函数作用是将n进制的字符串转化为十进制,使用时包含头文件string.定义如下:intstoi(conststd::string&str,std::size_t*pos=nullptr,intbase=10);参数:str-待转换的字符pos-其取值可以是一个空字符,在这种情况下,pos未被使用;另外如果pos不是空指针,函数将pos......
  • 2023.6.4拷逝
    #T1首先题目没有强制让我们一起算$k^{r(p)}+r^2(p)$,我们可以把它拆成两部分,一部分是$k^{r(p)}$,一部分是$r^2(p)$。考虑递推求解两个部分。先看第一个部分。设$n$的全排列的逆序对个数分别是$p_1,p_2,...,p_{n!}$,并假设我们已经知道$k^{r(p)}$的值。现在新增一个数$n......
  • 2023.6 做题笔记
    【集训队互测2023】森林游戏He_Renorz把得分重新定义:先手选一个数,增加得分,后手减小得分,先手想最大化得分,后手想最小化得分。先考虑一个特殊情况:森林中的每一棵树都是一条链,且每条链从前往后不增。两个人的策略都是选择能选的点中权值最大的,也就是说这个森林等价于将所有权值......
  • 2023.6.3 自学kali渗透测试1
     首先sudosu进入根用户,然后msfconsole然后searchms_17_010 然后use0//使用0号模块 2.设置必选项 //require为yes的为必选项setRHOSTS[目的IP]    //前提是在同一局域网//*RHOSTS为targethost(s)代表你要攻击谁 setpayloadwindows/x64/meterperte......
  • 2023.6.2 统计范围内的元音字符串数
    可以用前缀和解。首先建立一个前缀和数组prefix,令n为words的长度,那么prefix的长度就是n+1。(将下标0空出来)然后遍历words中的每一项,如果该项符合规则,则prefix[i]=prefix[i-1]+1,否则prefix[i]=prefix[i-1。(意味着,这个位置有一个字符串可以提供1个贡献)最后遍历querie......
  • 2023.6.2linux系统文件查找
    03.Linux系统⽂件查找⽂件查找概述find名称查找find⼤⼩查找find时间查找find⽤户查找find类型查找find权限查找find处理动作Authorvx:WingspanGo⽂件查找概述Linux系统中的find命令在查找⽂件时⾮常有⽤⽽且⽅便。它可以根据不同的条件来进⾏查找⽂件:例如⽂件......