202212 CSP认证 | JPEG 解码

JPEG 解码
一道特别幸福简单的第三题…都不敢想象在考场上碰见这种题目会有多幸福。直接按照题目意思做就好了,感觉比第二题还简单…而且数组特别小完全没有超时压力
在这里插入图片描述

补充一个对小数处理的部分,包括本题涉及的四舍五入取整以及输出取整:C++ 实现四舍五入的几种方法

直接上满分代码

#include<bits/stdc++.h>
using namespace std;
const int N = 10;
const double pi = acos(-1);
int Q[N][N], M[N][N];
double M1[N][N];
vector<int> Data;//填充函数
void filling()
{int dir = 1;  //1是右上 0是左下int i = 0, j = 0;for(int k = 0;k < Data.size(); k ++){M[i][j] = Data[k];if(dir == 1){   //如果当前方向是右上方if(j == 7) {i ++; dir = 0;}  //触碰到右边界else if(i == 0) {j ++; dir = 0;}  //触碰到上边界else {i --; j ++; }}else{    //向左下方运动if(i == 7) {j ++; dir = 1;}  //触碰到下边界else if(j == 0) {i ++; dir = 1;} //触碰到左边界else {i ++; j --;}}}
}
//逐项相乘
void multiply()
{for(int i = 0;i < 8;i ++){for(int j = 0;j < 8;j ++){M[i][j] *= Q[i][j];}}
}
double alpha(int x)
{return x == 0 ? sqrt(0.5) : 1;
}
void change()
{for(int i = 0;i < 8;i ++){for(int j = 0;j < 8;j ++){double x = 0;double mul1 = (pi / 8) * (i + 0.5);  //对于每个i,j mul1和mul2是确定的,在循环外就算了double mul2 = (pi / 8) * (j + 0.5);for(int u = 0;u < 8;u ++){for(int v = 0;v < 8;v ++){x += alpha(u)*alpha(v)*M[u][v]*cos(mul1*u)*cos(mul2*v);}}x /= double(4);x = round(x + 128);x = x > 255 ? 255 : x;x = x < 0 ? 0 : x;M1[i][j] = x;}}
}
int main()
{int n, T;ios::sync_with_stdio(false);cin.tie(0);for(int i = 0;i < 8;i ++)for(int j = 0;j < 8;j ++)cin >> Q[i][j];cin >> n >> T;for(int i = 0;i < n; i ++){int x; cin >> x;Data.push_back(x);}if(T == 0) {filling();for(int i = 0;i < 8;i ++){for(int j = 0;j < 8;j ++){cout << M[i][j] << ' ';}cout << "\n";}}else if(T == 1){filling();multiply();for(int i = 0;i < 8;i ++){for(int j = 0;j < 8;j ++){cout << M[i][j] << ' ';}cout << "\n";}}else {filling();multiply();change();for(int i = 0;i < 8;i ++){for(int j = 0;j < 8;j ++){cout << M1[i][j] << ' ';}cout << "\n";}}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/548694.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大模型知识积累——幻觉

什么是大模型幻觉 在大语言模型的文本生成场景下&#xff0c;幻觉是指一本正经的胡说八道。逻辑连贯的自然表述中&#xff0c;有理论或者事实错误&#xff0c;捏造事实等问题。 幻觉问题的危害 LLM幻觉可能产生传播错误知识的后果。对于医疗应用中结果安全和可信AI尤为重要&a…

【字符串匹配】BF与KMP算法

一、字符串匹配问题 字符串匹配问题是指在一个主文本字符串中查找一个指定的模式字符串&#xff0c;并确定模式字符串在主文本中出现的位置。这个问题在计算机科学中非常常见&#xff0c;尤其是在文本处理、数据搜索和生物信息学等领域。 字符串匹配问题通常涉及到以下几个方…

Qt学习--继承(并以分文件实现)

基类 & 派生类 一个类可以派生自多个类&#xff0c;这意味着&#xff0c;它可以从多个基类继承数据和函数。定义一个派生类&#xff0c;我们使用一个类派生列表来指定基类。类派生列表以一个或多个基类命名。 总结&#xff1a;简单来说&#xff0c;父类有的&#xff0c;子…

前后端分离项目部署服务器教程--实践成功

文章目录 项目介绍流程1租界云服务2通过远程软件连接服务器3部署前后端代码停止功能文件 环境配置1.安装jdk2.安装Nginx3.安装mysql数据库 花了将近一天部署前后端的项目&#xff0c;写一个日志记录一下&#xff0c;话说孰能生巧。明天把服务器恢复初始在部署一下。 项目介绍 …

Java项目:63 ssm网上花店设计+vue

作者主页&#xff1a;舒克日记 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 系统具备友好性且功能完善。管理员登录进入后台之后&#xff0c;主要完成花材选择管理&#xff0c;用户管理&#xff0c;鲜花管理&#xff0c;鲜花出入…

Rethinking ImageNet Pre-training

PDF地址&#xff1a; 后续更新 代码地址就不提供了&#xff0c;因为这个工作有点老了哈哈&#xff0c;但是凯明大神的想法真的很超前&#xff0c;之后会优先做凯明大神的论文系列&#xff0c;在当年还有很多小伙伴是评论说这个论文其实是一篇广告或者标准的实验报告&#xff0c…

AI基础知识(3)--神经网络,支持向量机,贝叶斯分类器

1.什么是误差逆传播算法&#xff08;error BackPropagation&#xff0c;简称BP&#xff09;&#xff1f; 是一种神经网络学习算法。BP是一个迭代学习算法&#xff0c;在迭代的每一轮使用广义的感知机学习规则对参数进行更新估计。基于梯度下降&#xff08;gradient descent&am…

利用自定义 URI Scheme 在 Android 应用中实现安全加密解密功能

在现代移动应用开发中&#xff0c;安全性和用户体验是至关重要的考虑因素。在 Android 平台上&#xff0c;开发人员可以利用自定义 URI Scheme 和 JavaScript 加密解密技术来实现更安全的数据传输和处理。本文将介绍如何在 Android 应用中注册自定义 URI Scheme&#xff0c;并结…

YOLOv2学习

YOLOv2学习 Anchor boxes 和 bounding boxes 的区别锚框&#xff08;Anchor Boxes&#xff09;边界框&#xff08;Bounding Boxes&#xff09;锚框与边界框的区别 摘要引言数据集组合方法&#xff08;Dataset Combination Method&#xff09;联合训练算法&#xff08;Joint Tra…

智能化工厂大屏监控

通过采集和整合工厂各个环节的数据&#xff0c;包括设备状态、生产进度、质量指标、能源消耗等&#xff0c;并将这些数据以图表、动画、报表等形式展示在大屏上。 智能化工厂大屏监控可以提供以下优势&#xff1a; 实时监控&#xff1a;通过大屏幕展示工厂各项数据&#xff0c…

每日OJ题_牛客HJ12 字符串反转(IO型OJ)

目录 牛客HJ12 字符串反转 解析代码 牛客HJ12 字符串反转 字符串反转_牛客题霸_牛客网 解析代码 #include <iostream> using namespace std; int main() {string str "";cin >> str;int left 0, right str.size() - 1;while (left < right){ch…

将所有文件中的某一段字符替换为另一段字符的方法

问题描述&#xff1a; 本来我需要打开一个文件一个文件&#xff0c;将里面的MMEAN2000ym.nc,改为MMEAN2000-2009ym.nc. 一共有9个文件&#xff0c;增么样能够更加高效呢&#xff0c;可不可以不打开一个文件就能完成这项工作&#xff1f; 解决方法&#xff1a; 使用sed 命令就…