201911192027491 level
获赞
15
粉丝
3
关注
4
看过 TA
11
门头沟学院
2021
游戏后端
IP属地:上海
暂未填写个人简介
私信
关注
2021-04-03 13:59
已编辑
门头沟学院 游戏后端
第一题. 牛牛抛一个特殊的硬币,正面朝上的概率是百分之p。现有2n个数,将其分成n组,每组2个数。对于每组数都抛一次硬币,正面朝上选两个数中的较大值,否则选较小值。问如何分组能使期望最大? 输入:第一行 n p 第二行2n个数 输出:期望 例1: 输入:3 0 1 3 3 2 2 3 输出:6 说明:把他分为(1,3) (2,2) (3,3)三组,得到的期望是1*100%+2*100%+3*100%=600%,没有比这期望更大的分组方式了。 第二题. 牛牛上台阶,有n阶台阶,牛牛每次只能跨1~m阶(m<...
努力学习的菜鸡🐔:#include<bits/stdc++.h> using namespace std; const int mod = 1e9+7; int main(){ int n,m; cin>>n>>m; if(n<=2){ cout<<1<<endl; } vector<vector<vector<long>>>dp(n+1,vector<vector<long>>(m+1,vector<long>(m+1,0))); for(int i=1;i<=m;i++){ dp[i][i][0]=1; } for(int i=3;i<=n;i++){ // 第二层表示这一步迈出的台阶数 for(int j=1;j<=min(m,i);j++){ // 第三层表示上一步迈出的台阶数 for(int k=1;k<=min(m,i);k++){ if(k==j){ continue; } for(int s=0;s<=min(m,i);s++){ if(s==j||s==k){ continue; } dp[i][j][k] += dp[i-j][k][s]; dp[i][j][k]%=mod; } } } } long long sum=0; for(int j=1;j<=m;j++){ for(int k=1;k<=m;k++){ sum+=dp[n][j][k]; sum%=mod; } } cout<<sum<<endl; return 0; }
投递百度等公司10个岗位 >
0 点赞 评论 收藏
分享
关注他的用户也关注了:
牛客网
牛客企业服务