2 条题解
-
0
#include<bits/stdc++.h> //by:hansang 代码来源于 y总 using namespace std; const int N=1100; int n, m, x, y; double a[N][N], f[N][N]; void gauss() { for(int i=1; i<=m; i++) //下面每一行和上面消元 { double bl=a[i+1][i]/a[i][i]; //i行第i个*bl就变成i+1行第i个 int d[3]={i, i+1, m+1}; //数组方便取值 for(int j=0; j<3; j++) a[i+1][d[j]]-=a[i][d[j]]*bl; //和上面约 a[i+1][i]=0; //加不加好像没什么关系 (  ̄ ▽  ̄ )" } for(int i=m; i; i--) { a[i-1][m+1]-=a[i-1][i]/a[i][i]*a[i][m+1]; //a[i−1][i]/a[i][i]也是个比例,不过是i行第i个*bl就变成i−1行第i个 //基本思路和上面是一样的,就是i−1和 i约 a[i-1][i]=0; //加不加 2号 } } int main() { scanf("%d%d%d%d", &n, &m, &x, &y); if(m==1) printf("%.4lf\n", 2.0*(n-x)); //只有向下和在原地可以选 else { for(int i=n-1; i>=x; i--) { a[1][1]=2.0/3; a[1][2]=-1.0/3; a[1][m+1]=f[i+1][1]/3+1; //把参数存进数组里 (详细参考 y总推公式 16:20 a[m][m]=2.0/3; a[m][m-1]=-1.0/3; a[m][m+1]=f[i+1][m]/3+1; for(int j=2; j<m; j++) { a[j][j-1]=-1.0/4; a[j][j]=3.0/4; a[j][j+1]=-1.0/4; a[j][m+1]=f[i+1][j]/4+1; } gauss(); for(int j=1; j<=m; j++) f[i][j]=a[j][m+1]/a[j][j]; //除参数既是答案 } printf("%.4lf\n", f[x][y]); } return 0; } -
0
#include<bits/stdc++.h> //by:hansang 代码来源于 y总 using namespace std; const int N=1100; int n, m, x, y; double a[N][N], f[N][N]; void gauss() { for(int i=1; i<=m; i++) //下面每一行和上面消元 { double bl=a[i+1][i]/a[i][i]; //i行第i个*bl就变成i+1行第i个 int d[3]={i, i+1, m+1}; //数组方便取值 for(int j=0; j<3; j++) a[i+1][d[j]]-=a[i][d[j]]*bl; //和上面约 a[i+1][i]=0; //加不加好像没什么关系 (  ̄ ▽  ̄ )" } for(int i=m; i; i--) { a[i-1][m+1]-=a[i-1][i]/a[i][i]*a[i][m+1]; //a[i-1][i]/a[i][i]也是个比例,不过是i行第i个*bl就变成i-1行第i个 //基本思路和上面是一样的,就是i-1和 i约 a[i-1][i]=0; //加不加 2号 } } int main() { scanf("%d%d%d%d", &n, &m, &x, &y); if(m==1) printf("%.4lf\n", 2.0*(n-x)); //只有向下和在原地可以选 else { for(int i=n-1; i>=x; i--) { a[1][1]=2.0/3; a[1][2]=-1.0/3; a[1][m+1]=f[i+1][1]/3+1; //把参数存进数组里 (详细参考 y总推公式 16:20 a[m][m]=2.0/3; a[m][m-1]=-1.0/3; a[m][m+1]=f[i+1][m]/3+1; for(int j=2; j<m; j++) { a[j][j-1]=-1.0/4; a[j][j]=3.0/4; a[j][j+1]=-1.0/4; a[j][m+1]=f[i+1][j]/4+1; } gauss(); for(int j=1; j<=m; j++) f[i][j]=a[j][m+1]/a[j][j]; //除参数既是答案 } printf("%.4lf\n", f[x][y]); } return 0; }
- 1
信息
- ID
- 1377
- 时间
- 1000ms
- 内存
- 64MiB
- 难度
- 4
- 标签
- 递交数
- 33
- 已通过
- 18
- 上传者