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

第28次CCF计算机软件能力认证(测试)

测试300分要是考试的时候也能这么发挥就好

第一题:现值计算

解题思路:直接模拟

n , m = input().split()
n = int(n);m = float(m)
l = list(map(int , input().split()))
res = 0
for i in range(0 , n + 1):res += pow(1 + m , -i) * l[i]
print(res)

第二题:训练计划

解题思路:读题+模拟

#include<iostream>
#include<cstring>using namespace std;const int N = 400;
int p[N] , t[N];
int n , m;int main()
{cin >> n >> m;for(int i = 1;i <= m;i ++) cin >> p[i];for(int i = 1;i <= m;i ++) cin >> t[i];int first_time[N];bool f = true;for(int i = 1;i <= m;i ++){if(!p[i]) first_time[i] = 1;else first_time[i] = t[p[i]] + first_time[p[i]];int check = first_time[i] + t[i] - 1;if(check > n) f = false;}for(int i = 1;i <= m;i ++)cout << first_time[i] << " ";if(f){cout << endl;memset(first_time , 0x3f , sizeof first_time);for(int i = m;i >= 1;i --){if(first_time[i] > n) first_time[i] = n + 1 - t[i];if(p[i]) first_time[p[i]] = min(first_time[p[i]] , first_time[i] - t[p[i]]);}for(int i = 1;i <= m;i ++)cout << first_time[i] << " ";cout << endl;}return 0;
}

第三题:JPEG编码

 解题思路:依旧是模拟,但是更大

# z型遍历
import math
def cal(i , j , m):res = 0for u in range(8):for v in range(8):alphau = 1 if u else (0.5) ** 0.5alphav = 1 if v else (0.5) ** 0.5ucos = math.cos(math.pi * (1 / 8) * (i + (1 / 2)) * u)vcos = math.cos(math.pi * (1 / 8) * (j + (1 / 2)) * v)res += 0.25 * (alphau * alphav * m[u][v] * ucos * vcos)return resdef input_m(data):M = [[0 for i in range(8)] for j in range(8)]x = y = 0f = Truewhile x != 8 or y != 8:if x < 8 and y < 8:if not len(data):breakM[x][y] = data[0]data.pop(0)if f: x -= 1;y += 1else: x += 1;y -= 1if x < 0: x = 0;f = not fif y < 0: y = 0;f = not freturn Mdef cal_muti(Q , M):res = [[0 for i in range(8)] for j in range(8)]for i in range(8):for j in range(8):res[i][j] = Q[i][j] * M[i][j]return resQ = [] # 量化矩阵
for i in range(8):l = list(map(int , input().split()))Q.append(l)
n = int(input())
t = int(input()) # t = 0 输出填充矩阵
data = list(map(int , input().split()))
input_M = input_m(data)
liang_M = cal_muti(Q , input_M)
if t == 0 or t == 1:for i in range(8):for j in range(8):print(input_M[i][j] if t == 0 else liang_M[i][j] , end = ' ')print()
else:for i in range(8):for j in range(8):res = round(cal(i , j , liang_M) + 128)if res < 0: res = 0if res > 255: res = 255print(res, end = ' ')print()

http://www.lryc.cn/news/134313.html

相关文章:

  • 九耶丨阁瑞钛伦特-Java高频面试题-请谈谈 ReadWriteLock 和 StampedLock
  • 【Linux操作系统】深入探索Linux系统编程中的信号集操作函数
  • [C初阶笔记]P2
  • C++并发编程学习01——hello concurrent world
  • 大数据扫盲(2): 数据分析BI与ETL的紧密关系——ETL是成功BI的先决条件
  • Java web 中的 jsp
  • uniapp 数组操作
  • 数据结构算法--4堆排序
  • C++学习系列之DLL动态库使用
  • Java实现钉钉企业内部应用机器和自定义机器人发送消息
  • 基于QT4的GPX文件编辑器开发
  • 树结构使用实例---实现数组和树结构的转换
  • 论文阅读_条件控制_ControlNet
  • 全链路数据湖开发治理解决方案2.0重磅升级,全面增强数据入湖、调度和治理能力
  • 【算法题】2769. 找出最大的可达成数字
  • 023:vue中解决el-date-picker更改样式不生效问题
  • 爬虫借助代理会让网速快点吗?
  • 探索智能文字识别:技术、应用与发展前景
  • STL——list用法
  • Linux的基础指令
  • 深入浅出Pytorch函数——torch.nn.init.normal_
  • Vue.js知识点学习的一点笔记
  • Sui第四轮资助:16个团队瓜分
  • ATC模型转换环境问题案例
  • dart其他语法
  • C++11并发与多线程笔记(7) 单例设计模式共享数据分析、解决,call_once
  • FANUC机器人加减速倍率指令ACC的使用方法说明
  • 奥威BI数据可视化工具:360度呈现数据,告别枯燥表格
  • C# Linq源码分析之Take (三)
  • Linux journalctl命令详解(journalctl指令)(systemd服务默认日志管理工具)