高次osu(重邮第13届ACM程序设计大赛-网络赛)

高次osu

题目链接
~~ (描述太长了就不截了)~~
这是一道osu的延展题,不过它每次对期望的贡献值为x的k次方,k的范围为1到10。对于每次贡献的增量为x+1的k次方减x的k次方,然后可以使用二项展开式用于计算,但是和经典的osu问题一样需要维护x的1次方到x的k-1次方,存储在x数组里,然后把x+=的结果存在y数组里,因为osu里最后的贡献不含上次x的k次方需要先存起来,最后减去此项的结果维护最后的结果就行了。

#include <bits/stdc++.h>
using namespace std;
int n,k;
double x[11],p,y[11];
double C(int m,int i)//用于计算Cn/m的函数
{
    if(m == i) return 1;
    if(m - i < i) i = m - i;
    double x  = 1.0,y = 1.0;
    for(int j = 1;j <= i;j ++)
    {
        x *= (m - j + 1);
        y *= j;
    }
    return x / y;
}
double fun(int m)//用于计算二项展开式
{
    double res = 0;
    for(int i = m;i >= 1;i --) res += C(m,i) * x[i];
    return res + 1;
}
int main()
{
    scanf("%d %d", &n,&k);
    while(n --)
    {
        scanf("%lf", &p);
        double res = x[k];
        for(int i = k;i >= 1;i --) 
        {
            x[i] = fun(i) * p;
            y[i] += x[i];
        }
        y[k] -= res * p;//减去上次的项与此处概率乘积的结果,维护最后的结果
    }
    printf("%.1lf",y[k]);
    return 0;
}
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 重庆邮电大学程序设计基础是一个面向计算机编程初学者的课程,主要介绍计算机编程的基本概念、基础知识和编程技巧,包括数据类型、运算符、控制结构、函数、数组、指针等内容。通过学习这门课程,学生可以掌握计算机编程的基本原理和方法,为后续的计算机编程学习打下坚实的基础。 ### 回答2: 重庆邮电大学的程序设计基础课程是计算机专业中非常重要的一门课程,旨在培养学生的计算机编程基本能力和算法设计思维。 首先,该课程将从计算机的工作原理和程序的基本结构开始,介绍计算机程序的基本概念和编程语言的基本语法,帮助学生建立起正确的编程思维和操作习惯。学生将学习到如何编写程序来解决实际问题,如控制流程、循环结构、函数、数组等基本编程概念和技巧。 其次,课程将重点讲解算法设计和分析的基本原理和方法。学生将学习到如何通过算法设计来解决复杂的问题,如排序、查找、图搜索等。同时,还将介绍常见的数据结构,如数组、链表、栈、队列等,以及对应的算法的基本思想和实现。 此外,课程还会通过实践训练来巩固学生的理论知识和实际应用能力。学生将进行一系列的编程练习和项目实践,通过实际操作来提高编程能力和解决问题的能力。 总体来说,重庆邮电大学的程序设计基础课程是一门为学生打下计算机编程基础和算法设计思维的重要课程。通过学习这门课程,学生可以掌握基本的编程技能和算法思维,为日后的计算机专业学习和工作打下坚实的基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BlueSkyπ_π

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值