zoukankan      html  css  js  c++  java
  • CF594A Warrior and Archer

    CF594A Warrior and Archer

    洛谷传送门

    题意翻译

    给出偶数个点,AB两人轮流去掉一个点,直到只剩两个

    A要使两点距离尽可能近,B要使两点距离尽可能远

    假设AB两人都使用最佳策略,求最后两点间距离


    题解:

    题面说得不太好,重新给一遍题目大意:给出偶数的N,和N个点的坐标(数轴,整数),A,B轮流拿走一个点,A先拿,A要使两点距离尽可能近,B要使两点距离尽可能远,假设AB两人都使用最佳策略,求最后两点间距离。

    其实感觉算不上紫题。

    肯定要先按坐标排序啊,然后因为A要使得最后的两点距离尽可能近,那就要从两边选点,B就要从中间选点了。那么这就是一个简单的贪心,直接按题意,枚举所有可行点对即可。复杂度卡在排序上。

    代码:

    #include<cstdio>
    #include<algorithm>
    using namespace std;
    const int maxn=2e5+5;
    const int INF=1e9;
    int n;
    int a[maxn];
    int main()
    {
        scanf("%d",&n);
        for(int i=1;i<=n;i++) 
            scanf("%d",&a[i]);
        sort(a+1,a+n+1);
        int ans=INF;
        for(int i=1;i<=n/2;i++)
            ans=min(ans,a[i+n/2]-a[i]);
        printf("%d",ans);
        return 0;
    }
    
  • 相关阅读:
    ajax的一些知识
    前端性能优化汇总
    jquery实现一些小动画二
    python简单日志处理
    逆波兰式---C实现
    java常见异常
    Hive与HBase集成及常见问题解决
    SQL for HBase
    Demystifying the Skip Scan in Phoenix
    Difference between DDL, DML and DCL commands
  • 原文地址:https://www.cnblogs.com/fusiwei/p/14060005.html
Copyright © 2011-2022 走看看