批量上传网站产品小程序源码网

张小明 2026/3/2 21:31:48
批量上传网站产品,小程序源码网,高端品牌网站建设案例,徐州最新通知(100分)- 部门人力分配#xff08;Java JS Python C#xff09;题目描述部门在进行需求开发时需要进行人力安排。当前部门需要完成 N 个需求#xff0c;需求用 requirements 表述#xff0c;requirements[i] 表示第 i 个需求的工作量大小#xff0c;单位…(100分)- 部门人力分配Java JS Python C题目描述部门在进行需求开发时需要进行人力安排。当前部门需要完成 N 个需求需求用 requirements 表述requirements[i] 表示第 i 个需求的工作量大小单位人月。这部分需求需要在 M 个月内完成开发进行人力安排后每个月人力时固定的。目前要求每个月最多有2个需求开发并且每个月需要完成的需求不能超过部门人力。请帮助部门评估在满足需求开发进度的情况下每个月需要的最小人力是多少输入描述输入为 M 和 requirementsM 表示需求开发时间要求requirements 表示每个需求工作量大小N 为 requirements长度1 ≤ N/2 ≤ M ≤ N ≤ 100001 ≤ requirements[i] ≤ 10^9输出描述对于每一组测试数据输出部门需要人力需求行末无多余的空格用例输入33 5 3 4输出6说明输入数据两行第一行输入数据3表示开发时间要求第二行输入数据表示需求工作量大小输出数据一行表示部门人力需求。当选择人力为6时2个需求量为3的工作可以在1个月里完成其他2个工作各需要1个月完成。可以在3个月内完成所有需求。当选择人力为5时4个工作各需要1个月完成一共需要4个月才能完成所有需求。因此6是部门最小的人力需求。题目解析本题是将二分和双指针考点结合在了一起。本题我们可以换个说法目前有 N 个人N个需求每个人的体重为requirements[i]每个需求开发需要的人力为requirements[i]以及 M 辆自行车M个月开发每辆自行车至多坐两人每个月至多开发两个需求现在想要用 M 辆自行车带走 N 个人问每辆自行车的限重至少是多少M个月开发完N个需求每个月至少需要多少人力每辆自行车载重min 至少是 1st_max(requirements)这样才能保证最重的人可以单独骑一辆自行车max 至多是 1st_max(requirements) 2nd_max(requirements)这样最重的两个人可以骑在一辆自行车商我们可以在该[min, max]范围内二分找中间值mid作为每辆自行车的限重去尝试check,看对应限重下至少需要多少辆自行车。比如二分取中间值mid作为每辆自行车的限重并将体重数组requirements升序排序定义两个指针LR初始化L 0Rrequirements.length -1。那么L指向的就是体重最轻的人R指向的就是体重最重的人。如果 requirement[L] requirement[R] mid则说明最轻的人和最重的人可以坐一辆自行车然后LR--用车数量 need如果 requirement[L] requirement[R] mid则说明最重的人只能一个人坐一辆自行车无法搭配其他人然后仅 R-- 用车数量 need按上面逻辑继续进行直到L R时即所有人都坐上了自行车时停止此时我们比较need和M如果need M则说明 mid 限重可以满足M辆车带走所有人此时mid就是一个本题的一个可能解但不一定时最优解我们应该继续尝试更小的限重即max mid - 1如果need M则说明 mid 限重无法满足M辆车带走所有人因此我们需要更大的限重即 min mid 1然后继续二分取中间值作为限重带入前面双指针逻辑check。另外本题需要注意整型溢出问题。JS算法源码const rl require(readline).createInterface({ input: process.stdin }); var iter rl[Symbol.asyncIterator](); const readline async () (await iter.next()).value; // 输入处理 void (async function () { const m parseInt(await readline()); const requirements (await readline()).split( ).map(Number); console.log(getResult(m, requirements)); })(); function getResult(m, requirements) { requirements.sort((a, b) a - b); const n requirements.length; // 每辆自行车的限重 至少是 最重的那个人的体重 let min requirements[n - 1]; // 每辆自行车的限重 至多是 最重的和次重的那两个的体重 let max requirements[n - 2] requirements[n - 1]; let ans max; // 二分取中间值 while (min max) { const mid Math.floor((min max) / 2); // 注意这里不能使用 1 运算会出现整型溢出 if (check(mid, m, requirements)) { // 如果mid限重可以满足m辆车带走n个人则mid就是一个可能解但不一定是最优解 ans mid; // 继续尝试更小的限重即缩小右边界 max mid - 1; } else { // 如果mid限重不能满足m辆车带走n个人则mid限重小了我们应该尝试更大的限重即扩大左边界 min mid 1; } } return ans; } /** * param limit 每辆自行车的限重 * param m m辆自行车 * param requirements n个人的体重数组 * return m辆自行车每辆限重limit的情况下能否带走n个人 */ function check(limit, m, requirements) { let l 0; // 指向体重最轻的人 let r requirements.length - 1; // 指向体重最重的人 // 需要的自行车数量 let need 0; while (l r) { // 如果最轻的人和最重的人可以共享一辆车则l,r-- // 否则最重的人只能单独坐一辆车即仅r-- if (requirements[l] requirements[r] limit) { l; } r--; // 用掉一辆车 need; } // 如果m need当前有的自行车数量足够 return m need; }Java算法源码import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc new Scanner(System.in); int m Integer.parseInt(sc.nextLine()); int[] requirements Arrays.stream(sc.nextLine().split( )).mapToInt(Integer::parseInt).toArray(); System.out.println(getResult(m, requirements)); } public static long getResult(int m, int[] requirements) { Arrays.sort(requirements); int n requirements.length; // 每辆自行车的限重 至少是 最重的那个人的体重 long min requirements[n - 1]; // 每辆自行车的限重 至多是 最重的和次重的那两个的体重 long max requirements[n - 2] requirements[n - 1]; long ans max; // 二分取中间值 while (min max) { long mid (min max) 1; // 需要注意的是minmax单独看都不超过int但是二者相加会超过int因此需要用long类型 if (check(mid, m, requirements)) { // 如果mid限重可以满足m辆车带走n个人则mid就是一个可能解但不一定是最优解 ans mid; // 继续尝试更小的限重即缩小右边界 max mid - 1; } else { // 如果mid限重不能满足m辆车带走n个人则mid限重小了我们应该尝试更大的限重即扩大左边界 min mid 1; } } return ans; } /** * param limit 每辆自行车的限重 * param m m辆自行车 * param requirements n个人的体重数组 * return m辆自行车每辆限重limit的情况下能否带走n个人 */ public static boolean check(long limit, int m, int[] requirements) { int l 0; // 指向体重最轻的人 int r requirements.length - 1; // 指向体重最重的人 // 需要的自行车数量 int need 0; while (l r) { // 如果最轻的人和最重的人可以共享一辆车则l,r-- // 否则最重的人只能单独坐一辆车即仅r-- if (requirements[l] requirements[r] limit) { l; } r--; // 用掉一辆车 need; } // 如果m need当前有的自行车数量足够 return m need; } }Python算法源码# 输入获取 m int(input()) requirements list(map(int, input().split())) def check(limit): :param limit: 每辆自行车的限重 :return: m辆自行车每辆限重limit的情况下能否带走n个人 l 0 # 指向体重最轻的人 r len(requirements) - 1 # 指向体重最重的人 # 需要的自行车数量 need 0 while l r: # 如果最轻的人和最重的人可以共享一辆车则l,r-- # 否则最重的人只能单独坐一辆车即仅r-- if requirements[l] requirements[r] limit: l 1 r - 1 # 用掉一辆车 need 1 # 如果m need当前有的自行车数量足够 return m need def getResult(): requirements.sort() # 每辆自行车的限重 至少是 最重的那个人的体重 low requirements[-1] # 每辆自行车的限重 至多是 最重的和次重的那两个的体重 high requirements[-2] requirements[-1] ans high # 二分取中间值 while low high: mid (low high) 1 if check(mid): # 如果mid限重可以满足m辆车带走n个人则mid就是一个可能解但不一定是最优解 ans mid # 继续尝试更小的限重即缩小右边界 high mid - 1 else: # 如果mid限重不能满足m辆车带走n个人则mid限重小了我们应该尝试更大的限重即扩大左边界 low mid 1 return ans # 算法调用 print(getResult())C算法源码#include stdio.h #include stdlib.h #define MAX_SIZE 10000 /*! * * param limit 每辆自行车的限重 * param m m辆自行车 * param requirements n个人的体重数组 * param requirements_size n个人 * return m辆自行车每辆限重limit的情况下能否带走n个人 */ int check(long long limit, int m, const int requirements[], int requirements_size) { int l 0; // 指向体重最轻的人 int r requirements_size - 1; // 指向体重最重的人 // 需要的自行车数量 int need 0; while (l r) { // 如果最轻的人和最重的人可以共享一辆车则l,r-- // 否则最重的人只能单独坐一辆车即仅r-- if (requirements[l] requirements[r] limit) { l; } r--; // 用掉一辆车 need; } // 如果m need当前有的自行车数量足够 return m need; } int cmp(const void *a, const void *b) { return *((int *) a) - *((int *) b); } long long getResult(int m, int requirements[], int requirements_size) { qsort(requirements, requirements_size, sizeof(int), cmp); // 每辆自行车的限重 至少是 最重的那个人的体重 long long min requirements[requirements_size - 1]; // 每辆自行车的限重 至多是 最重的和次重的那两个的体重 long long max requirements[requirements_size - 2] requirements[requirements_size - 1]; long long ans max; // 二分取中间值 while (min max) { long long mid (min max) 1; // 需要注意的是minmax单独看都不超过int但是二者相加会超过int因此需要用long long类型 if (check(mid, m, requirements, requirements_size)) { // 如果mid限重可以满足m辆车带走n个人则mid就是一个可能解但不一定是最优解 ans mid; // 继续尝试更小的限重即缩小右边界 max mid - 1; } else { // 如果mid限重不能满足m辆车带走n个人则mid限重小了我们应该尝试更大的限重即扩大左边界 min mid 1; } } return ans; } int main() { int m; scanf(%d, m); int requirements[MAX_SIZE]; int requirements_size 0; while (scanf(%d, requirements[requirements_size])) { if (getchar() ! ) break; } printf(%lld\n, getResult(m, requirements, requirements_size)); return 0; }
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

