当前位置: 首页 > ds >正文

JPEG 解码 第28次CCF-CSP计算机软件能力认证

纯粹的大模拟而且很简单 不知道acwing为什么把他看作中档题

由于仅是模拟8*8矩阵 直接map每一个位置对应的坐标即可 也可以模拟计算 但是需要脑子

这个直接不需要脑子 还能保证正确

#include <iostream>
#include <cstring>
#include <algorithm>
#include <vector>
#include <unordered_map>
#include <string>
#include <functional>
#include <utility>
#include <map>
#include <queue>
#include <set>
#include <math.h>#define x first
#define y secondusing namespace std;typedef long long LL;int T;
pair<int,int> loc[65];
int q[9][9], m[9][9];
int m_q[9][9];
double m_[9][9];
int n;
int m_r[9][9];double alfha(int u)  //  阿尔法函数
{if (u == 0) return sqrt(1.0/2);else return 1.0;
}double cal_cos(int i, int j)  //  离散余弦逆变换
{double sum = 0;for (int u = 0; u < 8; u++)for (int v = 0; v < 8; v++){sum += alfha(u) * alfha(v) * m_q[u][v] * cos(acos(-1) * (i+1.0/2) * u / 8) * cos(acos(-1) * (j+1.0/2) * v / 8);}return sum/4.0;
}int trans (double x)  //  四舍五入
{if (x - (int) x >= 0.5) return x + 1;else return x;
}int main()
{loc[1] = make_pair(0,0);loc[2] = make_pair(0,1);loc[3] = make_pair(1,0);loc[4] = make_pair(2,0);loc[5] = make_pair(1,1);loc[6] = make_pair(0,2);loc[7] = make_pair(0,3);loc[8] = make_pair(1,2);loc[9] = make_pair(2,1);loc[10] = make_pair(3,0);loc[11] = make_pair(4,0);loc[12] = make_pair(3,1);loc[13] = make_pair(2,2);loc[14] = make_pair(1,3);loc[15] = make_pair(0,4);loc[16] = make_pair(0,5);loc[17] = make_pair(1,4);loc[18] = make_pair(2,3);loc[19] = make_pair(3,2);loc[20] = make_pair(4,1);loc[21] = make_pair(5,0);loc[22] = make_pair(6,0);loc[23] = make_pair(5,1);loc[24] = make_pair(4,2);loc[25] = make_pair(3,3);loc[26] = make_pair(2,4);loc[27] = make_pair(1,5);loc[28] = make_pair(0,6);loc[29] = make_pair(0,7);loc[30] = make_pair(1,6);loc[31] = make_pair(2,5);loc[32] = make_pair(3,4);loc[33] = make_pair(4,3);loc[34] = make_pair(5,2);loc[35] = make_pair(6,1);loc[36] = make_pair(7,0);loc[37] = make_pair(7,1);loc[38] = make_pair(6,2);loc[39] = make_pair(5,3);loc[40] = make_pair(4,4);loc[41] = make_pair(3,5);loc[42] = make_pair(2,6);loc[43] = make_pair(1,7);loc[44] = make_pair(2,7);loc[45] = make_pair(3,6);loc[46] = make_pair(4,5);loc[47] = make_pair(5,4);loc[48] = make_pair(6,3);loc[49] = make_pair(7,2);loc[50] = make_pair(7,3);loc[51] = make_pair(6,4);loc[52] = make_pair(5,5);loc[53] = make_pair(4,6);loc[54] = make_pair(3,7);loc[55] = make_pair(4,7);loc[56] = make_pair(5,6);loc[57] = make_pair(6,5);loc[58] = make_pair(7,4);loc[59] = make_pair(7,5);loc[60] = make_pair(6,6);loc[61] = make_pair(5,7);loc[62] = make_pair(6,7);loc[63] = make_pair(7,6);loc[64] = make_pair(7,7);for (int i = 0; i < 8; i++)for (int j = 0; j < 8; j++)cin>> q[i][j];cin>> n>>T;for (int i = 1; i <= n; i++){int a;cin>> a;m[loc[i].x][loc[i].y] = a;}for (int i = 0; i < 8; i++)for (int j = 0; j < 8; j++)m_q[i][j] = m[i][j] * q[i][j];if (T == 0)  //  扫描{for (int i = 0; i < 8; i++){for (int j = 0; j < 8; j++)cout<<m[i][j]<<' ';cout<<endl;}}else if (T == 1)  //  量化{for (int i = 0; i < 8; i++){for (int j = 0; j < 8; j++)cout<<m[i][j] * q[i][j]<<' ';cout<<endl;}}else  //  离散逆变换{for (int i = 0; i < 8; i++){for (int j = 0; j < 8; j++){m_[i][j] = cal_cos(i,j);m_r[i][j] = trans(m_[i][j] + 128);}}for (int i = 0; i < 8; i++){for (int j = 0; j < 8; j++){if (m_r[i][j] > 255) cout<<"255"<<' ';else if (m_r[i][j] < 0) cout<<"0"<<' ';else cout<<m_r[i][j]<<' ';}cout<<endl;}}return 0;
}

http://www.xdnf.cn/news/1936.html

相关文章:

  • 《天道》:我发现能压制小人的人,都有一个共同点
  • 2025毕业生必看!用AI工具如何快速生成万字高质量论文
  • SQL Server 2019 安装与配置详细教程
  • Web 服务架构与技术组件概述
  • AI 开发工具提示词集体开源!解锁 Cursor、Cline、Windsurf 等工具的核心逻辑
  • 信创系统上使用 dpkg-repack 工具打包系统已安装软件
  • 用于渗透测试人员的 Burpsuite:Logger++
  • 二重积分的计算
  • 软件设计模式与体系结构:基于Java实现管道-过滤器架构
  • mapbox高阶,使用本地dem数据、等高线面数据实现千里江山图效果
  • Shell脚本-流程控制语句应用案例
  • 从代码学习深度学习 - 微调 PyTorch 版
  • 数据结构初阶:排序
  • 【MySQL专栏】MySQL数据库的复合查询语句
  • Pycharm(六):可变与不可变类型
  • 【时时三省】(C语言基础)循环程序举例
  • 手把手搭建AIGC应用:从图像生成到智能写作全实战
  • 使用 n8n 实现你的第一个爬虫程序:从零到自动化
  • 【金仓数据库征文】- 金融HTAP实战:KingbaseES实时风控与毫秒级分析一体化架构
  • 飞牛 NAS 整机要来了?!
  • C#高级语法--接口
  • 初识HashMap
  • 华为L410上制作内网镜像模板:在客户端配置模板内容
  • 施工配电箱巡检二维码应用
  • 【EDA】EDA中聚类(Clustering)和划分(Partitioning)
  • STM32F103C8T6信息
  • 【金仓数据库征文】-不懂数据库也能看懂!一文解析金仓技术介绍以典型应用
  • 力扣-206.反转链表
  • 2025最新版扣子(Coze)AI智能体应用指南
  • 118. 杨辉三角