第十七次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博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…...
多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度
一、引言:多云环境的技术复杂性本质 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时,基础设施的技术债呈现指数级积累。网络连接、身份认证、成本管理这三大核心挑战相互嵌套:跨云网络构建数据…...
Java 8 Stream API 入门到实践详解
一、告别 for 循环! 传统痛点: Java 8 之前,集合操作离不开冗长的 for 循环和匿名类。例如,过滤列表中的偶数: List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...
深入理解JavaScript设计模式之单例模式
目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式(Singleton Pattern&#…...
CMake控制VS2022项目文件分组
我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...
Golang——6、指针和结构体
指针和结构体 1、指针1.1、指针地址和指针类型1.2、指针取值1.3、new和make 2、结构体2.1、type关键字的使用2.2、结构体的定义和初始化2.3、结构体方法和接收者2.4、给任意类型添加方法2.5、结构体的匿名字段2.6、嵌套结构体2.7、嵌套匿名结构体2.8、结构体的继承 3、结构体与…...
MacOS下Homebrew国内镜像加速指南(2025最新国内镜像加速)
macos brew国内镜像加速方法 brew install 加速formula.jws.json下载慢加速 🍺 最新版brew安装慢到怀疑人生?别怕,教你轻松起飞! 最近Homebrew更新至最新版,每次执行 brew 命令时都会自动从官方地址 https://formulae.…...
学习一下用鸿蒙DevEco Studio HarmonyOS5实现百度地图
在鸿蒙(HarmonyOS5)中集成百度地图,可以通过以下步骤和技术方案实现。结合鸿蒙的分布式能力和百度地图的API,可以构建跨设备的定位、导航和地图展示功能。 1. 鸿蒙环境准备 开发工具:下载安装 De…...
离线语音识别方案分析
随着人工智能技术的不断发展,语音识别技术也得到了广泛的应用,从智能家居到车载系统,语音识别正在改变我们与设备的交互方式。尤其是离线语音识别,由于其在没有网络连接的情况下仍然能提供稳定、准确的语音处理能力,广…...
Docker拉取MySQL后数据库连接失败的解决方案
在使用Docker部署MySQL时,拉取并启动容器后,有时可能会遇到数据库连接失败的问题。这种问题可能由多种原因导致,包括配置错误、网络设置问题、权限问题等。本文将分析可能的原因,并提供解决方案。 一、确认MySQL容器的运行状态 …...
React从基础入门到高级实战:React 实战项目 - 项目五:微前端与模块化架构
React 实战项目:微前端与模块化架构 欢迎来到 React 开发教程专栏 的第 30 篇!在前 29 篇文章中,我们从 React 的基础概念逐步深入到高级技巧,涵盖了组件设计、状态管理、路由配置、性能优化和企业级应用等核心内容。这一次&…...
