• Saruman's Army


    直线上有N个点。 点i的位置是Xi。从这N个点中选择若干个,给它们加上标记。 对每一个点,其距离为R以内的区域里必须有带有标记的点(自己本身带有标记的点, 可以认为与其距离为 0 的地方有一个带有标记的点)。 在满足这个条件的情况下, 希望能为尽可能少的点添加标记。 请问至少要有多少点被加上标记?
    在这里插入图片描述

    输入

    N = 6
    R = 10
    X = (1, 7, 15, 20, 30, 50}

    输出

    3

    java实现

    import java.util.Scanner;
    
    public class Main {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		Scanner scn = new Scanner(System.in);
    		int n = scn.nextInt();
    		int r = scn.nextInt();
    		int arr[] = new int[n];
    		for(int i=0;i<n;i++) {
    			arr[i]=scn.nextInt();
    		}
    		int flag=0;
    		int sum=0;
    		while(flag<n) {
    			int num = arr[flag];
    			while(arr[flag]<=num+r) {
    				flag++;
    				if(flag>=n) break;
    			}
    			flag--;
    			num = arr[flag];
    			while(arr[flag]<=num+r) {
    				flag++;
    				if(flag>=n) break;
    			}
    			sum++;
    		}
    		System.out.println(sum);
    	}
    
    }
    
  • 相关阅读:
    jquery实现全选、不选、反选的两种方法
    EasyGui
    PyInstaller打包成exe可执行文件
    paramiko模块
    仿照admin写一个startk组件
    django-model之Q查询补充
    django-Model _meta API
    django-admin的源码流程
    权限管理具体代码实现
    021.15 IO流 其他流
  • 原文地址:https://www.cnblogs.com/zhangguangxiang/p/14232563.html
Copyright © 2020-2023  润新知