ECUST 09年 校赛个人赛第六,七场总结
A Grey Area
#include<iostream>
using namespace std;
int pe[20];
int main()
{
int n,w;
while(cin>>n>>w, n || w)
{
int value;
int peNum = 0;
int Max = 0;
int valueMax = 0;
memset(pe,0,sizeof(pe));
while(n --)
{
scanf("%d",&value);
while(value >= Max)
{
peNum ++;
Max = peNum * w;
}
pe[value / w] ++;
if(pe[value / w] > valueMax)
valueMax = pe[value / w];
}
double output = 0.01;
for(int i = 0 ; i < peNum ; i ++)
output += ((double)pe[i] / (double)valueMax)
* ((double)(peNum - i - 1) / (double)(peNum - 1));
printf("%lf\n",output);
}
return 0;
}B Expected Allowance
第七场
B要注意一下判断的优先级.
E Stock Exchange
C题很烦,但是我觉得可以通过列出各种特殊情况出来死套。太烦了所以没写
D题我觉得可以通过DP+Hash来完成,按最长子序列的反向DP(不过我觉得等我想出来DP方案时间也到了,就没写)
F题我没什么思路
G题我认为可以DP,主要是算出三个子段的最小值,且三个子段的长度和为k-1,但是DP的话要写24种分支,我觉得这个方法并不好,所以也没写
Last updated
Was this helpful?