Gym - 101291I Mismatched Socks(贪心)

2023-05-16

题目:
Fred likes to wear mismatched socks. This sometimes means he has to plan ahead.
Suppose his sock drawer has 1 red, 1 blue, and 2 green socks. If he wears the red with the blue, he is stuck with matching green socks the next day. Given the contents of his sock drawer, how many pairs of mismatched socks can he put together?
Input
The first line of input contains a single integer n (1 ≤ n ≤ 1,000), the number of different colors of socks in Fred’s drawer. The ith of the next n lines contains a single integer ki (1 ≤ ki ≤ 109), the number of socks of the ith color.
Output
Print, on a single line, the maximum number of mismatched pairs of socks that Fred can make with the contents of his sock drawer.

样例输入样例输出
3 1 2 12
5 1 2 1 10 37

题意: 给你n种个数为ai袜子的袜子,求最多能有多少对袜子颜色不相同.

思路: 贪心题,我们可以先优先着手最大的袜子数,如果最大的袜子数>=其他袜子的数之和,那么显然此时的结果一定为其他袜子的数之和。反之如果最大的袜子数<其他袜子的数之和,则说明每个袜子的个数都是小于sum/2的,从结果最大的方向考虑,我们肯定想要的结果应该尽可能更大。
那么,大到什么程度呢?
答案显然是sum/2,因为我们最多只有sum支袜子.而我们上面讨论的那种情况已经限制所有袜子的个数是小于sum/2的,那我们不妨把每个袜子依次排序,种类相同的放一起,我们每次取当前袜子和该位置往后移动sum/2位置的袜子,这样不仅可以保证袜子的种类不相同(因为每种袜子数量都小于sum/2),同时也能让结果往sum/2方向趋近。
如果读者了解了上面的意思的话,就会发现,结果一定是sum/2

上述sum均是偶数条件下,但sum为奇数时同样适用.

AC代码:

#include <iostream>
using namespace std;
long long n;
long long a;
int main() {
    cin>>n;
    long long sum=0,maxs = 0;
    for(int i=0;i<n;i++) {
        cin>>a;
        sum+=a;
        maxs = max(a,maxs);
    }
    if(sum<=maxs*2) cout<<min(sum-maxs,maxs)<<endl;
    else {
        cout<<sum/2<<endl;
    }
    return 0;
}

