【CCPC-2019】【江西省赛】【霖行】J-Worker

2023-11-16

【CCPC-2019】【江西省赛】【霖行】J-Worker

题目:

Avin meets a rich customer today. He will earn 1 million dollars if he can solve a hard problem. There are n warehouses and m workers. Any worker in the i-th warehouse can handle a_i orders per day. The customer wonders whether there exists one worker assignment method satisfying that every warehouse handles the same number of orders every day. Note that each worker should be assigned to exactly one warehouse and no worker is lazy when working.

Input

The first line contains two integers n (1 ≤ n ≤ 1, 000), m (1 ≤ m ≤ 10^18). The second line contains n integers. The i-th integer a_i (1 ≤ a_i ≤ 10) represents one worker in the i-th warehouse can handle a_i orders per day.

Output

If there is a feasible assignment method, print “Yes” in the first line. Then, in the second line, print n integers with the i-th integer representing the number of workers assigned to the i-th warehouse. Otherwise, print “No” in one line. If there are multiple solutions, any solution is accepted.

Sample Input

2 6
1 2
2 5
1 2

Sample Output

Yes
4 2
No

题目大意:

公司有n个仓库,m个工人。在第i个仓库中,每个工人能完成a_i个订单。每个仓库不限工人数量,工人的工作效率只受仓库影响。

问:有没有可能合理分配工人,使所有仓库每天完成的总订单数相同?

输入样例:
第一行给出两个整数n,m。表示有n个仓库,m个工人。
第二行给出n个整数,第i个整数代表第i个仓库中每个工人每天能完成的订单数量。

输出样例:
如果能合理分配工人,使所有仓库每天完成的总订单数相同。就在一行中输出Yes,并且在第二行中给出每个仓库应该有多少个工人。
如果不能合理分配工人,只要在一行中输出No。

样例分析:

题目给出了两组样例

第一组:
Input
2 6
1 2
Output
Yes
4 2

总共有两个仓库,6个工人。第一个仓库中,每个工人每天能完成1个订单。第二个仓库中,每个工人能完成2个订单。

存在方案:第一个仓库分配4个工人,每天总共可完成4个订单。第二个仓库分配2个工人,每天总共可完成4个订单。

故输出Yes, 4, 2。

题目分析:

我们可算出每个仓库工人效率共同的最小公倍数lcm,lcm即每个仓库共同的最小总单数。

lcm/(每个仓库工人的效率) 就是每个仓库所需要的最小人数。

将每个仓库所需的最小人数相加,就是存在目标方案的最小总工人数sum。

若总工人数为sum的倍数,那么就存在方案。

代码:

#include<iostream>
using namespace std;
//计算最大公约数
long long gcd(long long a, long long b)
{
	return b == 0 ? a : gcd(b, a % b);
}
//计算最小公倍数
long long lcm(long long a, long long b)
{
	return a / gcd(a, b) * b;
}

