hdu3359 Kind of a Blur

因为变化出来的是平均数,那么就可以对每一个变化出来的列方程,直接高斯消元就行了。

 1 #include<bits/stdc++.h>
 2 #define N 100005
 3 #define LL long long
 4 #define inf 0x3f3f3f3f
 5 #define ls c[x][0]
 6 #define rs c[x][1]
 7 using namespace std;
 8 inline int ra()
 9 {
10     int x=0,f=1; char ch=getchar();
11     while (ch<‘0‘ || ch>‘9‘) {if (ch==‘-‘) f=-1; ch=getchar();}
12     while (ch>=‘0‘ && ch<=‘9‘) {x=x*10+ch-‘0‘; ch=getchar();}
13     return x*f;
14 }
15 const int maxn=105;
16 const double eps=1e-8;
17 double a[maxn][maxn];
18 double ave[15][15];
19 double b[maxn];
20 void guass(int n, int m)
21 {
22     int equ=n*m,var=n*m;
23     for (int row=1,col=1; row<=equ && col<=var; row++,col++)
24     {
25         int maxr=row;
26         for (int i=row; i<=equ; i++)
27             if (fabs(a[i][col])-fabs(a[maxr][col])>eps)
28                 maxr=i;
29         if (fabs(a[maxr][col])<eps)
30         {
31             row--; continue;
32         }
33         if (maxr!=row)
34             for (int j=col; j<=var+1; j++)
35                 swap(a[maxr][j],a[row][j]);
36         for (int i=row+1; i<=equ; i++)
37             if (fabs(a[i][col])>eps)
38             {
39                 double s=a[i][col]/a[row][col];
40                 for (int j=col; j<=var+1; j++)
41                     a[i][j]-=a[row][j]*s;
42             }
43     }
44     for (int i=equ; i>=1; i--)
45     {
46         double tmp=a[i][var+1];
47         for (int j=i+1; j<=var; j++)
48             tmp-=a[i][j]*b[j];
49         b[i]=tmp/a[i][i];
50     }
51 }
52 int main()
53 {
54     int n,m,d; int first=1;
55     while (~scanf("%d%d%d",&m,&n,&d))
56     {
57         memset(a,0,sizeof(a));
58         if (n+m+d==0) break;
59         for (int i=1; i<=n; i++)
60             for (int j=1; j<=m; j++)
61                 scanf("%lf",&ave[i][j]);
62         for (int k=1; k<=n*m; k++)
63         {
64             int x=(k-1)/m+1,y=k%m; if (!y) y=m;
65             double num=0;
66             for (int i=1; i<=n; i++)
67                 for (int j=1; j<=m; j++)
68                     if (abs(i-x)+abs(j-y)<=d)
69                         a[k][(i-1)*m+j]=1,num++;
70             a[k][n*m+1]=num*ave[x][y];
71         }
72         guass(n,m);
73         if (first) first=0; else cout<<endl;
74         for (int i=1; i<=n*m; i++)
75         {
76             printf("%8.2lf",b[i]);
77             if (i%m==0) printf("\n");
78         }
79     }
80     return 0;
81 }
时间: 2024-10-12 22:20:24

hdu3359 Kind of a Blur的相关文章

HDU3359 Kind of a Blur(高斯消元)

建立方程后消元 #include<cstdio> #include<iostream> #include<cstdlib> #include<cstring> #include<string> #include<algorithm> #include<map> #include<queue> #include<vector> #include<cmath> #include<uti

移动端UI设计越来越流行的高斯模糊(Gaussian blur)和毛玻璃效果(磨砂效果),如何使用Android RenderScript简单实现?

高斯模糊(Gaussian blur)和毛玻璃效果(亦称磨砂效果),近两年在移动端的UI设计上越来越流行,特别是iOS手机上出现的较多,iOS系统也提供了相应的API帮助开发人员分分钟实现这两个效果.而Android系统则经历了一个漫长的探索过程,对图片的处理,从Java算法到NDK方式实现等,各种摸索层出不穷. 值得欣慰的是,Google终于在API 11中引入了 RenderScript ,一个强大的图片处理框架,帮助Android开发人员专注于图片处理算法而不是API的调度工作.使用Ren

blur效果,模糊效果css

.blur { -webkit-filter: blur(5px);  -moz-filter: blur(5px);  -o-filter: blur(5px);  -ms-filter: blur(5px); filter: url(#blur-effect-1); filter: progid:DXImageTransform.Microsoft.Blur(PixelRadius='5'); zoom: 1; } https://www.linkedin.com/uas/login?ses

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 Image blurring occurs when the object being captured is out of the camera's

Unity Shader:Blur

花了一晚上的时间终于看懂Image Effect中的Blur,其实很简单,就是一下子没有理解到. 原理:使用两个一维[1*7]的高斯滤波模板,一个用在x方向,另一个用在y方向.高斯滤波有模糊的效果. js脚本参数: Down Sample:OnRenderImage中获取的图像进行降采样,其实就是把要处理的纹理变小.有利于加快shader运行速度. Blur Size:在使用高斯模板时,相邻像素点的间隔.越大间隔越远,图像越模糊.但过大的值会导致失真. Blur Iterations:迭代次数,

CSS滤镜之Blur滤镜——模糊

Blur滤镜比较类似于ps里面的运动模糊效果. 语法: {FILTER:blur(add=add,direction=direction,strength=strength)} “ADD”参数是一个布尔判断“TRUE(默认)”或者“FALSE”.它指定图片是否被改变成印象派的模糊效果.模糊效果是按顺时针的方向进行的, “DIRECTION”参数用来设置模糊的方向.其中0度代表垂直向上,然后每45度为一个单位.它的默认值是向左的270度. “STRENGTH“值只能使用整数来指定,她代表有多少像素

快速解决js开发下拉框中blur与click冲突

在开发中我们会经常遇到blur和click冲突的情况.下面叙述了开发中常遇到的"下拉框"的问题,并提供了两种解决方案. 一.blur和click事件简述 blur事件:当元素失去焦点时触发blur事件:其为表单事件,blur和focus事件不会冒泡,其他表单事件都可以.click事件:当点击元素时触发click事件:所有元素都有此事件,会产生冒泡. 示例1:blur事件为表单事件 1 2 3 4 5 6 7 8 9 10 11 12 13 <input type="te

Atitit Gaussian Blur&#160;高斯模糊&#160;的原理and实现and 用途

Atitit Gaussian Blur 高斯模糊 的原理and实现and 用途 1.1. 高斯模糊 的原理(周边像素的平均值+正态分布的权重1 1.2. 高斯模糊 的用途(磨皮,毛玻璃效果,背景虚化1 1.3. 参数radus1 1.4. 高斯模糊 的实现(第三方库)1 1.5. Java  源码1 1.1. 高斯模糊 的原理(周边像素的平均值+正态分布的权重 高斯模糊_百度百科.html 通常,图像处理软件会提供"模糊"(blur)滤镜,使图片产生模糊的效果 "模糊&qu

Image Blur

Blur 是一种常见的效果,在 Adobe 软件 After Effect 中可以找到以下几种: 类型 解释 Box Blur A box blur, (also known as a box linear filter) is a spatial domainlinear filter in which each pixel in the resulting image has a value equal to the average value of its neighboring pixe