这题是看大佬的题解思路AC的,觉得很厉害就想自己写写.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Gym - 101291I Mismatched Socks(贪心) 的相关文章

  • 在CentOS 7上搭建代理服务器(Socks 5)

    安装环境配置 1 yum install gcc 2 yum install openldap devel 3 yum install pam devel 4 yum install openssl devel 安装Socks 5 wget
  • Gym - 102470C Lights

    Statement G i v e n v
  • Gym - 101291I Mismatched Socks(贪心)

    题目 Fred likes to wear mismatched socks This sometimes means he has to plan ahead Suppose his sock drawer has 1 red 1 blu
  • week6限时大模拟A - 掌握魔法の东东 II Gym - 101510B

    week6限时大模拟A 掌握魔法 东东 II Gym 101510B A 掌握魔法 东东 II Gym 101510B题目描述输入输出格式及样例思路实验代码 A 掌握魔法 东东 II Gym 101510B 题目描述 从瑞神家打牌回来后 x
  • 选数问题 Gym - 270437C

    题意 xff1a 给定n个正整数 xff0c 从中选取K个数 xff0c 保证这K个数的和是S 求有多少种选择的方法 Input 第一行输入一个整数T T lt 61 100 xff0c 表示有T个测试样例 对于每个例子 xff0c 有两行
  • Gym 101028J 100541D

    Gym 100499I 这题当理解题意的时候就出现一个难题 xff0c 循环小数怎么转化为分数 xff0c 果断百度下 普及知识 xff1a 1 纯循环小数 小数点后有几位数 分母就有几个9 分子为一个循环节 如 0 345 345循环 6
  • ubuntu20.04安装 gym-gazebo

    官网流程安装 xff1a https github com erlerobot gym gazebo 一 环境与依赖 1 基本环境 xff1a ROS NoeticGazebo11 11 0 2 ROS相关依赖 xff1a sudo apt
  • 关于OpenAI的Gym中的step方法

    文章目录 导读 Gym的step方法 最后的话 导读 本文就只是关于step方法的参数与返回值的一个小小的学习笔记 这也是没有第一时间查官方文档而造成的时间消耗 所以 这篇博客就是逼自己查一下 Gym的step方法 既然都已经用pip下载了
  • codeforces Gym 101341 K Competitions

    Problem codeforces com gym 101341 problem K vjudge net contest 162325 problem K Meaning 有 n 场比赛 每一场有 开始时间 a 结束时间 b 价值 c
  • 通过 SOCKS5 代理连接到 .NET Web 服务

    我正在尝试通过 SOCKS5 代理连接到 Web 服务 目前 我的app config如下
  • 如何将原始 HTTP 响应解析为 HttpListenerResponse?

    如果我有一个字符串形式的原始 HTTP 响应 HTTP 1 1 200 OK Date Tue 11 May 2010 07 28 30 GMT Expires 1 Cache Control private max age 0 Conte
  • 为什么某些 .onion 站点会收到“SOCKS 连接失败。规则集不允许连接”的信息?

    我正在尝试使用 Node 和ocks5 https 客户端 由于某种原因 某些 Tor 隐藏服务 onion 站点返回时出现连接错误 例如 连接到 DuckDuckGo 3g2upl4pq6kufc4m onion 工作并返回 HTML 但
  • C/C++ 或其他语言中的 SOCKS?

    如何向我的应用程序添加 SOCKS 支持 我在哪里可以获得这些库 任何帮助表示感谢 你可以尝试Boost Asio http www boost org doc libs 1 39 0 doc html boost asio html图书馆
  • 设置 proxy.socks.port selenium

    我习惯这样设置http端口 profile set preference network proxy http port PORTNUMBER 那行得通 但现在我需要连接袜子代理并设置端口 但它不起作用 profile set prefer
  • 为什么 HTTP 代理能够支持 IRC 和 FTP 等协议?

    据我了解 SOCKS 代理仅在 TCP 级别建立连接 而 HTTP 代理则在 HTTP 级别解释流量 因此 SOCKS 代理可以适用于任何类型的协议 而 HTTP 代理只能处理 HTTP 流量 但是为什么像 Squid 这样的 HTTP P
  • 使用 SSLSocket 的 SOCKS5 代理

    我有一个客户端 服务器应用程序 它通过 Java 的 SSLSocket 远程连接到服务器 我正在尝试实现一种可选模式 通过经过身份验证的 SOCKS v5 代理启用连接 我尝试使用相关教程 http download oracle com
  • 带代理的 PHP CURL 导致套接字上的 CLOSE_WAIT

    我正在使用 PHPcurl 库来建立连接并从 WEB 检索内容 通常 我有多个 SOCKS5 代理服务器在 localhost 上运行 端口从 10300 到 10350 PHP 随机选择一个端口 My code ch curl init
  • NodeJS CPU 一次飙升至 100%

    我有一个用 NodeJS 编写的 SOCKS5 代理服务器 我正在使用原生net and dgram打开 TCP 和 UDP 套接字的库 它可以正常工作大约 2 天 所有 CPU 的最大利用率约为 30 两天没有重新启动后 一个 CPU 峰
  • 通过SOCKS代理连接Kafka

    我有一个在 AWS 上运行的 Kafka 集群 我想用标准连接到集群卡夫卡控制台消费者从我的应用程序服务器 应用程序服务器可以通过 SOCKS 代理访问互联网 无需身份验证 如何告诉 Kafka 客户端通过代理进行连接 我尝试了很多事情 包
  • 为什么SOCKS5需要通过UDP中继UDP?

    The SOCKS5 https en wikipedia org wiki SOCKS SOCKS5协议 描述为RFC1928 https www rfc editor org rfc rfc1928提供对 UDP 的支持 总而言之 希望

随机推荐