首页 > 其他分享 >CF1715B Beautiful Array 题解

CF1715B Beautiful Array 题解

时间:2022-08-22 15:46:36浏览次数:61  
标签:Beautiful 满足条件 int 题解 ans CF1715B 减去 lld% dfrac

思路

根据题意,不难看出,当 \(b>\dfrac{s}{k}\) 时,一定无解,因为无论怎样分配 \(s\),最终的结果一定不会比 \(\dfrac{s}{k}\) 更大。

然后再来考虑当 \(b\le\dfrac{s}{k}\) 时,什么情况下有解什么情况下无解。

因为 \(b=\sum\limits_{i=1}^n\lfloor\dfrac{a_i}{k}\rfloor\) 我们一开始可以直接把其中一位赋值成 \(s\),其它位置皆为 \(0\)。若这时不满足条件,我们可以考虑从 \(s\) 中减去一部分数分到其它位置。根据贪心的思想,我们每次都让 \(s\) 减去的那一部分数尽可能的大,这样才最有可能满足题目的条件。因为 \(\lfloor\dfrac{k-1}{k}\rfloor=0\),所以直接令减去的部分为 \(k-1\) 即可。

每次减去 \(k-1\) 后,判断当前的 \(s\) 是否满足条件。若满足,直接输出构造方案即可,当运行到每一位上都是 \(k-1\) 时,说明没有任何一种情况满足条件,直接输出 \(-1\) 即可。

代码

#include <bits/stdc++.h>
#define int unsigned long long
using namespace std;
int t, n, k, b, s, ans[100010];

signed main() {
	scanf("%lld", &t);

	while (t--) {
		scanf("%lld%lld%lld%lld", &n, &k, &b, &s);
		memset(ans, 0, sizeof(ans));
		int top = 1;

		while (s / k != b && top <= n) {
			s -= (k - 1);
			ans[top] = (k - 1);
			top++;
		}

		if (s / k == b && top <= n) {
			ans[top] = s;
		} else {
			puts("-1");
			continue;
		}

		for (int i = 1; i <= n; ++i) {

			printf("%lld ", ans[i]);
		}

		putchar('\n');
	}

	return 0;
}


标签:Beautiful,满足条件,int,题解,ans,CF1715B,减去,lld%,dfrac
From: https://www.cnblogs.com/Dregen-Yor/p/16612989.html

相关文章

  • CF1715A Crossmarket 题解
    思路根据题意以及下面给的样例解释,我们不难看出最优解一定是下面两种情况的一种:即一个人直接抵达目标点的距离加上另一个人走行和列,即\(n\)和\(m\)中较小的一个,加......
  • CF1715D 2+ doors 题解
    个人认为这道D比C要简单。思路因为题目中每个条件限制为$a_i\mida_j=x$,并且题目中还提到\(x<2^{30}\),我们考虑将\(x\)转换成二进制的方式表示,枚举\(x\)的......
  • 蔚来杯2022牛客暑期多校训练营加赛 题解
    E.Everyoneisbot对于后\(p\)个人,这\(p\)个人相互制约,一旦有一个人进行复读,剩下的\(p-1\)个人一定会进行复读,那么这个人就会被禁言,对于他来说不是最优策略。此时......
  • 题解 - CF1715
    C.Monoblock先考虑算出修改前的答案。这明显可以增量法\(O(n)\)。修改的时候先考虑把这里断开,然后再考虑和左右两边连上(大概三种情况,随便讨论)D.2+doors完了,口胡假了......
  • CF 1329 题解
    A.DreamoonLikesColoring题目描述有\(n\)个格子排成一行,每个格子初始没有颜色,进行\(m\)次操作,第\(i\)次操作有一个参数\(l_i\),表示可以把\([p_i,p_i+l_i-......
  • P3605 [USACO17JAN]Promotion Counting P 题解
    solution考虑权值线段树合并:首先离散化,然后对于一个节点,我们将它的所有子树合并上来,并统计所有能力指数的个数(权值线段树基本操作),查询时只需查询\(p_i+1\simn\)的和即......
  • 问题解决——SSH时出现WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!(转)
    转自:问题解决——SSH时出现WARNING:REMOTEHOSTIDENTIFICATIONHASCHANGED!1、问题描述终端出现:@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WA......
  • STL中map容器的应用(HDU1263水果题解)
    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1263题目描述:TimeLimit:2000MS;MemoryLimit:65536K;夏天来了~Joe经营着一个不大的水果店.他认为生存之道就......
  • Maven中xml配置文件导出到target失败问题解决方案
    Maven中xml配置文件导出到target失败问题解决方案在pom.xml中加入下面代码<!--在build中配置resources,来防止我们资源导出失败的问题--><build><resources>......
  • springboot多线程环境下注入bean空指针问题解决
    多线程环境下注入bean会出现空指针了..我是怎么知道这个bean有有没有在启动的时候注入进来的呢?用于指示bean包含在SpringApplication中时应该运行的接口。多个CommandL......