首页 > 其他分享 >B. Parity and Sum

B. Parity and Sum

时间:2024-08-08 10:05:30浏览次数:8  
标签:Parity nums int Sum 奇数 奇偶性 偶数 maxn

题意:给定n个数,每次操作任选两个数,将其中较小的数改为它们的和。问最小操作次数可以让n个数奇偶性相同。

思路:如果初始时奇偶性相同,则不操作,否则,最后结果一定是数组中全为奇数。找到最大的奇数,对偶数排序后考虑所有的偶数。如果当前奇数 > 偶数,则更新奇数最大值为偶数和奇数的和。否则,奇数要先变的比偶数大,才能让偶数变为奇数(这个操作只需要一次即可,让奇数与最大的偶数相加)

总结:思维题。

void solve(){
	int n;
	cin >> n;

	vector<long long> nums;
	long long maxn = 0;
	for (int i = 0; i < n; ++i) {
		int t;
		cin >> t;
		if (t % 2 == 0) {
			nums.push_back(t);
		} 
		else {
			maxn = max<long long>(maxn, t);
		}
	}

	if (nums.empty() || nums.size() == n) {
		cout << "0\n";
		return;
	}

	sort(nums.begin(), nums.end());

	int m = (int)nums.size();
	for (int i = 0; i < m; ++i) {
		if (maxn < nums[i]) {
			cout << m + 1 << '\n';
			return;
		}
		maxn += nums[i];
	}

	cout << m << '\n';
}

标签:Parity,nums,int,Sum,奇数,奇偶性,偶数,maxn
From: https://www.cnblogs.com/yxcblogs/p/18348388

相关文章

  • 托福暑假学习的计划与目标[Plan and Goal of TOEFL Learning in Summer]
    时间即日起至8.31日,共计25天任务二十套听力+阅读=听力lecture3*20=60听力conversation2*20=40阅读2*20=40计划分为五个部分进行阅读每日:长难句分析五句话特殊情况,当日完成了一篇托福阅读可以免除长难句分析,但是必须要分析题目听力每日:边词边......
  • [AGC005B] Minimum Sum 题解
    题目传送门看到这道题很多人用单调栈,其实用笛卡尔树本质差不多,但是思维难度更小。不知道笛卡尔树的同学可以看这里简单说来,笛卡尔树的一个子树可以代表一个区间,且左子树上点的下标小于根节点,右子树上点的坐标大于根节点。这道题要求所有子区间的\(\texttt{min}\)值之和,其实......
  • 14. a+aa+...=sum
    题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。代码:#include<stdio.h>#include<stdlib.h>voidtest(){intsum=0;inta;inttemp;intn;scanf("%d%d",&a,&......
  • LeetCode | 303 RangeSumQueryImmutable
    https://github.com/dolphinmind/datastructure/tree/datastructure-array-02分析所求解的区间[left,right]具有连续性,执行常规for循环计算,[0,left-1]的区间元素累加和与[0,right]的区间元素累加和,有重复的运算区间[0,left)。累加和与长跑比赛其实一致,求取[left,right]区......
  • LeetCode | 209 MinimumSizeSubarraySum
    分析本题中是找与target相符的最小连续的子数组和,找一个能够容纳target这么大的最小子区间。虽然本节引入了滑动窗口的概念,可我更偏好于,这是一只毛毛虫在数组上的移动,找到最小的容纳自己位置的地方target可看作毛虫本身的重量,数组中的每个元素值表示可承受的重量,right右指针看......
  • Missing Coin Sum
    原题链接题解设\(p\)为指向当前无法到达的最小值的指针,初始为11.如果有面值为1的硬币,那么p变成2,否则答案为零如果有面值为1的硬币,那么p变成2如果有面值为2的硬币,那么p变成3以此类推,如果此时p为n,且有一枚面值不大于n的硬币k,那么p此时变成n+k因为p为n的意思是......
  • 测试 MT5 模型,该模型在 xl-sum 数据集上进行了阿拉伯语摘要的微调
    mt5模型在XL-SUM阿拉伯语数据集的10个epoch上进行了良好的微调,但在测试模型时,结果是垃圾、特殊字符和一些英文字符。这是什么原因?我需要解决这个问题以下是MT5模型在阿拉伯语摘要任务中微调后产生乱码、特殊字符和英文的原因,以及可能的解决方案:可能的原......
  • summer2024_机器码
    shellcode5include<string.h>include<stdio.h>include<stdlib.h>include<inttypes.h>include<capstone/capstone.h>include<sys/mman.h>intupkeep(){setvbuf(stdin,NULL,_IONBF,0);setvbuf(stdout,NULL,_IONBF,......
  • 格式化字符串(summer2024_fmt)
    参考博客[参考博客]:https://blog.csdn.net/ysy___ysy/article/details/135700140[参考博客]:https://blog.csdn.net/2402_83422357/article/details/139180404戳此切大佬博客https://blog.csdn.net/Morphy_Amo/article/details/122215773https://blog.csdn.net/song_lee/......
  • summer2024_orw
    妈呀普天同庆,终于过了啊啊啊啊啊【尖叫】【阴暗爬行】orw原理就是有两个函数可以控制函数禁用prtcl()和seccomp()prctl#include<sys/prctl.h>intprctl(intoption,unsignedlongarg2,unsignedlongarg3,unsignedlongarg4,unsignedlongarg5);//主要关注prctl()......