首页 > 其他分享 >【POJ 2388】Who‘s in the Middle 题解(nth_element)

【POJ 2388】Who‘s in the Middle 题解(nth_element)

时间:2023-12-18 14:04:13浏览次数:36  
标签:ch int 题解 Who 中位数 Middle include 奶牛 getchar

描述 FJ正在调查他的牛群,寻找最普通的奶牛。他想知道这头“中位数”奶牛产奶量:一半奶牛产奶的量与中位数相同或更多;一半的人给予同样多或更少。 给定奇数头奶牛N(1<=N<10000)和它们的牛奶产量(1…1000000),求出所给牛奶的中位数,使至少一半奶牛所给的牛奶量相同或更多,至少一半奶牛的牛奶量相等或更少。

输入 *第1行:单个整数N *第2..N+1行:每行包含一个整数,即一头牛的奶产量。 输出 *第1行:牛奶产量中值的单个整数。

Sample Input 5 2 4 1 3 5 Sample Output 3 Hint

INPUT DETAILS:

Five cows with milk outputs of 1..5

OUTPUT DETAILS:

1 and 2 are below 3; 4 and 5 are above 3. Source

USACO 2004 November

思路

中位数即第n / 2小的元素。

AC代码

#include <iostream>
#include <algorithm>
#include <vector>
#define AUTHOR "HEX9CF"
using namespace std;

void read(int &x)
{
    x = 0;
    char ch = getchar();
    for (; ch < '0' || ch > '9'; ch = getchar())
        ;
    for (; ch >= '0' && ch <= '9'; ch = getchar())
    {
        x = x * 10 + ch - '0';
    }
}

int main()
{
    int n;
    read(n);
    vector<int> V;
    for (int i = 0; i < n; i++)
    {
        int in;
        read(in);
        V.push_back(in);
    }
    int m = n / 2;
    nth_element(V.begin(), V.begin() + m, V.end());
    cout << V[m] << endl;
    return 0;
}

标签:ch,int,题解,Who,中位数,Middle,include,奶牛,getchar
From: https://blog.51cto.com/HEX9CF/8872932

相关文章

  • MySQL 8 手动安装后无法启动的问题解决
    首先的自我检讨与自我批评,最近有点懒,知识的更新慢,最近在更换系统到ubuntu22.04,废弃centos ,同时MYSQL都在8以上,之前MySQL都是在CENTOS7.5上安装,并且也都自动化安装,基本上没有问题,但到了ubuntu22.04基于对于系统的不熟悉,产生很多的问题。今天就梳理一下,转换了系统对于M......
  • 【题解】AtCoder agc065_a Shuffle and mod K
    传送门:https://atcoder.jp/contests/agc065/tasks/agc065_a 为了方便理解,我们把要求的东西乘一个$-1$,再把答案序列倒过来;也就是说,我们现在要求$min_{A'}^{A'为A的排列}(\sum_{i=1}^{N-1}((A_{i+1}-A_{i})$$mod$$K))$比较显然的是,如果我们确定了答案序列的第一个数是多......
  • [AGC016D] XOR Replace 题解
    题目链接点击打开链接题目解法很有思维难度的一道题首先考虑简化操作(或者说用一种比较好的方法表示)假设我们选择交换的位置为\(x\),不难发现,操作等价于交换\(sumxor\)和\(x\)于是,有解的条件就好判了,即\(\{b_i\}\subseteq\{a_i\}\bigcap\{x\}\)操作可以理解为路径,即我......
  • 题解 ABC333F【Bomb Game 2】
    来个可能有点麻烦但不用动脑子的暴力做法。直接设\(f_{i,j}\)表示有\(i\)个人时,第\(j\)个人幸存的概率。显然有\(f_{1,1}=1\)。对于\(i>1\),分类讨论容易得到:\[f_{i,j}=\begin{cases}\frac{f_{i,n}}{2},&j=1\\\frac{f_{i-1,j-1}+f_{i,j-1}}{2},&1<j\lei\\\e......
  • 链表面试题解析
    链表面试题解析1.删除链表中=val的所有节点/***Definitionforsingly-linkedlist.*publicclassListNode{*intval;*ListNodenext;*ListNode(){}*ListNode(intval){this.val=val;}*ListNode(intval,ListNodenext){......
  • BZOJ4403 序列统计 题解
    题目传送门前置知识排列组合|卢卡斯定理解法记\(m=r-l+1,0\lek\len-1\),枚举长度\(i\),等价于求\(\sum\limits_{j=1}^{m}x_j=i\)的非负整数解的数量。接着推式子就行。\(\begin{aligned}\sum\limits_{i=1}^{n}\dbinom{m+i-1}{i}\end{aligned}\)\(\begin{aligned......
  • 【电子公文系统】常见问题解答
    Q:如何在电子公文系统中创建新文档?A:登录系统后,点击“新建文档”按钮,选择相应的文档模板开始编辑。编辑完成后,可以选择保存草稿或提交审批。Q:我忘记了我的登录密码,应该怎么办?A:在登录界面点击“忘记密码”链接,根据提示输入你的电子邮箱或电话号码以接收重置密码的......
  • 2023ISCTF的fry题解及进阶格式化利用
    这题是一个比较好的进阶格式化利用。就是有点繁琐。先惯例checksec一下心脏骤停hhh。没事先分析一下Main函数int__cdeclmain(intargc,constchar**argv,constchar**envp){init(argc,argv,envp);puts("WelcometoISCTF~~~~~~~~~~~~~~~~");puts("Doyouwantto......
  • [Ynoi2004] rpmtdq 题解
    人生第一发\(Ynoi\)的题,写一篇题解庆祝一下传送门我们可以发现,对于二元组\((x,y)\),若存在一个\(dist(i,j)\ledist(x,y),x<i<j<y\)那么答案肯定不是二元组\((x,y)\)我们可以考虑把这些肯定不是的点剔除掉考虑怎么找,我们可以先点分治,求出每个点......
  • AT_abc333_e [ABC333E] Takahashi Quest 题解
    AT_abc333_e[ABC333E]TakahashiQuest题解思路解析可以发现一瓶药水无论什么时候拿被使用掉的时间都是不会变的,所以如果我们想让一瓶药水再背包里待得时间尽可能的短就要让它尽可能的被晚拿起来,于是我们就可以想到使用栈存下每一瓶同类的药水分别出现的时间,此时每遇到一只怪......