HDOJ 3359 Kind of a Blur
用高斯消元对高斯模糊的图像还原....
Kind of a Blur
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 1321 Accepted Submission(s): 383
topics in image processing. This process is called deblurring, which will be your task for this problem.
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.
<= min(W/2,H/2)). The remaining H lines specify the gray-level of each pixel in the blurred image. Each line specifies W non-negative real numbers given up to the 2nd decimal place. The value of all the given real numbers will be less than 100.
Zero or more lines (made entirely of white spaces) may appear between cases. The last line of the input file consists of three zeros.
test cases by an empty line. Do not print an empty line after the last test case. It is guaranteed that there is exactly one unique solution for every test case.
2 2 1
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
1.00 1.00
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.00HintThe 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.
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath> using namespace std; const double eps=1e-8;
const int maxn=130; double data[maxn/10][maxn/10],a[maxn][maxn],x[maxn];
int n,m,d; int equ,val; void Gauss()
{
int k,col,mar;
for(k=0,col=0;k<equ&&col<val;k++,col++)
{
mar=k;
for(int i=k+1;i<equ;i++)
{
if(fabs(a[i][col])>fabs(a[mar][col]))
mar=i;
}
if(fabs(a[mar][col])<eps) return ;
if(k!=mar)
{
for(int i=col;i<val;i++)
swap(a[k][i],a[mar][i]);
swap(x[k],x[mar]);
}
x[k]/=a[k][col];
for(int i=col+1;i<val;i++)
a[k][i]/=a[k][col];
a[k][col]=1.;
for(int i=0;i<equ;i++)
{
if(i==k) continue;
x[i]-=x[k]*a[i][col];
for(int j=col+1;j<val;j++)
a[i][j]-=a[k][j]*a[i][col];
a[i][col]=0;
}
}
} int main()
{
bool fst=false;
while(scanf("%d%d%d",&m,&n,&d)!=EOF)
{
if(n==0&&m==0) break;
if(fst) putchar(10);
else fst=true;
memset(a,0,sizeof(a));
memset(x,0,sizeof(x));
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
scanf("%lf",&data[i][j]);
int cnt=0;
int t1=i*m+j,t2=0;
for(int ii=0;ii<n;ii++)
{
for(int jj=0;jj<m;jj++)
{
if(abs(i-ii)+abs(j-jj)<=d)
{
t2=ii*m+jj;
a[t2][t1]=1.;
cnt++;
}
}
}
x[t1]=data[i][j]*cnt;
}
}
equ=val=n*m;
Gauss();
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
printf("%8.2lf",x[i*m+j]);
}
putchar(10);
}
}
return 0;
}
HDOJ 3359 Kind of a Blur的更多相关文章
- hdu 3359 Kind of a Blur (高斯消元 浮点型)
题目链接 题意: H * W (W,H <= 10) 的矩阵A的某个元素A[i][j],从它出发到其他点的曼哈顿距离小于等于D的所有值的和S[i][j]除上可达点的数目,构成了矩阵B.给定矩阵B ...
- HDU 3359 Kind of a Blur(高斯消元)
题意: H * W (W,H <= 10) 的矩阵A的某个元素A[i][j],从它出发到其他点的曼哈顿距离小于等于D的所有值的和S[i][j]除上可达点的数目,构成了矩阵B.给定矩阵B,求矩阵A ...
- HDOJ 1009. Fat Mouse' Trade 贪心 结构体排序
FatMouse' Trade Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- HDOJ 2317. Nasty Hacks 模拟水题
Nasty Hacks Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Tota ...
- HDOJ 1326. Box of Bricks 纯水题
Box of Bricks Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) To ...
- 解决css3毛玻璃效果(blur)有白边问题
做一个登录页,全屏背景图毛玻璃效果,实现方法如下: HTML: <body> <div class="login-wrap"> <div class= ...
- js(jquery)解决input元素的blur事件和其他非表单元素的click事件冲突的方法
HTML结构:很简单,就一个input,一个div,能说明问题就OK了: <input type="text" value="默认值"><br ...
- blur和click事件的先后顺序问题
这两个同时用会有冲突.懒得翻译了,需要的自己看哈. 以下摘自stackoverflow. I have an input field, where I try to make autocomplete ...
- HDOJ 1004 Let the Balloon Rise
Problem Description Contest time again! How excited it is to see balloons floating around. But to te ...
随机推荐
- 用iFrame模拟Ajax上传文件
前段时间在解决ajax上传文件时折腾了好一阵.直接用$.post上传文本信息肯定是没有问题的.但是$.post直接上传图片是不可行的. 后来看到网上的一些解决方案,有现成的ajax上传文件的封装的方法 ...
- 图表绘制工具--Matplotlib 2
''' [课程3.] 基本图表绘制 plt.plot() 图表类别:线形图.柱状图.密度图,以横纵坐标两个维度为主 同时可延展出多种其他图表样式 plt.plot(kind='line', ax=No ...
- 配置sanmba
samba是Linux系统上的一种文件共享协议,可以实现Windows系统访问Linux系统上的共享资源,现在介绍一下如何在Ubuntu 14.04上安装和配置samba 工具/原料 Ubuntu ...
- [HDU_3652]B-number
题目描述 A wqb-number, or B-number for short, is a non-negative integer whose decimal form contains the ...
- VC++中有关句柄和指针及其转换(转)
原文转自 https://blog.csdn.net/jearmy/article/details/47030011 1.MFC窗口的句柄和指针的转换 (1) 一般窗口对象都会有一个其对应的句柄变量, ...
- 【MFC】画线
1.DrawTestDlg.h afx_msg void OnLButtonDown(UINT nFlags, CPoint point); afx_msg void OnLButtonUp(UINT ...
- (4) python--seaborn
seaborn封装了matplotlib的一些风格,简单的介绍一下
- 或许你不知道的10条SQL
一.一些常见的SQL实践 (1)负向条件查询不能使用索引 select * from order where status!=0 and stauts!=1 not in/not exists都不是好 ...
- 列表控件ListBox关联的MFC中的类:CListBox
列表控件ListBox关联的MFC中的类:CListBox ######################################################## 1.在列表的结尾添加一项: ...
- hdu 5155(递推)
Harry And Magic Box Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Othe ...