zoukankan      html  css  js  c++  java
  • 算法复习——高斯消元(ssoi)

    题目:

    题目描述

    Tom 是个品学兼优的好学生,但由于智商问题,算术学得不是很好,尤其是在解方程这个方面。虽然他解决 2x=2 这样的方程游刃有余,但是对于下面这样的方程组就束手无策了。
    x+y=3
    x-y=1
    于是他要你来帮忙。给定一个线性多元一次方程组,请你求出所有未知数的解。
    保证在 int 范围内可以处理所有问题。

    输入格式

    输入文件的第一行一个数字 N(1≤N≤100),表示给定的方程组中的未知数的个数,同时也是这个方程组含有的方程个数。
    第 2 到 N+1 行,每行 N+1 个数。每行的前 N 个数表示第 1 到 N 个未知数的系数。第 N+1 个数表示 N 个未知数乘以各自系数后再相加的和。

    输出格式

    输出一行,有 N 个整数,表示第 1 到 N 个未知数的值(整数解),而且数据保证有整数解。

    样例数据 1

    输入  [复制]


    1 1 3 
    1 -1 1

    输出

          2 1

    题解:

    高斯消元模板题,具体过程见:http://jingyan.baidu.com/album/39810a23e40c80b636fda63a.html?picindex=1

    代码:

    #include<iostream>
    #include<cstdio>
    #include<cstdlib>
    #include<cmath>
    #include<ctime>
    #include<cctype>
    #include<cstring>
    #include<string>
    #include<algorithm>
    using namespace std;
    double map[105][105],ans[105];
    int n;
    int main()
    {
      //freopen("a.in","r",stdin);
      scanf("%d",&n);
      for(int i=1;i<=n;i++)
        for(int j=1;j<=n+1;j++)
          scanf("%lf",&map[i][j]);
      for(int i=1;i<=n;i++)
      {
        bool flag=false;
        if(!map[i][i])
        {
          for(int j=i+1;j<=n;j++)
            if(map[j][i])
            {
              flag=true;
              for(int k=i;k<=n+1;k++)
                swap(map[j][k],map[i][k]);
            } 
          if(flag==false)  continue;
        }
        for(int j=i+1;j<=n;j++)
        {  
          double temp=map[j][i]/map[i][i];
          for(int k=i;k<=n+1;k++)
            map[j][k]-=temp*map[i][k];
        }
      }
      for(int i=n;i>=1;i--)
      {
        ans[i]=map[i][n+1]/map[i][i];
        for(int j=i-1;j>=1;j--)
          map[j][n+1]-=map[j][i]*ans[i];
      }
      for(int i=1;i<=n;i++)
        cout<<(int)(ans[i]+0.5)<<' ';
      return 0;
    }
  • 相关阅读:
    CSS禁止换行
    oracle时间转换:12小时24小时制
    三层架构各层次的职责
    Oracle截取字符串和查找字符串
    "......"的类型初始值设定项引发异常
    Oracle中对现有表增加列
    CSS 设置table 样式
    Aspose.Cells 根据Excel模板导出数据统计
    利用正则表达式限制网页表单里的文本框输入内容
    Table 边框 css设置
  • 原文地址:https://www.cnblogs.com/AseanA/p/7245937.html
Copyright © 2011-2022 走看看