1271 广告系统

 
描述

某广告频道,采用了一种新的广告系统。对于每个广告都有一个给定的价值,该系统总是会从现有的广告中选择价值最高的广告播出。该系统从运行开始每秒钟都会接到一条新广告,只有当新的广告的价值严格大于原来的广告时才会更换广告。

现在按时间顺序给出系统开始的n 秒内接到的广告的价值。要求计算出该广告频道在这段时间内实际播放的广告数量和播放广告数量的期望。

输入

第一行一个整数 T ,表示有T组数据:
对于每组数据有两行:第一行为一个正整数 n (n ≤ 1,000,000) 表示系统运行时间,第二行有 n 个整数,第 i个数表示第 i 秒接到广告的价值。

输出

对于每组测试数据,输出两行: 第一行为一个整数表示实际播放的广告数量,第二行为一个实数表示播放广告数量的期望(期望保留3位小数)。

样例输入
2
1
105448456 
2
746865872 354878401
样例输出
1
1.000
1
1.500

简单的模拟题,求期望

#include <stdio.h>

int main()
{
	int n;
	int i,j;
	int x;
	long long int now; 
	int count;
	long long int y;
	double total;
	int k;
	scanf("%d",&n);
	for ( i=0;i<n;i++)
	{
		
		scanf("%d",&x);
	    now=0;
		count=0;
      
		for (j=0;j<x;j++)
		{			
			scanf("%lld",&y);
			if (y>now)
			{
				now=y;
				count++;
			}
		}
		printf("%d\n",count);
	
		total=0;
		for ( k=1;k<=x;k++)
			total+=(double)(1)/k;
		   
		printf("%.3lf\n",total);
       
		
	}
	return 0;
}


 

你可能感兴趣的:(1271 广告系统)