HDU3359(SummerTrainingDay05-I 高斯消元)
Kind of a Blur
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 2754 Accepted Submission(s): 751
Problem Description
In this problem, all images are in grey-scale (no colours). Images are represented as a 2 dimensional matrix of real numbers, where each cell corresponds to the brightness of the corresponding pixel. Although not mathematically accurate, one way to describe a blurred image is through averaging all the pixels that are within (less than or equal to) a certain Manhattan distance?from each pixel (including the pixel itself ). Here's an example of how to calculate the blurring of a 3x3 image with a blurring distance of 1:
Given the blurred version of an image, we are interested in reconstructing the original version assuming that the image was blurred as explained above.
Input
Zero or more lines (made entirely of white spaces) may appear between cases. The last line of the input file consists of three zeros.
Output
Sample Input
1 1
1 1
3 3 1
19 14 20
12 15 18
13 14 16
4 4 2
14 15 14 15
14 15 14 15
14 15 14 15
14 15 14 15
0 0 0
Sample Output
1.00 1.00
2.00 30.00 17.00
25.00 7.00 13.00
14.00 0.00 35.00
1.00 27.00 2.00 28.00
21.00 12.00 17.00 8.00
21.00 12.00 17.00 8.00
1.00 27.00 2.00 28.00
Hint
The Manhattan Distance (sometimes called the Taxicab distance) between
two points is the sum of the (absolute) difference of their coordinates.
The grid on the lower right illustrates the Manhattan distances from the grayed cell.
Source
//2017-08-05
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <cmath> using namespace std; const int N = ;
const double eps = 1e-;
int n, m, d;
double G[N][N], A[N*N][N*N], x[N*N];
int equ, var; int Gauss(){
int i, j, k, col, max_r;
for(k = , col = ; k < equ && col < var; k++, col++){
max_r = k;
for(i = k+; i < equ; i++)
if(fabs(A[i][col]) > fabs(A[max_r][col]))
max_r = i;
if(fabs(A[max_r][col]) < eps)return ;
if(k != max_r){
for(j = col; j < var; j++)
swap(A[k][j], A[max_r][j]);
swap(x[k], x[max_r]);
}
x[k] /= A[k][col];
for(j = col+; j < var; j++)
A[k][j] /= A[k][col];
A[k][col] = ;
for(i = ; i < equ; i++)
if(i != k){
x[i] -= x[k]*A[i][k];
for(j = col+; j < var; j++)
A[i][j] -= A[k][j]*A[i][col];
A[i][col] = ;
}
}
return ;
} int main()
{
bool fg = true;
while(scanf("%d%d%d", &m, &n, &d)!=EOF){
if(!n && !m)break;
if(!fg)printf("\n");
fg = false;
memset(A, , sizeof(A));
for(int i = ; i < n; i++)
for(int j = ; j < m; j++){
scanf("%lf", &G[i][j]);
x[i*m+j] = G[i][j];
}
for(int i = ; i < n*m; i++){
int cnt = ;
for(int j = ; j < n*m; j++){
int x = i/m;
int y = i%m;
int dx = j/m;
int dy = j%m;
if(abs(x-dx)+abs(y-dy) <= d){
A[i][j] = 1.0;
cnt++;
}else A[i][j] = 0.0;
}
x[i] *= cnt;
}
equ = n*m;
var = n*m;
Gauss();
for(int i = ; i < n*m; i++){
if(i % m == m-)printf("%8.2lf\n", x[i]);
else printf("%8.2lf", x[i]);
}
} return ;
}
HDU3359(SummerTrainingDay05-I 高斯消元)的更多相关文章
- 【BZOJ-3143】游走 高斯消元 + 概率期望
3143: [Hnoi2013]游走 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 2264 Solved: 987[Submit][Status] ...
- 【BZOJ-3270】博物馆 高斯消元 + 概率期望
3270: 博物馆 Time Limit: 30 Sec Memory Limit: 128 MBSubmit: 292 Solved: 158[Submit][Status][Discuss] ...
- *POJ 1222 高斯消元
EXTENDED LIGHTS OUT Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 9612 Accepted: 62 ...
- [bzoj1013][JSOI2008][球形空间产生器sphere] (高斯消元)
Description 有一个球形空间产生器能够在n维空间中产生一个坚硬的球体.现在,你被困在了这个n维球体中,你只知道球 面上n+1个点的坐标,你需要以最快的速度确定这个n维球体的球心坐标,以便于摧 ...
- hihoCoder 1196 高斯消元·二
Description 一个黑白网格,点一次会改变这个以及与其连通的其他方格的颜色,求最少点击次数使得所有全部变成黑色. Sol 高斯消元解异或方程组. 先建立一个方程组. \(x_i\) 表示这个点 ...
- BZOJ 2844 albus就是要第一个出场 ——高斯消元 线性基
[题目分析] 高斯消元求线性基. 题目本身不难,但是两种维护线性基的方法引起了我的思考. void gauss(){ k=n; F(i,1,n){ F(j,i+1,n) if (a[j]>a[i ...
- SPOJ HIGH Highways ——Matrix-Tree定理 高斯消元
[题目分析] Matrix-Tree定理+高斯消元 求矩阵行列式的值,就可以得到生成树的个数. 至于证明,可以去看Vflea King(炸树狂魔)的博客 [代码] #include <cmath ...
- UVALive 7138 The Matrix Revolutions(Matrix-Tree + 高斯消元)(2014 Asia Shanghai Regional Contest)
题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&category=6 ...
- [高斯消元] POJ 2345 Central heating
Central heating Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 614 Accepted: 286 Des ...
随机推荐
- java之Collection框架
Collection的一些框架类的关系图: 1 Collection简介 Collection的定义 public interface Collection<E> extends Iter ...
- 面试题-lazyMan实现
原文:如何实现一个LazyMan 面试题目 实现一个LazyMan,可以按照以下方式调用: LazyMan('Hank'),输出: Hi, This is Hank! LazyMan('Hank'). ...
- Flask-SQLAlchemy插件
一,初始化 两种方式: db = SQLAlchemy() def create_app(): app = Flask(__name__) db.init_app(app) return app ap ...
- 封装、构造方法、private、Static与this关键字、main()_Day07
1:成员变量和局部变量的区别(理解) (1)定义位置区别: 成员变量:定义在类中,方法外. 局部变量:定义在方法中,或者方法声明上. (2)初始化值的区别: 成员变量:都有默 ...
- Oracle的卸载过程步骤
用Oracle自带的卸载程序不能从根本上卸载Oracle,从而为下次的安装留下隐患,那么怎么才能完全卸载Oracle呢?那就是直接注册表清除,步骤如下: 1. 开始->设置->控制面板-& ...
- (转)kafka实战教学
转载自:https://www.cnblogs.com/hei12138/p/7805475.html Apache kafka 工作原理介绍-----https://www.ibm.com/deve ...
- 一口一口吃掉Volley(三)
欢迎访问我的个人博客转发请注明出处:http://www.wensibo.top/2017/02/17/一口一口吃掉Volley(三)/ 学习了一口一口吃掉Volley(二)之后,你应该已经学会了如何 ...
- Intent的那些事儿
请原谅我用这么文艺的标题来阐释一颗无时无刻奔腾着的2B青年的心.可是今天要介绍的Intent绝不2B,甚至在我看来,或许还有些许飘逸的味道,至于飘逸在哪里呢?那我们就好好来剖析剖析Intent和它的好 ...
- Sublime Text3 一些实用设置
字体大小 "font_size": 14 高亮编辑中的那一行 "highlight_line": true 当你把脑袋扭过到显示器以外的地方后再回头看编辑器,光 ...
- GoogLeNetv4 论文研读笔记
Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning 原文链接 摘要 向传统体系结构中引入 ...