第十七次CCF计算机软件能力认证
第一题:小明种苹果
n , m = map(int , input().split())
t , k , p = 0 , 0 , -1
for _ in range(n):l = list(map(int , input().split()))t += sum(l)x = -sum(l[i] for i in range(1 , len(l)))if x > p:p = xk = _ + 1
print(t , k , p)
第二题:小明种苹果(续)
#include<iostream>
#include<vector>
#include<cstring>using namespace std;typedef long long ll;
const int N = 1010;
int n;
ll t;
int d , e;
bool diao[N];int main()
{memset(diao , 0 , sizeof diao);cin >> n;for(int i = 0;i < n;i ++){int m;cin >> m;vector<ll>v;for(int j = 0;j < m;j ++){ll x;cin >> x;v.push_back(x);}ll temp = v[0];// 前缀和的思想for(int j = 1;j < m;j ++){if(v[j] <= 0) temp += v[j];else {if(temp != v[j]) diao[i] = true; }}for(int j = m - 1;j >= 0;j --){t += v[j];if(v[j] > 0) break;}}for(int i = 0;i < n;i ++)if(diao[i]) d ++;for(int i = 0;i < n;i ++)if(diao[i] && diao[(i + 1) % n] && diao[(i + 2) % n]) e ++;cout << t << " " << d << " " << e << endl;
}
第三题:字符画
#include <iostream>
#include <cstring>
#include <algorithm>using namespace std;typedef unsigned char UC;
const int N = 1080, M = 1920;int m, n, p, q;
UC g[N][M][3];inline int get(char c)
{if (c <= '9') return c - '0';return c - 'a' + 10;
}inline char get(int x)
{if (x <= 9) return x + '0';return x - 10 + 'A';
}inline void print(char* str)
{for (int i = 0; str[i]; i ++ )printf("\\x%c%c", get(str[i] / 16), get(str[i] % 16));
}int main()
{scanf("%d%d%d%d", &m, &n, &p, &q);char str[100];for (int i = 0; i < n; i ++ )for (int j = 0; j < m; j ++ ){scanf("%s", str);int len = strlen(str);if (len == 2){int t = get(str[1]);for (int k = 0; k < 3; k ++ )g[i][j][k] = t * 16 + t;}else if (len == 4){for (int k = 0; k < 3; k ++ ){int t = get(str[1 + k]);g[i][j][k] = t * 16 + t;}}else{for (int k = 0; k < 3; k ++ )g[i][j][k] = get(str[1 + k * 2]) * 16 + get(str[2 + k * 2]);}}int bg[3] = {0};for (int i = 0; i < n / q; i ++ ){for (int j = 0; j < m / p; j ++ ){int cur[3] = {0};for (int x = 0; x < q; x ++ )for (int y = 0; y < p; y ++ )for (int z = 0; z < 3; z ++ )cur[z] += g[i * q + x][j * p + y][z];for (int k = 0; k < 3; k ++ ) cur[k] /= p * q;if (cur[0] == bg[0] && cur[1] == bg[1] && cur[2] == bg[2]) ; // passelse if (!cur[0] && !cur[1] && !cur[2]) print("\033[0m");else{sprintf(str, "\033[48;2;%d;%d;%dm", cur[0], cur[1], cur[2]);print(str);}for (int k = 0; k < 3; k ++ ) bg[k] = cur[k];print(" ");}if (bg[0] || bg[1] || bg[2]){print("\033[0m");for (int k = 0; k < 3; k ++ ) bg[k] = 0;}print("\n");}return 0;
}
第四题:推荐系统
#include<iostream>
#include<queue>
#include<algorithm>
#include<cstring>
#include<vector>
#include<map>using namespace std;const int N = 110;
typedef pair<int , int>PII;
int n , m;struct node
{int id , idx , sc; //商品种类id,第idx个商品,该商品得分scbool operator < (const node &p) const{if(sc != p.sc) return sc < p.sc;if(id != p.id) return id > p.id;return idx > p.idx;}
};priority_queue<node>q;
map<PII , int>mp;int main()
{cin >> m >> n;for(int i = 0;i < n;i ++){int a , b;cin >> a >> b;for(int j = 0;j < m;j ++)q.push({j , a , b}); // m类商品的第j个商品的编号和得分}int t;cin >> t;while(t --){int op;cin >> op;if(op == 1){int a , b , c;cin >> a >> b >> c;q.push({a , b , c});}else if(op == 2){int a , b;cin >> a >> b;mp[{a , b}] = 1;}else{int k;cin >> k;int many_k[N];priority_queue<node>temp;for(int i = 0;i < m;i ++)cin >> many_k[i];map<int , vector<int>>res;while(!q.empty() && k){auto t = q.top();q.pop();temp.push(t);if(!mp[{t.id , t.idx}]){if(many_k[t.id]){many_k[t.id] --;k --;res[t.id].push_back(t.idx);}}}while(!temp.empty()){q.push(temp.top());temp.pop();}for(int i = 0;i < m;i ++){if(!res[i].size()) puts("-1");else {for(auto j : res[i])cout << j << " ";cout << endl;}}}}return 0;
}
第五题:城市规划
#include <iostream>
#include <cstring>
#include <algorithm>using namespace std;typedef long long LL;
const int N = 50010, M = N * 2;int n, m, K;
int h[N], e[M], w[M], ne[M], idx;
LL f[N][110];
bool st[N];
int sz[N];
LL ans = 1e18;void add(int a, int b, int c)
{e[idx] = b, w[idx] = c, ne[idx] = h[a], h[a] = idx ++ ;
}void dfs(int u, int fa)
{f[u][0] = 0;if (st[u]) f[u][1] = 0;sz[u] = 1;for (int i = h[u]; ~i; i = ne[i]) // 枚举物品组{int ver = e[i];if (ver == fa) continue;dfs(ver, u);sz[u] += sz[ver];for (int j = min(sz[u], K); j >= 0; j -- ) // 枚举体积for (int k = 0; k <= min(j, sz[ver]); k ++ ) // 枚举决策f[u][j] = min(f[u][j], f[u][j - k] + f[ver][k] + (LL)w[i] * k * (K - k));}ans = min(ans, f[u][K]);
}int main()
{scanf("%d%d%d", &n, &m, &K);memset(h, -1, sizeof h);while (m -- ){int x;scanf("%d", &x);st[x] = true;}for (int i = 0; i < n - 1; i ++ ){int a, b, c;scanf("%d%d%d", &a, &b, &c);add(a, b, c), add(b, a, c);}memset(f, 0x3f, sizeof f);dfs(1, -1);printf("%lld\n", ans);return 0;
}
相关文章:
第十七次CCF计算机软件能力认证
第一题:小明种苹果 n , m map(int , input().split()) t , k , p 0 , 0 , -1 for _ in range(n):l list(map(int , input().split()))t sum(l)x -sum(l[i] for i in range(1 , len(l)))if x > p:p xk _ 1 print(t , k , p) 第二题:小明种苹…...
ApplicationContext在Spring Boot中是如何创建的?
一、ApplicationContext在Spring Boot中是如何创建的? 1. SpringApplication ApplicationContextFactory有三个实现类,分别是AnnotationConfigReactiveWebServerApplicationContext.Factory、AnnotationConfigServletWebServerApplicationContext.Facto…...
后端开发7.轮播图模块【mongdb开发】
概述 轮播图模块数据库采用mongdb开发 效果图 数据库设计 创建数据库 use sc; 添加数据 db.banner.insertMany([ {bannerId:"1",bannerName:"商城轮播图1",bannerUrl:"http://xx:8020/img/轮播图/shop1.png"}, {bannerId:"2"…...
Linux常用命令(一):创建文件目录
一、touch: 1、作用: 1). 改变已有文件的时间戳属性,修改文件时间戳时,用户必须的文件的属主,或者拥有写文件的权限 2). 创建新的空文件 2、语法: touch [option] 文件名 ,后面可跟多个文件名3、示例 …...
如何创建一个Vue组件?如何在父组件和子组件之间传递数据?如何在子组件中向父组件发送消息?
1、如何创建一个Vue组件? 要创建一个Vue组件,可以按照以下步骤进行: 安装Vue CLI(如果还没有安装): npm install -g vue/cli创建一个新的Vue组件: vue create my-component在 src/component…...
设计模式之适配器模式
一、概述 将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 二、适用性 1.你想使用一个已经存在的类,而它的接口不符合你的需求。 2.你想创建一个可以复用的类,该类可以与其他不…...
让ChatGPT介绍一下ChatGPT(ChatGPT的自我介绍)
ChatGPT是这样介绍自己的: ChatGPT是由OpenAI开发的一种基于大规模预训练的语言模型。它是建立在GPT(Generative Pre-trained Transformer)架构的基础上,经过大量的数据训练而成。 ChatGPT旨在通过对话与用户进行交互࿰…...
CentOS 7 构建 LVS-DR 群集
一、LVS-DR集群摘要 LVS(Linux Virtual Server)是一个用于构建可扩展和高可用性的负载均衡集群的软件。它基于Linux操作系统,并提供了一种将网络流量分发到多个后端服务器的机制。 二、基本工作原理 配置负载均衡器:在LVS集群中…...
MySQL8.0.33二进制包安装与部署
官方文档 https://downloads.mysql.com/archives/community/https://dev.mysql.com/doc/refman/8.1/en/binary-installation.html官方文档操作步骤 # Preconfiguration setup $> groupadd mysql $> useradd -r -g mysql -s /bin/false mysql # Beginning of source-build…...
RocketMQ发送消息失败:error CODE: 14 DESC: service not available now, maybe disk full
在执行业务时,发现MQ控制台没有查询到消息,在日志中发现消息发送失败,报错error CODE: 14 DESC: service not available now, maybe disk full 分析报错应该是磁盘空间不足,导致broker不能进行正常的消息存储刷盘,去查…...
1.Fay-UE5数字人工程导入(UE数字人系统教程)
非常全面的数字人解决方案(含源码) Fay-UE5数字人工程导入 1、工程下载:xszyou/fay-ue5: 可对接fay数字人的ue5工程 (github.com) 2、ue5下载安装:Unreal Engine 5 3、ue5插件安装 依次安装以下几个插件 4、双击运行工程 5、切换中文 6、检…...
Linux 终端操作命令(2)内部命令分类
Linux 终端操作命令 也称Shell命令,是用户与操作系统内核进行交互的命令解释器,它接收用户输入的命令并将其传递给操作系统进行执行,可分为内部命令和外部命令。内部命令是Shell程序的一部分,而外部命令是独立于Shell的可执行程序…...
【数据结构与算法】十大经典排序算法-插入排序
🌟个人博客:www.hellocode.top 🏰Java知识导航:Java-Navigate 🔥CSDN:HelloCode. 🌞知乎:HelloCode 🌴掘金:HelloCode ⚡如有问题,欢迎指正&#…...
如何使用PHP Smarty进行条件判断和循环?
欢迎来到PHP Smarty的世界!如果你想要在Smarty中执行条件判断和循环,那么你需要了解一些基本的语法和结构。 首先,让我们从条件判断开始吧!在Smarty中,你可以使用{if}、{elseif}和{else}语句来进行条件判断。这些语句的…...
使用svg生成图像
使用svg生成图像 每个HTML开发人员都应该对可伸缩的向量图形有一个基本的理解。本文会通过使用svg创建一个雨伞图像来介绍一下svg的基本知识。 svg介绍 SVG 意为可缩放矢量图形(Scalable Vector Graphics)。是一种可以在HTML中创建图像的方式。 我们…...
DNS、ARP
目录 DNS以及它的用途 DNS的解析方式 DNS的查询方式 DNS使用TCP/UDP DNS劫持 常见的DNS劫持现象 DNS劫持与HTTP劫持的不同 处理DNS劫持 DNS缓存 DNS实现负载均衡 ARP以及他的工作原理 DNS以及它的用途 DNS是域名解析服务器,用来将域名解析成IP。DNS工作在…...
uniapp 微信小程序 echarts地图 点击显示类目
效果如图: 在tooltip内axisPointer内添加 label:{show:true} 即可显示“请求离婚”的标题...
速刷算法#Day-02
有序数组的平方 方法一:暴力求解 排序 暴力先求平方,然后NT直接用sort这个方法首先对数组中的每个元素求平方,然后进行排序。下面是对应的C代码: class Solution { public:vector<int> SortedSquare(vector<int>&…...
Java怎么手动将对象注入到springboot
在Java中,可以使用Spring的ApplicationContext来手动将对象注入到Spring Boot中。 1. 首先,确保你已经在Spring Boot应用程序中引入了Spring的依赖,比如 spring-boot-starter 。 2. 在你的类中注入ApplicationContext对象: Autowi…...
twisted 18.7.0 requires PyHamcrest>=1.9.0 解决方案
大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…...
Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误
HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误,它们的含义、原因和解决方法都有显著区别。以下是详细对比: 1. HTTP 406 (Not Acceptable) 含义: 客户端请求的内容类型与服务器支持的内容类型不匹…...
go 里面的指针
指针 在 Go 中,指针(pointer)是一个变量的内存地址,就像 C 语言那样: a : 10 p : &a // p 是一个指向 a 的指针 fmt.Println(*p) // 输出 10,通过指针解引用• &a 表示获取变量 a 的地址 p 表示…...
五子棋测试用例
一.项目背景 1.1 项目简介 传统棋类文化的推广 五子棋是一种古老的棋类游戏,有着深厚的文化底蕴。通过将五子棋制作成网页游戏,可以让更多的人了解和接触到这一传统棋类文化。无论是国内还是国外的玩家,都可以通过网页五子棋感受到东方棋类…...
Java详解LeetCode 热题 100(26):LeetCode 142. 环形链表 II(Linked List Cycle II)详解
文章目录 1. 题目描述1.1 链表节点定义 2. 理解题目2.1 问题可视化2.2 核心挑战 3. 解法一:HashSet 标记访问法3.1 算法思路3.2 Java代码实现3.3 详细执行过程演示3.4 执行结果示例3.5 复杂度分析3.6 优缺点分析 4. 解法二:Floyd 快慢指针法(…...
MySQL体系架构解析(三):MySQL目录与启动配置全解析
MySQL中的目录和文件 bin目录 在 MySQL 的安装目录下有一个特别重要的 bin 目录,这个目录下存放着许多可执行文件。与其他系统的可执行文件类似,这些可执行文件都是与服务器和客户端程序相关的。 启动MySQL服务器程序 在 UNIX 系统中,用…...
如何做好一份技术文档?从规划到实践的完整指南
如何做好一份技术文档?从规划到实践的完整指南 🌟 嗨,我是IRpickstars! 🌌 总有一行代码,能点亮万千星辰。 🔍 在技术的宇宙中,我愿做永不停歇的探索者。 ✨ 用代码丈量世界&…...
统计学(第8版)——统计抽样学习笔记(考试用)
一、统计抽样的核心内容与问题 研究内容 从总体中科学抽取样本的方法利用样本数据推断总体特征(均值、比率、总量)控制抽样误差与非抽样误差 解决的核心问题 在成本约束下,用少量样本准确推断总体特征量化估计结果的可靠性(置…...
C/Python/Go示例 | Socket Programing与RPC
Socket Programming介绍 Computer networking这个领域围绕着两台电脑或者同一台电脑内的不同进程之间的数据传输和信息交流,会涉及到许多有意思的话题,诸如怎么确保对方能收到信息,怎么应对数据丢失、被污染或者顺序混乱,怎么提高…...
基于django+vue的健身房管理系统-vue
开发语言:Python框架:djangoPython版本:python3.8数据库:mysql 5.7数据库工具:Navicat12开发软件:PyCharm 系统展示 会员信息管理 员工信息管理 会员卡类型管理 健身项目管理 会员卡管理 摘要 健身房管理…...
在ubuntu等linux系统上申请https证书
使用 Certbot 自动申请 安装 Certbot Certbot 是 Let’s Encrypt 官方推荐的自动化工具,支持多种操作系统和服务器环境。 在 Ubuntu/Debian 上: sudo apt update sudo apt install certbot申请证书 纯手动方式(不自动配置)&…...
