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

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;
}

相关文章:

  • 企业网站html源代码 企业网站管理源码模板
  • C/C++时间函数详解及使用场景
  • ArrayUtils:数组操作的“变形金刚“——让你的数组七十二变
  • [Unity]-[UI]-[Prefab] 关于Unity UGUI 的布局及组件讲解
  • C# 综合示例 库存管理系统7 主界面(FormMain)
  • 《AI大模型趣味实战》基于RAG向量数据库的知识库AI问答助手设计与实现
  • (CAS:130100-20-8)Mag-Fura-2 AM Cell Permeant,配制方法步骤
  • 国产32位单片机PY32F003,ADC使用注意事项
  • Ubuntu中的防火墙工具
  • 网络安全概述:定义、重要性与发展历程
  • 从零开始用Turtle绘制分形树,数学与编程的完美结合!
  • matplotlib2-统计分布图
  • 【TS入门笔记2---基础语法】
  • 多模态大语言模型arxiv论文略读(四十一)
  • 03实战篇Redis02(优惠卷秒杀、分布式锁)
  • 精益数据分析(23/126):把握创业阶段与第一关键指标
  • 隐形革命:环境智能如何重构“人-机-境“共生新秩序
  • MySql 数据 结构 转为SqlServer (简单)
  • 百度文心4.5 Turbo与DeepSeek、豆包、元宝对比:技术路径与市场格局分析​​
  • python基础-requests结合AI实现自动化数据抓取
  • 中国太保一季度净赚96.27亿元降18.1%,营收同比下降1.8%
  • 李家超称香港将部署为内地企业提供供应链服务,突破美国封锁
  • 双拥主题歌曲MV:爱我人民,爱我军
  • 光线传媒:正与部分重点地区洽谈主题乐园合作,首款3A游戏预计三年左右推出
  • 2024年度全国十大考古新发现公布,武王墩一号墓等入选
  • 吃菜和吃肉,哪个更“增肌”?