第十七次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博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…...

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)
题目:3442. 奇偶频次间的最大差值 I 思路 :哈希,时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况,哈希表这里用数组即可实现。 C版本: class Solution { public:int maxDifference(string s) {int a[26]…...
内存分配函数malloc kmalloc vmalloc
内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...

linux之kylin系统nginx的安装
一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源(HTML/CSS/图片等),响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址,提高安全性 3.负载均衡服务器 支持多种策略分发流量…...

shell脚本--常见案例
1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件: 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...
在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:
在 HarmonyOS 应用开发中,手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力,既支持点击、长按、拖拽等基础单一手势的精细控制,也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档,…...

渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止
<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet: https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...

有限自动机到正规文法转换器v1.0
1 项目简介 这是一个功能强大的有限自动机(Finite Automaton, FA)到正规文法(Regular Grammar)转换器,它配备了一个直观且完整的图形用户界面,使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...

【7色560页】职场可视化逻辑图高级数据分析PPT模版
7种色调职场工作汇报PPT,橙蓝、黑红、红蓝、蓝橙灰、浅蓝、浅绿、深蓝七种色调模版 【7色560页】职场可视化逻辑图高级数据分析PPT模版:职场可视化逻辑图分析PPT模版https://pan.quark.cn/s/78aeabbd92d1...
JS设计模式(4):观察者模式
JS设计模式(4):观察者模式 一、引入 在开发中,我们经常会遇到这样的场景:一个对象的状态变化需要自动通知其他对象,比如: 电商平台中,商品库存变化时需要通知所有订阅该商品的用户;新闻网站中࿰…...

MySQL的pymysql操作
本章是MySQL的最后一章,MySQL到此完结,下一站Hadoop!!! 这章很简单,完整代码在最后,详细讲解之前python课程里面也有,感兴趣的可以往前找一下 一、查询操作 我们需要打开pycharm …...