zoukankan      html  css  js  c++  java
  • zzulioj--1716--毒(模拟水题)

    

    1716: 毒

    Time Limit: 2 Sec  Memory Limit: 128 MB
    Submit: 96  Solved: 43

    SubmitStatusWeb Board

    Description

    现有n瓶毒药,第1瓶毒药的毒性为1,第i瓶毒药比第i-1瓶毒药的毒性增长了(((i-1)*K)%M),将第i瓶毒药的毒性记做vi。
    你可以将任意两瓶毒药混合。若将第i瓶毒药和第j瓶毒药混合,则混合后的毒药的毒性为2*sqrt(vi*vj)。(sqrt表示开方)。
    合并到最后,将会只剩下一瓶毒药。请问最后剩下的毒药的毒性最小是多少?

    Input

    第一行一个数T,表示有T组数据。
    每组数据只有一行,包含三个数n, K, M。
    (n <= 1000000)
    (K, M <= 1000)

    Output

    对于每组数据,输出一个剩余毒药的最小毒性。保留三位小数。

    Sample Input

    2
    2 2 1000
    3 2 1000

    Sample Output

    3.464
    6.055

    读题很重要啊!!!原来是第i瓶比第i-1瓶毒性高那摩多!怪不得测试数据都不过,不过有一点就是要把毒性排序,因为已经取余了


    #include<stdio.h>
    #include<string.h>
    #include<math.h> 
    #include<algorithm>
    using namespace std;
    int a[1000100]; 
    int main()
    {
    	int t;
    	scanf("%d",&t);
    	while(t--)
    	{
    		memset(a,0,sizeof(a));
    		int n,k,m;
    		scanf("%d%d%d",&n,&k,&m);
    		a[1]=1;
    		for(int i=2;i<=n;i++)
    		a[i]=a[i-1]+((i-1)*k)%m;
    		sort(a+1,a+1+n);
    		double s=a[n];
    		for(int i=n-1;i>=1;i--)
    		s=2*sqrt(s*a[i]);
    		printf("%.3f
    ",s);
    	}
    	return 0;
    }


  • 相关阅读:
    node.js中的全局变量——global
    Element-UI库 源码架构浅析
    如何搭建一个自己cli
    webpack实践之DLLPlugin 和 DLLReferencePlugin
    HappyPack优化
    线程和进程
    kafka?kafaka! kafka...
    Dubbo的初步理解和使用
    Redis的安装和启动
    解析Spring MVC上传文件
  • 原文地址:https://www.cnblogs.com/playboy307/p/5273564.html
Copyright © 2011-2022 走看看