CCF CSP认证2022年12月题解 现值计算、训练计划、JPEG 解码

article/2025/9/28 18:56:25

题目

http://118.190.20.162/home.page
在这里插入图片描述

T1 现值计算

思路

根据题意第 k k k年的 x x x元的当前价值为 x × ( 1 + i ) − k x\times (1+i)^{-k} x×(1+i)k计算各个价值,最后求和。

代码

int main() {int n; double i;scanf("%d %lf", &n, &i);i += 1;double x = 0, y, z;for (int k = 0; k <= n; k++) {scanf("%lf", &y);z = 1;for (int j = 0; j < k; j++) {z *= i;}x += (1.0 / z) * y;}printf("%f", x);return 0;
}

T2 训练计划

思路

dp,设项目耗时为 c ( i ) c(i) c(i)
科目 i i i的最早开始时间为:
a ( i ) = a ( p i ) + c ( p i ) a(i)=a(p_i)+c(p_i) a(i)=a(pi)+c(pi)
其中 a ( i ) a(i) a(i)初始化为1,最早可以从第1天开始训练。
科目 i i i的最晚开始时间为
b ( i ) = m i n p u = i ( b ( u ) − c ( u ) ) b(i)=min_{p_{u}=i}(b(u)-c(u)) b(i)=minpu=i(b(u)c(u))
其中 b ( i ) b(i) b(i)初始化为 n + 1 − c ( i ) n+1-c(i) n+1c(i),这样保证最后一天完成所有训练。
若存在 b ( i ) < 1 b(i)<1 b(i)<1,则顿顿无法 n n n天内完成所有训练。
题目约束科目最多只有一个依赖,这样的图是森林,实际上,可以推广到DAG图上。

代码

vector<int> q[105];
int a[105], b[105], c[105], g[105];
// 最早开始时间:所有先行项目完成的时间+1
// 最晚开始时间:所有后续项目所需的时间-1void solve() {int n, m, x;cin >> n >> m;for (int i = 1; i <= m; i++) {cin >> x;if (x) {g[i] = x, q[x].push_back(i);}   // 有x后续项目i(一个或多个)a[i] = 1;   // 所有项目最早可以在第1天开始}for (int i = 1; i <= m; i++) {cin >> c[i];b[i] = n - c[i] + 1;}for (int i = 1; i <= m; i++) {if (!q[i].empty()) {for (int k = 0; k < q[i].size(); k++) {a[q[i][k]] = a[i] + c[i];}}}bool ok = 1;for (int i = m; i >= 0; i--) {if (g[i]) {b[g[i]] = min(b[g[i]], b[i] - c[g[i]]);if (b[g[i]] < 1) { ok = 0; break; }}}for (int i = 1; i <= m; i++) cout << a[i] << " ";if (ok) {cout << '\n';for (int i = 1; i <= m; i++) cout << b[i] << " ";}
}

T3 JPEG 解码

思路

根据问题描述模拟:

  1. Z字形扫描,只有 8 × 8 8\times8 8×8的大小,很多方法都可以,观察到在没有矩阵的内部(而不是在边缘),扫描遵循 ( x , y ) (x,y) (x,y) + 1 , − 1 +1,-1 +1,1的规律,维护一个方向变量dir,每次移动 x , y x,y x,y同时加dir。在矩形的边缘,我是假想它根据方向变量进行扫描,发现出界了,再修正,同时将dir取反。

在这里插入图片描述

  1. 离散余弦变换,根据公式计算,4层的嵌套循环实现。

其他步骤略。

代码

