建立方程后消元

#include<cstdio>
#include<iostream>
#include<cstdlib>
#include<cstring>
#include<string>
#include<algorithm>
#include<map>
#include<queue>
#include<vector>
#include<cmath>
#include<utility>
using namespace std;
typedef long long LL;
const int N = 108, INF = 0x3F3F3F3F;
const double eps = 1e-8;
double f[N][N];
bool inf[N]; template<typename T>
void gauss_jordan(T A[N][N], int n){
for(int i = 0; i < n; i++){
//选择一行r与第i行交换
int r = i;
for(int j = i + 1; j < n; j++){
if(abs(A[j][i]) > abs(A[r][i])){
r = j;
}
}
if(abs(A[r][i]) < eps){
continue;
}
if(r != i){
for(int j = 0; j <= n; j++){
swap(A[r][j], A[i][j]);
}
}
for(int k = 0; k < n; k++){
if(k != i){
for(int j = n; j >= i; j--){
A[k][j] -= A[k][i] / A[i][i] * A[i][j];
}
}
}
}
} int main(){
bool flag = 0;
int h, w, d;
while(scanf("%d %d %d", &w, &h, &d), w || h || d){
memset(f, 0, sizeof(f));
for(int i = 0; i < h; i++){
for(int j = 0; j < w; j++){
double t;
scanf("%lf", &t);
int u = i * w + j;
f[u][w * h] = t;
int cnt = 0;
for(int x = max(0, i - d) ; x <= min(h - 1, i + d); x++){
for(int y = max(0, j - d) ; y <= min(w - 1, j + d); y++){
if(abs(x - i) + abs(y - j) <= d){
cnt ++;
}
}
} for(int x = max(0, i - d) ; x <= min(h - 1, i + d); x++){
for(int y = max(0, j - d) ; y <= min(w - 1, j + d); y++){
if(abs(x - i) + abs(y - j) <= d){
int v = x * w + y;
f[u][v] = 1.0 / (double)cnt;
}
}
}
}
}
gauss_jordan(f, w * h);
if(flag){
printf("\n");
}
flag = 1;
for(int i = 0; i < h; i++){
for(int j = 0; j < w; j++){
printf("%8.2f", f[i * w + j][w * h] / f[i * w + j][i * w + j]);
}
printf("\n");
} }
return 0;
}

  

HDU3359 Kind of a Blur(高斯消元)的更多相关文章

  1. hdu 3359 Kind of a Blur (高斯消元 浮点型)

    题目链接 题意: H * W (W,H <= 10) 的矩阵A的某个元素A[i][j],从它出发到其他点的曼哈顿距离小于等于D的所有值的和S[i][j]除上可达点的数目,构成了矩阵B.给定矩阵B ...

  2. HDU 3359 Kind of a Blur(高斯消元)

    题意: H * W (W,H <= 10) 的矩阵A的某个元素A[i][j],从它出发到其他点的曼哈顿距离小于等于D的所有值的和S[i][j]除上可达点的数目,构成了矩阵B.给定矩阵B,求矩阵A ...

  3. HDU3359(SummerTrainingDay05-I 高斯消元)

    Kind of a Blur Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...

  4. HDU_3359 Kind of a Blur 【浮点型高斯消元+BFS】

    一.题目 Kind of a Blur 二.分析 题目读起来挺费劲的. 主要就是要求一个矩阵,其中每个点及其于这个的曼哈顿距离小于D的点的值总和的平均值就是新生成的矩阵. 给定新生成的矩阵,求初始矩阵 ...

  5. 【BZOJ-3143】游走 高斯消元 + 概率期望

    3143: [Hnoi2013]游走 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 2264  Solved: 987[Submit][Status] ...

  6. 【BZOJ-3270】博物馆 高斯消元 + 概率期望

    3270: 博物馆 Time Limit: 30 Sec  Memory Limit: 128 MBSubmit: 292  Solved: 158[Submit][Status][Discuss] ...

  7. *POJ 1222 高斯消元

    EXTENDED LIGHTS OUT Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 9612   Accepted: 62 ...

  8. [bzoj1013][JSOI2008][球形空间产生器sphere] (高斯消元)

    Description 有一个球形空间产生器能够在n维空间中产生一个坚硬的球体.现在,你被困在了这个n维球体中,你只知道球 面上n+1个点的坐标,你需要以最快的速度确定这个n维球体的球心坐标,以便于摧 ...

  9. hihoCoder 1196 高斯消元·二

    Description 一个黑白网格,点一次会改变这个以及与其连通的其他方格的颜色,求最少点击次数使得所有全部变成黑色. Sol 高斯消元解异或方程组. 先建立一个方程组. \(x_i\) 表示这个点 ...

随机推荐

  1. 5.3---找最近的两个数(CC150)

    public static int[] getCloseNumber(int x){ int[] res = new int[2]; int i = 1; int num = oneNumber(x) ...

  2. Linux下端口被占用解决

      有时候关闭软件后,后台进程死掉,导致端口被占用.下面以JBoss端口8083被占用为例,列出详细解决过程. 解决方法: 1.查找被占用的端口 netstat -tln netstat -tln | ...

  3. 用Kibana和logstash快速搭建实时日志查询、收集与分析系统

    Logstash是一个完全开源的工具,他可以对你的日志进行收集.分析,并将其存储供以后使用(如,搜索),您可以使用它.说到搜索,logstash带有一个web界面,搜索和展示所有日志. kibana ...

  4. block,inline和inline-block对比

    总体概念 block和inline这两个概念是简略的说法,完整确切的说应该是 block-level elements (块级元素) 和 inline elements (内联元素).block元素通 ...

  5. Python模块常用的几种安装方式

    Python模块安装方法 一.方法1: 单文件模块直接把文件拷贝到 $python_dir/Lib 二.方法2: 多文件模块,带setup.py 下载模块包,进行解压,进入模块文件夹,执行:pytho ...

  6. SUSE下FTP服务器搭建

    FTP(File Transfer Protocol),是TCP/IP网络上两台计算机传送文件的协议,是在TCP/IP网络和Internet上最早使用的协议之一,属于网络协议组的应 用层.FTP客户机 ...

  7. backup daily

    #!/bin/bash # #This is a test in book.thanks for Richard Blum. #Please put this file to crontab,than ...

  8. OKhttp的封装(下)

    OKhttpManager2.Class  请求工具类 package com.example.administrator.okhttp3; import android.os.Handler; im ...

  9. 【leetcode】Partition List(middle)

    Given a linked list and a value x, partition it such that all nodes less than x come before nodes gr ...

  10. NIS 报错No such map passwd.byname. Reason: Can't bind to server which serves this domain

    在NIS—client端使用命令:ypcat passwd ,把错如上题, 原因:client端ypbind服务未启动解决方法:当然是启动ypbind了,命令:service ypbind start ...