zoukankan      html  css  js  c++  java
  • 1175C.Electrification(尺取)

    在OX轴上给您n个点a1,a2,…,an。现在,要求您在OX轴上找到这样一个整数点x,使得fk(x)最小可能。

    函数fk(x)可以用以下方式描述:

    形成距离列表d1,d2,…,dn,其中di = | ai-x | (ai和x之间的距离);
    以降序对列表d进行排序;
    结果是dk + 1。
    如果有多个最佳答案,则可以打印其中的任何一个。

    题解:

    从左到右遍历每组连续的K个点,每组顶点的最左和最右元素的距离除2就是第K大的最小值,取最小即可。

    #include<bits/stdc++.h>
    using namespace std;
    const int maxn=2e5+100;
    int T;
    int a[maxn];
    int main () {
        scanf("%d",&T);
        int N,K;
        while (T--) {
            scanf("%d%d",&N,&K);
            for (int i=1;i<=N;i++) scanf("%d",&a[i]);
            int l=1;
            int r=K+1;
            int ans=0;
            int Min=1e9;
            while (l<=N-K) {
                int mid=(a[l]+a[r])>>1;
                int nowX=a[r]-mid;
                if (nowX<Min) {
                    Min=nowX;
                    ans=mid;
                }
                l++,r++;
            }
            printf("%d
    ",ans);
        }
    }
  • 相关阅读:
    百度翻译
    MailKit帮助类
    Ext.net 3.1学习
    求助 页面布局哪里错了
    jQuery 实现图片动画代码
    CSS图片水平垂直居中
    纯CSS选项卡
    百度纯CSS生成菜单
    KVM虚拟机配置
    快速部署Apache服务静态网站
  • 原文地址:https://www.cnblogs.com/zhanglichen/p/12693137.html
Copyright © 2011-2022 走看看