zoukankan      html  css  js  c++  java
  • 牛客练习赛38 A:出题人的RP值 (贪心)

    链接:https://ac.nowcoder.com/acm/contest/358/A
    来源:牛客网
     

    题目描述

    众所周知,每个人都有自己的rp值(是个非负实数),膜别人可以从别人身上吸取rp值。

    然而当你膜别人时,别人也会来膜你,互膜一段时间后,你们就平分了两人原有的rp值,当你膜过一个人之后,你就不能再膜那个人了

    出题人发现自己的rp值为x,出题人周围有n个人,第i个人的rp值为a[i]

    你要选择膜哪些人和膜人的顺序,使出题人的最终rp值最大

    输入描述:

    第一行两个数n,x,人数和出题人的初始rp值
    第二行n个数,第i个数a[i]表示第i个人的rp值

    输出描述:

    一行一个数表示出题人的最终rp值(保留三位小数)

    示例1

    输入

    复制

    1 0
    1

    输出

    复制

    0.500

    备注:

    数据范围:
    n<=100000,a[i]<=100000,x<=100000,(a[i],x都是整数)

    首先是要从小到大膜人,因为如果先膜大地再膜晓得,就会使小的获得的rp值增大,

    如果遇到比自己rp小的就不用膜,因为会使自己的rp值变小。

    #include<stdio.h>
    #include<algorithm>
    using namespace std;
    #define N 100020
    int a[N];
    int main()
    {
    	double ans;
    	int i,x,n;
    	scanf("%d%d",&n,&x);
    	for(i=0;i<n;i++)
    		scanf("%d",&a[i]);
    	ans=x;
    	sort(a,a+n);
    	for(i=0;i<n;i++)
    		if(a[i]>ans)
    			ans=(ans+a[i])/2;
    	printf("%.3lf
    ",ans);
    	return 0;
    }
  • 相关阅读:
    HDU 2544 最短路
    HDU 3367 Pseudoforest
    USACO 2001 OPEN
    HDU 3371 Connect the Cities
    HDU 1301 Jungle Roads
    HDU 1879 继续畅通工程
    HDU 1233 还是畅通工程
    HDU 1162 Eddy's picture
    HDU 5745 La Vie en rose
    HDU 5744 Keep On Movin
  • 原文地址:https://www.cnblogs.com/zyq1758043090/p/11852814.html
Copyright © 2011-2022 走看看