2024Jiangxi_H Convolution
Description

Input

Output

Sample Input
5 5 3 3
0 -1 -1 0 0
0 1 -1 2 -2
2 -2 2 2 0
-1 0 0 -2 -1
0 -2 0 1 1
Sample Output
12
Explainion

Hint
- 卷积运算规则
- 二维前缀和
Thinking
- 这道题的题目背景是卷积运算规则。我们首先得了解卷积运算方式。我们不难发现\(K_{i,j}\) 产生的贡献是\(K_{i,j}\) × 矩阵 \(I_{i,j ~ n−k+i,m−l+j}\)的子矩阵之和。

- 于是我们就可以据此确定K矩阵的各个数字,当子矩阵和为负数时,\(K_{i,j}\) 取 −1;子矩阵和为正数时,\(K_{i,j}\) 取 1。

- 而根据上述分析,我们所需要计算的最终答案也就等于每个子矩阵各元素的绝对值之和。
- 快速求出某个子矩阵和可以用二维前缀和来实现。
- 值得注意的一点是使用cin和cout时为了提高效率记得要解除输入输出流的绑定(否则这道题可能会超时哦)。
Personal Solution
#include<bits/stdc++.h>
using namespace std;
long long num[1005][1005]={0};
int main(){
std::ios::sync_with_stdio(false);
std::cin.tie(nullptr);
int n,m,k,l;
cin>>n>>m>>k>>l;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>num[i][j];
num[i][j]=num[i][j-1]+num[i][j]+num[i-1][j]-num[i-1][j-1];
}
}
long long ct=0;
for(int i=1;i<=k;i++){
for(int j=1;j<=l;j++){
ct=ct+abs(num[n-k+i][m-l+j]-num[n-k+i][j-1]-num[i-1][m-l+j]+num[i-1][j-1]);
}
}
cout<<ct<<endl;
return 0;
}
2024Jiangxi_H Convolution的更多相关文章
- Deep Learning 10_深度学习UFLDL教程:Convolution and Pooling_exercise(斯坦福大学深度学习教程)
前言 理论知识:UFLDL教程和http://www.cnblogs.com/tornadomeet/archive/2013/04/09/3009830.html 实验环境:win7, matlab ...
- 【ufldl tutorial】Convolution and Pooling
卷积的实现: 对于每幅图像,每个filter,首先从W中取出对应的filter: filter = squeeze(W(:,:,filterNum)); 接下来startercode里面将filter ...
- Understanding Convolution in Deep Learning
Understanding Convolution in Deep Learning Convolution is probably the most important concept in dee ...
- Spark MLlib Deep Learning Convolution Neural Network (深度学习-卷积神经网络)3.1
3.Spark MLlib Deep Learning Convolution Neural Network (深度学习-卷积神经网络)3.1 http://blog.csdn.net/sunbow0 ...
- Convolution and Deconvolution
1.Introduction 2.Convolution 3.Deconvolution 4.Summary
- 2D image convolution
在学习cnn的过程中,对convolution的概念真的很是模糊,本来在学习图像处理的过程中,已对convolution有所了解,它与correlation是有不同的,因为convolution = ...
- theano中对图像进行convolution 运算
(1) 定义计算过程中需要的symbolic expression """ 定义相关的symbolic experssion """ # c ...
- Deep Learning 学习随记(七)Convolution and Pooling --卷积和池化
图像大小与参数个数: 前面几章都是针对小图像块处理的,这一章则是针对大图像进行处理的.两者在这的区别还是很明显的,小图像(如8*8,MINIST的28*28)可以采用全连接的方式(即输入层和隐含层直接 ...
- 【面向代码】学习 Deep Learning(三)Convolution Neural Network(CNN)
========================================================================================== 最近一直在看Dee ...
- ufldl学习笔记和编程作业:Feature Extraction Using Convolution,Pooling(卷积和汇集特征提取)
ufldl学习笔记与编程作业:Feature Extraction Using Convolution,Pooling(卷积和池化抽取特征) ufldl出了新教程,感觉比之前的好,从基础讲起.系统清晰 ...
随机推荐
- CF1693F题解
备注 发表时间:2023-06-17 21:51 前言 yny 学长来 cdqz 讲课,写一篇讲课的题的题解纪念一下. 题意 给你一个 01 序列,有以下操作: 选择一段区间 设 \(cnt_0,cn ...
- swoole(7)php进程间通信-消息队列
php实现消息队列操作 ftok:可以将一个路径转换成消息队列可用的key值 msg_get_queue:第一个参数是消息队列的key 第二个参数是消息队列的读写权限 server代码: <?p ...
- 删除空白行,报错 raise KeyError(list(np.compress(check, subset))) KeyError: ['姓名']
之前这段程序跑完后没报错,经调试发现到这一句报错 > df.dropna(subset=['姓名'],inplace=True) 意思是删除'姓名'列 含有'NAN'的行 思考第一步:应该是 d ...
- grpc unable to determine Go import path for
前言 在 proto 文件夹下执行如下命令: $ protoc --go_out=plugins=grpc:. *.proto 报错:无法确定Go导入路径 protoc-gen-go: unable ...
- mac根据路径找文件
在 finder 中 command + shift + G 跳出窗口中输入指定的路径,即可到达.
- mysql [ERR] 1273 - Unknown collation: 'utf8mb4_0900_ai_ci'
这是因为当前数据库版本较高,需要更改一些参数 解决方法: 将sql文件中的 utf8mb4_0900_ai_ci替换为utf8_general_ci utf8mb4替换为utf8 再次运行SQL文件即 ...
- MFC下北京时间与时间戳相互转换
//时间戳转北京时间字串 CString getLocalDate(__int64 timestamp) { timestamp += 28800;//GTM偏移8个时区得到北京时间 tm p; gm ...
- ORACLE物理文件存储位置查询语句
在进行备份和恢复的时候,我们需要知道一些关于ORACLE物理文件存储的信息,这样我们才能判断我们所进行的备份是否完整.一个完整的备份需要包括的物理文件:控制文件联机重做日志文件归档日志文件数据文件因此 ...
- BUUCTF---佛说:只能四天
题目 尊即寂修我劫修如婆愍闍嚤婆莊愍耨羅嚴是喼婆斯吶眾喼修迦慧迦嚩喼斯願嚤摩隸所迦摩吽即塞願修咒莊波斯訶喃壽祗僧若即亦嘇蜜迦須色喼羅囉咒諦若陀喃慧愍夷羅波若劫蜜斯哆咒塞隸蜜波哆咤慧聞亦吽念彌諸嘚嚴諦咒 ...
- Linux性能分析-CPU上下文切换
前言 在Linux性能分析-平均负载中,提到过一种导致平均负载升高的情况,就是有大量进程或线程等待cpu调度. 为什么大量进程或者线程等待CPU调度会导致负载升高呢? 当大量进程或者线程等待调度时,c ...