建手机网站软件企业应用平台

Windows Live Mail与Windows 7安全使用指南 在日常的电脑使用中,Windows Live Mail是一款常用的邮件客户端,而Windows 7系统的安全防护也至关重要。下面将详细介绍Windows Live Mail的使用技巧以及Windows 7系统的安全防护方法。 一、Windows Live Mail的使用 (一)打开和…

张小明 2026/1/15 0:58:11 网站建设

打开这个你会感谢我的网站用vs做网站的教程

Wan2.2-T2V-A14B生成跨文化节日庆典视频的适应性测试 你有没有想过,一个AI模型能理解“春节”不只是放鞭炮和红包,还能精准描绘出新加坡街头华人舞狮、马来人挂ketupat、印度人点亮diyas的多元图景?🤯 这不再是科幻。阿里巴巴推出…

张小明 2026/1/15 0:50:07 网站建设

网站建设服务器租用wordpress用户认证

在 20 万以内新能源纯电动 SUV 市场中,不同车型在价格区间与标称纯电续航能力上的差距正逐步缩小,基础配置层面的同质化现象也较为明显。在此背景下,单一参数已难以成为有效区分依据。相较续航数字本身,智能主动安全系统的调校策略…

张小明 2026/1/15 0:48:06 网站建设

一站式服务广告语如何做外贸营销型网站推广

Avalonia:UserControl 与 TemplatedControl Avalonia 中有两种常见控件创建方式——UserControl(用户控件)和 TemplatedControl(模板控件),两者分别有不同的使用场景和特点。 很多教程不会辨析两者区别。如…

张小明 2026/3/2 4:17:43 网站建设

网站建设代码编译的问题及解决方案WordPress推送帖子到QQ群

Google Calendar使用全攻略 1. 查找、查看和修改事件 查找事件 基本搜索 :在Google日历每页顶部使用“搜索”功能,输入搜索词,它会检查每个事件的内容并返回匹配的事件列表。例如,输入“meeting”,会找出所有包含该词的事件。还可以输入更精确的词来限制结果数量,如输…

张小明 2026/3/1 21:46:09 网站建设

网站运营与管理第二版电话营销话术

EmotiVoice在儿童教育机器人中的提问语气 在一间充满童趣的教室里,一个圆头圆脑的教育机器人正俯身对孩子轻声问道:“你觉得星星为什么会发光呀?”它的声音温柔中带着一丝好奇,尾音微微上扬,像极了孩子最喜欢的那位幼…

张小明 2026/3/2 2:08:47 网站建设