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

洛谷 P11247 [GESP202409 六级] 算法学习-普及/提高-

题目描述

小杨计划学习 mmm 种算法,为此他找了 nnn 道题目来帮助自己学习,每道题目最多学习一次。

小杨对于 mmm 种算法的初始掌握程度均为 000。第 iii 道题目有对应的知识点 aia_iai,即学习第 iii 道题目可以令小杨对第 aia_iai 种算法的掌握程度提高 bib_ibi。小杨的学习目标是对于 mmm 种算法的掌握程度均至少为 kkk

小杨认为连续学习两道相同知识点的题目是不好的,小杨想请你编写程序帮他计算出他最少需要学习多少道题目才能使得他在完成学习目标的同时避免连续学习两道相同知识点的题目。

输入格式

第一行三个正整数 m,n,km, n, km,n,k,代表算法种类数,题目数和目标掌握程度。
第二行 nnn 个正整数 a1,a2,...,ana_1, a_2, ..., a_na1,a2,...,an,代表每道题目的知识点。
第二行 nnn 个正整数 b1,b2,...,bnb_1, b_2, ..., b_nb1,b2,...,bn,代表每道题目提升的掌握程度。

输出格式

输出一个整数,代表小杨最少需要学习题目的数量,如果不存在满足条件的方案,输出 -1。

输入输出样例 #1

输入 #1

3 5 10
1 1 2 3 3
9 1 10 10 1

输出 #1

4

输入输出样例 #2

输入 #2

2 4 10
1 1 1 2
1 2 7 10

输出 #2

-1

说明/提示

样例 1 解释

一种最优学习顺序为第一道题,第三道题,第四道题,第二道题。

数据规模与约定

子任务编号数据点占比mmmnnnbib_ibikkk
11130%30\%30%222≤9\leq 99≤10\leq 1010≤10\leq 1010
22230%30\%30%≤9\leq 99≤9\leq 99≤10\leq 1010≤10\leq 1010
33340%40\%40%≤105\leq 10^5105≤105\leq 10^5105≤105\leq 10^5105≤105\leq 10^5105

对于全部数据,保证有 1≤m,n,bi,k≤1051 \leq m, n, b_i, k \leq 10^51m,n,bi,k1051≤ai≤m1 \leq a_i \leq m1aim

solution

贪心算法,先单独统计每种知识点最低需要学几道题,然后判断是否满足最多的那个超过半数至少为 2

代码

#include <iostream>
#include "bit"
#include "vector"
#include "unordered_set"
#include "set"
#include "queue"
#include "algorithm"
#include "bitset"using namespace std;const int N = 1e5 + 1;
int n, m, k, a[N], b[N];
vector<int> c[N];int main() {cin >> n >> m >> k;for (int i = 0; i < m; i++) cin >> a[i];for (int i = 0; i < m; i++) cin >> b[i];for (int i = 0; i < m; i++) c[a[i]].push_back(b[i]);int M = 0, sum = 0;for (int i = 1; i <= n; i++) {std::sort(c[i].begin(), c[i].end(), greater<>());int s = 0, j = 0;while (true){s += c[i][j++];if(s >= k) break;if(j == c[i].size()){cout << -1;return 0;}}// cout << j << endl;sum += j;M = max(M, j);}if(M > (m + 1) / 2) cout << -1;else cout << sum;
}

结果

在这里插入图片描述

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

相关文章:

  • pymongo库:简易方式存取数据
  • ETL还是ELT,大数据处理怎么选更靠谱?
  • 步态循环(Gait Cycle)
  • 【MySQL事务和锁】回顾事务
  • 图像质量评价(Image Quality Assessment,IQA)
  • 调试bug记录
  • 【基于飞浆训练车牌识别模型】
  • Docker——Redis
  • 【C语言网络编程】HTTP 客户端请求(发送请求报文过程)
  • Mybatis07-缓存
  • 比特币技术简史 第二章:密码学基础 - 哈希函数、公钥密码学与数字签名
  • 今日行情明日机会——20250716
  • S7-200 SMART PLC:模拟量模块接线全解析
  • 汽车功能安全-相关项集成和测试(系统集成测试系统合格性测试)-12
  • xss-labs通关
  • “Datawhale AI夏令营”基于带货视频评论的用户洞察挑战赛2
  • lesson15:Python的文件操作
  • Docker 中的动态配置:docker update 命令与环境变量管理
  • Hadoop架构演进:从1.0到2.0的深度对比与优化解析
  • Docker 安装和配置 MySQL 8.0.36 的详细步骤
  • 力扣-146.LRU缓存机制
  • Linux-局域网构建+VLAN 划分 + 端口 MAC-IP 绑定 + 静态 DHCP
  • 【前端】在Vue3中绘制多系列柱状图与曲线图
  • (nice!!!)(LeetCode 每日一题) 3201. 找出有效子序列的最大长度 I (动态规划dp)
  • 产品经理笔试考试回忆集(2025湖南某国企)
  • 电力政策解读:山东电网新型储能集中调用的能源管理系统实现点
  • 百炼Agent MCP与IoT实战(二):阿里云MQTT Broker配置
  • arm版本的ubuntu安装git或者vim等方法
  • TypeScript的export用法
  • Linux LVS集群技术详解与实战指南