标签:const int else 蓝桥 印章 1.0 习题 dp define
#include <bits/stdc++.h>
//#pragma GCC optimize(3, "Ofast", "inline")//03优化有问题我nm
using namespace std;
#define ll long long
#define pii pair<int, int>
#define pll pair<long long, long long>
#define lowbit(x) x &(-x)
#define IOS ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
const int N = 1e5 + 100; //sqrt(1e9)
const int M = 1e6 + 100;
const int mod = 10007;
const int inf = 0x3f3f3f3f;
//const int eps = 1e-8;
const double pi = acos(-1.0); //pi=3.1415926...
int n, m;
double dp[100][100], p;
void init()
{
for (int i = 1; i <= m; i++)//
{
// dp[i][1] = (i == 1 ? 1 : pow(1.0 / n, i - 1));
for (int j = 1; j <= n; j++)
{
if (j == 1)
{
dp[i][j] = pow(p, i - 1);
// puts("dwadad");
} else if (i < j)
{
dp[i][j] = 0;
// puts("*********");
}//
else
{
dp[i][j] = dp[i - 1][j] * (j * 1.0 / n) + dp[i - 1][j - 1] * ((n - j + 1) * 1.0 / n);
// printf("%d**********%d\n", i, j);
}
}
}
}
int main()
{
// IOS;
scanf("%d%d", &n, &m);
p = 1.0 / n;
// cout << p << endl;
// cout << pow(p, 1 - 1) << endl;
init();
printf("%.4lf\n", dp[m][n]);
}
就一个dp,没啥好说的;总结一下今天发现的一个坑,else 只对上面的那个if【或者else if】有用,如果是if,if,else 这样的话,程序会先进入第一个if ,不满足第二个if 时候进入else ,这样导致可能会覆盖第一个if 的结果
解决办法就是可以换成if,else if,else这样
标签:const,int,else,蓝桥,印章,1.0,习题,dp,define 来源: https://blog.csdn.net/qq_51201910/article/details/121468629
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。