当前位置: 首页 > 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.dtcms.com/a/283547.html

相关文章:

  • IIS网站间歇性打不开暴力解决方法
  • 基于多源时序特征卷积网络(MSTFCN)的光伏功率预测模型
  • 对称二叉树、二叉树直径
  • 云测试提前定位和解决问题 萤火故事屋上架流程
  • LLM指纹底层技术——模型架构
  • IPD核心思想之一:业务与能力并重
  • 专业文档盖章软件,批量处理高效
  • Qt开发环境搭建指南:从零开始构建跨平台应用基石
  • MySQL InnoDB 存储引擎
  • 算法穿上隐身衣:数据交易中数据黑箱与算法透明性的法律义务边界
  • Kiro:亚马逊云发布,革命性AI编程工具!以“规范驱动开发“重塑软件构建范式!
  • 识别装甲板
  • C#语法基础总结(超级全面)(二)
  • 理解大模型的对话和检索能力
  • 车载诊断架构 --- 由于产线节拍引起的OEM EOL刷写问题
  • 标准化装配检测解决方案发布,可快速部署,换型仅需一分钟!
  • 多维傅里叶变换性质与计算
  • 权限隔离设计中实现字段级别的动态隐藏
  • [特殊字符]️ Snort 与 Suricata 入侵检测系统详解
  • Scratch竞赛题目
  • Python 多线程
  • Effective Python 第9条: 建议避免在for和while循环后使用else块
  • Scrapy无缝集成Splash:轻量级动态渲染爬虫终极解决方案
  • 轻量级消息总线实现 (C++)
  • 适用于高性能封装的TGV视觉检测方案
  • 版本更新 | 华望M-Design 4400版本功能更新详解(下篇)
  • [特殊字符] Electron 中的 `global` 变量
  • LVGL 列表表格控件颜色修改
  • 【时时三省】(C语言基础)通过指针引用多维数组2
  • oracle服务器定时备份Windows Server