int main()
{
	long long n, m;
	while (cin>>n>>m)
	{
        //A为仓库工人效率,B为仓库应有工人的最小数量
		long long A[11111] = { 0 };
		long long B[11111] = { 0 };
        //计算最小公倍数
		long long GBS = 1;
		for (int i = 0; i < n; i++)
		{
			scanf("%lld", &A[i]);
			GBS = lcm(GBS, A[i]);
		}
		//计算所需最小总工人数
		long long sum = 0;
		for (long long i = 0; i < n; i++)
		{
			B[i] = GBS / A[i];
			sum += B[i];
		}
        //不符合条件
		if (m % sum != 0)
		{
			printf("NO\n");
			continue;
		}
        //符合条件
		printf("Yes\n");
		for (long long i = 0; i < n; i++)
		{
			if (i != 0) printf(" ");
			printf("%lld", B[i]*(m / sum));//(m/sum)为倍数
		}
		puts("");
	}
	return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【CCPC-2019】【江西省赛】【霖行】J-Worker 的相关文章

随机推荐

  • 给锂电池充电,充电器的输出电压

    目录 老旧充电器的一点小问题 指示灯不亮 拆 丢弃 给锂电池充电 指示灯无法显示充电状态 如何判断电池是否充满电了 电池反向充电 总结 老旧充电器的一点小问题 指示灯不亮 今天遇到一个有意思的问题 我买了两个12V的锂电池 DC接口 于是我
  • 2023年高校大数据实验室建设方案

    大数据实验室建设方案具体内容包括 人才培养方案建设 课程资源建设 师资建设 实验室建设 教学服务建设 泰迪打造国内领先的大数据人工智能及课程资源 包括 商务数据分析实训管理平台 云计算资源管理平台 大数据编程实训平台 商务数据分析编程实训平
  • Unity ScrollView拖不动

    今天再用Unity的imgui的ScrollView的时候 发现UI拖不动 找了好半天 终于招到了原因 在此记录下 代码如下 public Vector2 scrollPosition Vector2 zero void OnGUI scr
  • 移动端与服务端交互安全方案

    系统流程图 验签 解决问题 1 身份验证 是否是我规定的那个人 2 防篡改 是否被第三方劫持并篡改参数 3 防重放 是否重复请求 具体算法 1 约定appKey 保证该调用请求是平台授权过的调用方发出的 保证请求方唯一性 2 将appKey
  • 常用巡检命令

    思科设备 show version 查看系统软 硬件版本信息 show running config 查看设备运行的配置信息 show ip interfaces brief 查看所有接口摘要信息 show interfaces 查看全部接
  • Java中弹出对话框中的几种方式

    1 显示一个错误对话框 该对话框显示的 message 为 alert JOptionPane showMessageDialog null alert alert JOptionPane ERROR MESSAGE 2 显示一个内部信息对
  • JavaSE知识体系目录

    文章目录 Java基础语法知识 关键字 运算符 数据类型 流程控制语句 面向对象 异常和常用类 集合 Collection Map IO 字节流 字符流 线程 网络 Java基础语法知识 关键字 运算符 算数运算符 比较运算符 赋值运算符
  • CSS盒模型自适应布局——calc与box-sizing

    CSS盒模型 1 CSS中盒模型分为两种 第一种是W3C的标准模型 即盒子的宽高等于内容的宽高 盒子的padding和border不计算在内 第二种是IE的传统模型 IE6以下 不含IE6 称为怪异模式或者QuirksMode 即盒子的宽高
  • sklearn中的LASSO

    LASSO import numpy as np import matplotlib pyplot as plt np random seed 42 x np random uniform 3 0 3 0 size 100 X x resh
  • pytorch 笔记: Swin-Transformer 代码

    理论部分 论文笔记 Swin Transformer Hierarchical Vision Transformer using Shifted Windows UQI LIUWJ的博客 CSDN博客 源码部分 Swin Transform
  • Java占位符总结

    文章目录 实现方式 方式一 jdk1 8 java text MessageFormat 方式二 Log4j javaorg slf4j helpers MessageFormatter 方式三 commons text org apach
  • linux下搭建goprotobuf

    linux下搭建goprotobuf 1 搭建go语言环境 参考官网 http golang org doc install 主要是设置好GO PATH这个变量 这个就是你的工作环境目录 可以使用go env来查询设置好了没 2 搭建pro
  • python中列表概念,Python基本数据类型——List(列表)

    1 序列 1 1 序列的基本概念 序列是Python中最基本的一种数据结构 序列用于保存一组有序的数据 所有的数据在序列当中都有一个唯一的位置 索引 并且序列中的数据会按照添加的顺序来分配索引 数据结构是指计算机中数据存储的方式 1 2 序
  • Pinpoint--基础--04--请求追踪和字节码插装

    Pinpoint 基础 04 请求追踪和字节码插装 备注 背景 英文原文 https naver github io pinpoint 1 8 4 techdetail html Dapper原文 https ai google resea
  • 00后卷王自述,我真的很卷吗?

    前段时间我去面试了一个软件测试公司 成功拿到了offer 薪资也从10k涨到了18k 对于工作都还没两年的我来说 还是比较满意的 毕竟有些工作了3到4年的可能还没有我的高 在公司一段时间后大家都说我是卷王 其实我也没办法 自己家里条件不是很
  • Pytorch ----注意力机制与自注意力机制的代码详解与使用

    注意力机制的核心重点就是让网络关注到它更需要关注的地方 当我们使用卷积神经网络去处理图片的时候 我们会更希望卷积神经网络去注意应该注意的地方 而不是什么都关注 我们不可能手动去调节需要注意的地方 这个时候 如何让卷积神经网络去自适应的注意重
  • Java基础6--对象和类

    Java基础6 对象和类 文章目录 Java基础6 对象和类 概念 Java中的对象 Java 中的类 构造方法 创建对象 访问实例变量和方法 Java 内部类 非静态内部类 静态内部类 从内部类访问外部类成员 import 语句 概念 对
  • 异步编程CompletableFuture系列3 接口合并

    直接上代码 import java util concurrent CompletableFuture import java util concurrent TimeUnit public class Test3 public stati
  • 没有找到MSVCR90D.DLL的两种解决方法

    1 没有找到MSVCR90D DLL的简单解决方法之一 在VS2005 2008下写C C 程序时 偶然会出现这样的错误 这样的错误一般会出现在第一次运行项目时 或重装VS后 这里提供一种简单的解决办法 希望对初学者有用 打开项目的属性页
  • 【CCPC-2019】【江西省赛】【霖行】J-Worker

    CCPC 2019 江西省赛 霖行 J Worker 题目 Avin meets a rich customer today He will earn 1 million dollars if he can solve a hard pro