首页 > 其他分享 >组合公式【1552. 两球之间的磁力】

组合公式【1552. 两球之间的磁力】

时间:2023-10-25 12:56:58浏览次数:28  
标签:count pre arr 1552 int 两球 position 磁力

组合公式

从m 个箱子中选出 n 个箱子
公式:\(C_{m}^{n}=\frac{m!}{n!(m-n)!)}\)
每种方式两两相邻球之间都有一个磁力,假设:

  • 放置方式1的两两相邻球之间的磁力的最小值为a
  • 放置方式2的两两相邻球之间的磁力的最小值为b
    ...
  • 放置方式X的两两相邻球之间的磁力的最小值为x
    那么本题的题解就是 max(a, b, ..., x)。即求最大的最小磁力。
    由于题目已经给了 n 个篮子的位置 position,我们先将 position 升序,则可得出:
  • 两球之间的磁力最大值 = position[n-1] - postion[0]
  • 由于数组每个值都不同,所以磁力最小值 = 1

接下来就可以用二分策略,求得一个中间值mid = (min + max) / 2,然后将mid值作为两球之间的最小间距dis,如果有放置策略可以满足所有两两相邻球之间的距离都大于等于dis,则dis就是本题的一个可能解。

public boolean isValid(int[] position, int len, int m){
    int count = 1;
    int pre = position[0];
    for (int i = 1; i < position.length; i++) {
    	if (position[i] - pre >= len){
    		count++;
    		pre = position[i];
    	}
    }
    return count >= m;
}

整体代码:

class Solution {
	//	所有 position 中的整数 互不相同
    public int maxDistance(int[] position, int m) {	//	m 个球
		Arrays.sort(position);
		int max = position[position.length - 1] - position[0];
		int min = 1;
		int res= 1;
		while (min <= max){
			int mid = min + (max - min) / 2;
			if (isValid(position, mid, m)){	//	尽量大一些
				res = Math.max(res, mid);
				min = mid + 1;
			}else {
				max = mid - 1;
			}
		}
		return res;
	}
	public boolean isValid(int[] position, int len, int m){
		int count = 1;
		int pre = position[0];
		for (int i = 1; i < position.length; i++) {
			if (position[i] - pre >= len){
				count++;
				pre = position[i];
			}
		}
		return count >= m;
	}
}

换皮题【最佳植树距离】

import java.util.Scanner;
import java.util.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
     Scanner in = new Scanner(System.in);
        int count = in.nextInt();
        int[] arr = new int[count];
        for (int i = 0; i < count; i++) {
            arr[i] = in.nextInt();
        }
        Arrays.sort(arr);
        int treeCount = in.nextInt();
        int min = 1;
        int max = arr[count - 1] - arr[0];
        int res = 1;
        while (min <= max){
            int mid = min + (max - min) / 2;
            if (isValid(arr, mid, treeCount)){
                res = Math.max(res, mid);
                min = mid + 1;
            }else {
                max = mid - 1;
            }
        }
        System.out.println(res);
    }
    public static boolean isValid(int[] arr, int len, int treeCount){
        int count = 1;
        int pre = arr[0];
        for (int i = 1; i < arr.length; i++) {
            if (arr[i] - pre >= len){
                count++;
                pre = arr[i];  //  更新 pre
            }
        }
        return count >= treeCount;
    }
}

标签:count,pre,arr,1552,int,两球,position,磁力
From: https://www.cnblogs.com/aclq/p/17786900.html

相关文章

  • 关于使用JAVA下载 2023年磁力搜索引擎前十排名
    最近比较火的磁力搜索神奇磁力皇,很多小伙伴在使用迅雷下载的时候,想知道怎么使用磁力链接,下面小编就为大家分享迅雷11使用磁力链接教程,感兴趣的小伙伴不要错过哦!      迅雷11怎么使用磁力链接?迅雷11使用磁力链接教程前提先下载打开磁力搜索导航 xiaqo.com     ......
  • P1552 [APIO2012] 派遣 题解
    一、题目描述:给你一个$n$个点的有根树,每个点有两个参数$w$和$v$。再给出一个数$m$。对于每一个点$u$,设它的子树内最多可以选择$k_u$个点$a_1,a_2,...,a_{k_u}$,使得$\sum_{i=1}^kw_{a_i}\lem$。那么点$u$的价值为$v_u\timesk_u$,求$max(\su......
  • 物理学前沿问题探索(7) 电子和电磁力的产生
    物理学前沿问题探索(7)电子和电磁力的产生  宇宙大爆炸开始前的一瞬间,整个宇宙为一个大的原子, 核外没有电子,核内也没有质子,全由中子组成,宇宙的温度极其极其高。随着原子核的不断裂变演化,原子核越来越小,在其初期温度仍极其高,原子核仍处于剧烈的裂变过程中,核外仍然没有电子存在......
  • 磁力计椭圆校正
    地磁矫正问题​ 讨论矫正问题之前先了解一下地磁传感器测得数据具体代表什么。本文中使用的地磁传感器为\(MPU9250\)内置地磁传感器.​ 首先分析理想情况,地磁传感器所测位置的地磁数据可以理解为三维坐标系下的向量在地磁传感器三维坐标下的投影,如下图:由于我们使用地磁传感......
  • 电磁力场保护罩
    电磁力场保护罩电磁力场保护罩要想使一个管道里面的气体不发生泄露,可以模仿地球磁场使地球大气中的气体不会泄露的外太空中的原理。在这个管道壁外部从上到下缠绕上银合金导线。这些引导线的线径为1mm,它们由质量比为0.1:0.1:1的铜、金、银组成。这些银合金导线一圈挨着一圈缠绕在3......
  • 最全的磁力链搜索引擎,国内外最受欢迎的BT-磁力网站(整理分享,每日不断更新...)
    磁力搜索网站bttorrentsearchengine推荐每日更新1、thepiratebay.se海盗湾亚洲节点资源不少2、磁力湾:www.okeyl.com (值得收藏,国内资源多,下载速度可以,建议用手机访问有惊喜)。3、KickAssTorrents4、Torrentz5、zooqle6、SumoTorrent7、TorrentDownloads8、Rarbg9......
  • 洛谷P1552 [APIO2012] 派遣 题解 左偏树
    题目链接:https://www.luogu.com.cn/problem/P1552题目大意:每次求子树中薪水和不超过\(M\)的最大节点数。解题思路:使用左偏树维护一个大根堆。首先定义一个Node的结构体:structNode{ints[2],c,sz,dis;longlongsum;Node(){};Node(int_c){s......
  • 协议-Magnet协议 磁力链接(Magnet URI scheme)
    MagNet协议磁力链接(MagnetURIscheme)一个常见的磁力链接形式为“magnet:?xt=urn:btih:”磁力链接(MagnetURIscheme)实际就是以“magnet:?”开头的一种链接协议,与传统BT......
  • Codeforces Global Round 15 CF1552 A~G 题解
    点我看题对两三年前的cf进行考古的时候偶然做到这场,像这种全是构造题和思维题的比赛还是比较少见的。题目本身很有意思,但是对于现场打比赛想上分的人来说体验就比较差了。......
  • 音乐下载器,每日美女壁纸,小说下载,磁力链接聚合搜索,如何免费下载想听的音乐或小说?一个工
    你是否有想听想下载的音乐由于收费等原因没有下载?是否有想看的小说找不到书源?这次的工具或许能帮到你。一、软件简介这次的工具是一个多功能娱乐软件,界面简洁,没有任何广......