const double pi = acos(-1);int a[10][10], b[10][10];
double c[10][10];void out() {for (int i = 0; i < 8; i++) {for (int j = 0; j < 8; j++) {cout << b[i][j] << ' ';}   cout << '\n';}
}void solve() {for (int i = 0; i < 8; i++) {for (int j = 0; j < 8; j++) {cin >> a[i][j];}}int n, t;cin >> n >> t;int x, y, k; x = y = k = 0;int dir = 1;for (int i = 0; i < n; i++) {cin >> b[x][y];x -= dir; y += dir;if (x < 0 || x > 7 || y < 0 || y > 7) {if (x + y > 7 || (x == 8 && y == -1)) {if (dir > 0) { x += 2, y--; }else x--, y += 2;dir = -dir;}   // (7,0)之后一步进入到另外一半else {// 出界,修正位置,更换方向if (dir > 0) x += dir;else y -= dir;dir = -dir;}}// printf("%d, %d\n", x, y);}if (!t) { out(); return; }for (int i = 0; i < 8; i++) {for (int j = 0; j < 8; j++) {b[i][j] *= a[i][j];}}if (t == 1) { out(); return; }// 离散余弦逆变换for (int i = 0; i < 8; i++) {for (int j = 0; j < 8; j++) {for (int u = 0; u < 8; u++) {for (int v = 0; v < 8; v++) {double au, av;auto get = [&](int k) -> double {if (!k) return sqrt(0.5);else return 1;};au = get(u), av = get(v);c[i][j] += au * av * b[u][v] * cos(pi / 8 * (0.5 + i) * u) * cos(pi / 8 * (0.5 + j) * v);}}c[i][j] *= 0.25;}}// 四舍五入for (int i = 0; i < 8; i++) {for (int j = 0; j < 8; j++) {b[i][j] = (int)(c[i][j] + 128.5);b[i][j] = max(0, b[i][j]);b[i][j] = min(255, b[i][j]);// cout << c[i][j] << ' ';}   // cout << '\n';}out();
}

http://chatgpt.dhexx.cn/article/p4fn6CJb.shtml

相关文章

第29次CCFCSP认证经验总结

鄙人有幸参加了由中国计算机学会举办的第29次计算机软件能力认证考试&#xff0c;在此进行一些考试细节和经验的总结。 如果没有仔细了解过的小白去网上搜索CCFCSP&#xff0c;可能出现的是CSP-J/S&#xff0c;但是详细了解会发现&#xff0c;首先CSP-J/S分初试和复试&#xff…

第28次csp认证T3 JPEG 解码解析

第28次csp认证T3 JPEG 解码解析 题目说明 问题比较长&#xff0c;就只放个链接吧&#xff1a;http://118.190.20.162/view.page?gpidT158 经验分享 做这种大模拟的题目&#xff0c;对于经验不是很丰富的新手来说&#xff0c;更应该着眼于得分点&#xff0c;先做那些问题简单、…

csp认证考试准备Day-3

昨天复习了一点点&#xff0c;今天浅浅做几个第一道的真题吧 &#xff08;1&#xff09;202212-1 #include<bits/stdc.h> using namespace std; int main() {double n,i,b;scanf("%lf", &n);scanf("%lf", &i);double a[60];for(int j0;j<…

csp认证考试准备Day-1

今天&#xff0c;开启了我的第一个专栏&#xff0c;用来记录我的2023年3月的csp认证考试。 语言&#xff1a;c 本人状况&#xff1a;半学期几乎没敲过代码&#xff0c;学过c和数据结构&#xff0c;csp第一题应该能做出来。 目标&#xff1a;保证在csp考试时做出一二题&#…

第23次CSP认证题解

这是我第一次参加CSP&#xff0c;一共得了260分&#xff0c;100,70,70,20,0。这两天试着写一下题解&#xff0c;大家哪里看不懂直接留言问我就好。 目录 第一题&#xff1a;数组推导&#xff08;100分&#xff09;第二题&#xff1a;非零段划分&#xff08;100分&#xff09;第…

csp认证真题

出行计划 要在t时刻进入场所&#xff0c;获得核酸检测结果的时间点&#xff08;tk应该在[t-c1,t]内&#xff08;上段文字中c值为24&#xff09;&#xff0c;核酸检测结果才能生效。由于获得核酸检测结果的时刻>1&#xff08;因为等待核酸检测结果的时间k>0&#xff0c;所…

【经验】CCF CSP认证问题

202109-4收集卡牌 状压dp&#xff0c;注意保留10位小数&#xff0c;是样例里给出的最长的&#xff0c;五位也不行&#xff0c;double保留到小数点后15位以后就不准了 202104-2 邻域均值 要利用前缀和&#xff0c;不然会超时 202012-2 期末预测之最佳阈值 也是要利用前缀和&…

有关CCF的CSP认证

有关CCF的CSP认证 一、CSP认证考点的知识要求 在数据结构中&#xff0c;线性表是基础&#xff0c;树是常考点&#xff0c;集合和映射要夕纪学。 背包问题&#xff08;动态规划&#xff09; 考试要求 二、考试题型 第一题&#xff1a;一般为水题&#xff0c;把C学扎实便可…

记 CSP 认证

欢迎访问我的CCF认证解题目录 现在越来越忙了&#xff0c;估计后面也不参加了&#xff0c;纯粹是记录贴。 先晒一下成绩吧&#xff0c;至于为什么参加这么多次&#xff0c;主要是学校可以报销&#xff0c;干就完了&#xff0c;哈哈。 分别是 17、18、20、21 第一次参加 c…

CSP认证

【CSP】试题编号 202212-2-训练计划 题目&#xff1a;训练计划计算最早/最晚开始时间最早开始时间发散最晚开始时间 代码与上机代码上机结果 题目&#xff1a;训练计划 此题目样例有坑&#xff1a;样例中没有正确输出过一个最晚开始时间 所以在最开始处理问题的时候&#xff0…

CCF CSP认证

文章目录 :heart:[CCF CSP认证 (cspro.org)](https://www.cspro.org/):heart:1.主办单位2.认证目的3.认证内容4.认证方式5.准备认证上机环境6. 选择考试语言7. 选择编译环境8. 选择IDE9.认证前模拟练习10.成绩效力&#xff1a; ❤️CCF CSP认证 (cspro.org)❤️ 1.主办单位 中…

四大含金量高的算法证书考试

证书考试推荐 一、PAT 计算机程序设计能力测试二、CCF CSP认证三、团体程序设计天梯赛四、蓝桥杯大赛 一、PAT 计算机程序设计能力测试 官网&#xff1a;PAT 计算机程序设计能力测试 PAT为浙江大学出的一款程序设计的测试网站&#xff0c;分为乙级、甲级、顶级三种&#xff0…

2阶实对称矩阵特征值和特征向量的简单求解方法

2阶实对称矩阵特性 定理&#xff1a;2阶实对称矩阵H的特征值是实数 H[a,b;b,c] a,b,c是实数&#xff0c;λ 是特征值 A[a-λ,b;b,c-λ] 特征值求解方法为&#xff1a;(a- λ )(c- λ) - b2 0 求解方程得到两个根为&#xff1a;λ&#xff08;ac&#xff09;&…

求解矩阵特征值的QR算法

1. 算法原理介绍&#xff1a; 1. Householder变换&#xff1a; 2. Givens变换&#xff1a; 3. 矩阵的QR分解 4. 计算特征值的QR方法 5. 上Hessenberg矩阵方法&#xff1a; 2. 实施过程&#xff1a; 1. 约化过程&#xff1a; 1. Householder变换&#xff1a; 2. Givens变换&a…

【OpenCV4】计算对称矩阵特征值和特征向量 cv::eigen() 用法详解和代码示例(c++)

函数原型&#xff1a; bool cv::eigen ( InputArray src,OutputArray eigenvalues,OutputArray eigenvectors noArray() ) 解析&#xff1a; src&#xff1a;输入矩阵&#xff0c;只能是 CV_32FC1 或 CV_64FC1 类型的方阵&#xff08;即矩阵转置后还是自己&#xff09;eig…

实对称矩阵的特征值求法_线性代数中的二次型,实际上是特征值的几何应用,概念需加强理解...

线性代数中的二次型,实际上是特征值的几何应用,概念仍需加强理解 二次型:实际上是特征值的几何应用 1、二次型化标准形:特征值、特征向量、相似对角化 2、二次型的正定性 3、合同:坐标变换 正交变换化二次型为标准形,标准为求二次型矩阵 A 的特征值,求坐标变换就是求 A 的特…

实对称矩阵的特征值求法_矩阵论系列——特征值篇

特征值篇1——特征值和特征向量 特征值篇1--特征值和特征向量_thompson的博客-CSDN博客​blog.csdn.net 特征值篇2——特征子空间 特征值篇2--特征子空间_thompson的博客-CSDN博客​blog.csdn.net 特征值篇3——矩阵可相似对角化的充要条件 特征值篇3--矩阵可相似对角化的充要条…

matlab矩阵特征值分解,矩阵特征值分解与奇异值分解含义解析及应用

原文在此,仅仅将原文的Matlab代码改为Python3版本。 特征值与特征向量的几何意义 矩阵的乘法是什么,别只告诉我只是“前一个矩阵的行乘以后一个矩阵的列”,还会一点的可能还会说“前一个矩阵的列数等于后一个矩阵的行数才能相乘”,然而,这里却会和你说——那都是表象。 矩…

c语言求矩阵特征值的程序,如何用C语言编写求对称矩阵的特征值和特征向量的程序编写对称矩阵的特征值和特征向量,其中矩阵用二维数组保存.特征向量要求有大到小放到数组里....

优质解答 //数值计算程序-特征值和特征向量 // //约化对称矩阵为三对角对称矩阵 //利用Householder变换将n阶实对称矩阵约化为对称三对角矩阵 //a-长度为n*n的数组,存放n阶实对称矩阵 //n-矩阵的阶数 //q-长度为n*n的数组,返回时存放Householder变换矩阵 //b-长度为n的数组,返回…

实对称矩阵的特征值求法_机器学习与线性代数 - 特殊矩阵

在线性代数中,有一些特殊的矩阵具有易于分析和操作的特性。它们的特征向量可能具有特定的特征值或特殊关系。还有一些方法可以将一个矩阵分解成这些“更简单”的矩阵。 操作复杂性的降低提高了可伸缩性。然而,即使这些矩阵都是特殊的,它们也不是罕见的。在机器学习和许多应用…