Broken robot

Broken robot

关键

期望用倒退,采用高斯消元求解

代码

#include <bits/stdc++.h>
using namespace std;
const int M=1005;
double a[M][M],f[M];
int n,m;
void solve(int x) {//哪一行
for(int i=1;i<=m;i++) {//列出了m个方程组
if(i==1) {
a[i][i]=2;
a[i][i+1]=-1;
a[i][m+1]=3+f[i];
}
else if(i==m) {
a[i][i]=2;
a[i][i-1]=-1;
a[i][m+1]=3+f[i];
}
else {
a[i][i]=3;
a[i][i+1]=-1;
a[i][i-1]=-1;
a[i][m+1]=4+f[i];
}
}
for(int i=1;i<m;i++) {//这里需要变化就只有相邻的几项而已,所以可以o1进行消元
double p=a[i+1][i]/a[i][i];
a[i+1][i]=0;
a[i+1][i+1]-=a[i][i+1]*p;
a[i+1][m+1]-=a[i][m+1]*p;
}
f[m]=a[m][m+1]/a[m][m];
for(int i=m-1;i>=1;i--)
f[i]=(a[i][m+1]-f[i+1]*a[i][i+1])/a[i][i];
}
int main() {
cin>>n>>m;
int sx,sy;
cin>>sx>>sy;
if(m==1) printf("%.10lf\n",2.0*(n-sx));
else {
for(int i=n-1;i>=sx;i--)solve(i);
printf("%.10lf\n",f[sy]);
}
return 0;
}
posted @   basicecho  阅读(15)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示