您的位置:首页 > 理论基础 > 计算机网络

2014 鞍山网络赛 hdu 5003 Osu!

2014-09-13 21:25 267 查看
//以下是陈立杰大牛写的 题解:膜拜

A: 首先如果是联通的情况大家都会算吧。那么答案等于联通的数量-不2-edge-联通的数量。。。注意到后者我们可以枚举每个所有2-联通分量的划分,然后算出有多少种生成树把他们连起来。对于每个划分就是一个子集合的子问题了,类似解决。

B:rotate是一个线性变换,简单的推推公式就行了。当然一个overkill是用复数表示旋转,如果你会的话。

C:首先可以把相邻的+合并,注意到之后最多有20个+,那么从高位往低位dp,每次记录每个+那里需不需要进位。

D:  可以证明选择的点必然是存在一个x,然后选择所有维度数值和=x的点,然后再注意到最优的x必然可以是输入t_i的和的1/2。

E: 枚举删除一个点,然后log的矩阵乘法。

F:简单粗暴的LCT模板题。

G:简单粗暴的送分题。

H:搜索题,需要较多的剪枝。

I:阅读理解题。。。。看懂了题目就不难做了。。。。

J:注意到。。。m=4n,而且输入随机。。。。我们把所有有0边相邻的点缩起来,然后点数就不多啦,所以解解方程就行了。。。然后如果暴力迭代其实也行。。。
////////////////////////////////

签到题:

int  a[51];
int main()
{
int T,n;
scanf("%d",&T);
while(T--)
{
scanf("%d",&n);
for(int i=0;i<n;i++)
scanf("%d",&a[i]);
sort(a,a+n);
double base=1.0;
double ans=0.0;
for(int i=0;i<n;i++)
{
ans=ans+a[n-i-1]*base;
base=base*0.95;
}
printf("%lf\n",ans);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: