【PAT】1113. Integer Set Partition (25)【字符串处理】

2024-04-12 06:08

本文主要是介绍【PAT】1113. Integer Set Partition (25)【字符串处理】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目描述

Given a set of N (>1) positive integers, you are supposed to partition them into two disjoint sets A​1 and A2​​ of n1 and n2 numbers, respectively. Let S1 and S2 denote the sums of all the numbers in A1 and A2 , respectively. You are supposed to make the partition so that ∣n​1−n2∣ is minimized first, and then ∣S​1−S2∣ is maximized.

翻译:给定有N(>1)个正整数的集合,你需要将它们分成两个不重合的集合A1和A2,分别有n1 和 n2个数字。让S1 和S2分别表示A1 和A2中的元素之和,你需要做出分类,使∣n​1−n2∣最小,∣S​1−S2∣最大。

Input Specification:

Each input file contains one test case. For each case, the first line gives an integer N (2≤N≤10​5​), and then N positive integers follow in the next line, separated by spaces. It is guaranteed that all the integers and their sum are less than 231.

翻译:每个输入文件包含一组测试数据。对于每组输入数据,第一行包括一个正整数N(2≤N≤10​5​),接下来一行包括N个正整数,用空格隔开。数据保证所有正整数和它们的和不超过 231

Output Specification:

For each case, print in a line two numbers: ∣n1−n2∣ and ∣S1−S2∣, separated by exactly one space.

翻译:对于每组输入数据,输出一行两个数字:∣n1−n2∣ 和 ∣S1−S2∣,中间用空格隔开。


Sample Input 1:

10
23 8 10 99 46 2333 46 1 666 555


Sample Output 1:

0 3611


Sample Input 2:

13
110 79 218 69 3721 100 29 135 2 6 13 5188 85


Sample Output 2:

1 9359


解题思路

这道题数据设计的有些问题,直接调用sort试了一下,O(nlogn)的复杂度没有超时,就不想了。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<string>
#include<vector>
#include<algorithm>
#define INF 99999999
#define bug puts("Hello\n")
using namespace std;
int N;
int num[100010];
int main(){scanf("%d",&N);for(int i=0;i<N;i++)scanf("%d",&num[i]);sort(num,num+N);int sum1=0,sum2=0;for(int i=0;i<N/2;i++){sum1+=num[i];}for(int i=N/2;i<N;i++){sum2+=num[i];}printf("%d %d\n",N%2,sum2-sum1);return 0;
}

这篇关于【PAT】1113. Integer Set Partition (25)【字符串处理】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/896313

相关文章

C++中unordered_set哈希集合的实现

《C++中unordered_set哈希集合的实现》std::unordered_set是C++标准库中的无序关联容器,基于哈希表实现,具有元素唯一性和无序性特点,本文就来详细的介绍一下unorder... 目录一、概述二、头文件与命名空间三、常用方法与示例1. 构造与析构2. 迭代器与遍历3. 容量相关4

Python实现字典转字符串的五种方法

《Python实现字典转字符串的五种方法》本文介绍了在Python中如何将字典数据结构转换为字符串格式的多种方法,首先可以通过内置的str()函数进行简单转换;其次利用ison.dumps()函数能够... 目录1、使用json模块的dumps方法:2、使用str方法:3、使用循环和字符串拼接:4、使用字符

Redis中Set结构使用过程与原理说明

《Redis中Set结构使用过程与原理说明》本文解析了RedisSet数据结构,涵盖其基本操作(如添加、查找)、集合运算(交并差)、底层实现(intset与hashtable自动切换机制)、典型应用场... 目录开篇:从购物车到Redis Set一、Redis Set的基本操作1.1 编程常用命令1.2 集

解决docker目录内存不足扩容处理方案

《解决docker目录内存不足扩容处理方案》文章介绍了Docker存储目录迁移方法:因系统盘空间不足,需将Docker数据迁移到更大磁盘(如/home/docker),通过修改daemon.json配... 目录1、查看服务器所有磁盘的使用情况2、查看docker镜像和容器存储目录的空间大小3、停止dock

Python 常用数据类型详解之字符串、列表、字典操作方法

《Python常用数据类型详解之字符串、列表、字典操作方法》在Python中,字符串、列表和字典是最常用的数据类型,它们在数据处理、程序设计和算法实现中扮演着重要角色,接下来通过本文给大家介绍这三种... 目录一、字符串(String)(一)创建字符串(二)字符串操作1. 字符串连接2. 字符串重复3. 字

5 种使用Python自动化处理PDF的实用方法介绍

《5种使用Python自动化处理PDF的实用方法介绍》自动化处理PDF文件已成为减少重复工作、提升工作效率的重要手段,本文将介绍五种实用方法,从内置工具到专业库,帮助你在Python中实现PDF任务... 目录使用内置库(os、subprocess)调用外部工具使用 PyPDF2 进行基本 PDF 操作使用

分析 Java Stream 的 peek使用实践与副作用处理方案

《分析JavaStream的peek使用实践与副作用处理方案》StreamAPI的peek操作是中间操作,用于观察元素但不终止流,其副作用风险包括线程安全、顺序混乱及性能问题,合理使用场景有限... 目录一、peek 操作的本质:有状态的中间操作二、副作用的定义与风险场景1. 并行流下的线程安全问题2. 顺

Python异常处理之避免try-except滥用的3个核心原则

《Python异常处理之避免try-except滥用的3个核心原则》在Python开发中,异常处理是保证程序健壮性的关键机制,本文结合真实案例与Python核心机制,提炼出避免异常滥用的三大原则,有需... 目录一、精准打击:只捕获可预见的异常类型1.1 通用异常捕获的陷阱1.2 精准捕获的实践方案1.3

Pandas处理缺失数据的方式汇总

《Pandas处理缺失数据的方式汇总》许多教程中的数据与现实世界中的数据有很大不同,现实世界中的数据很少是干净且同质的,本文我们将讨论处理缺失数据的一些常规注意事项,了解Pandas如何表示缺失数据,... 目录缺失数据约定的权衡Pandas 中的缺失数据None 作为哨兵值NaN:缺失的数值数据Panda

C++中处理文本数据char与string的终极对比指南

《C++中处理文本数据char与string的终极对比指南》在C++编程中char和string是两种用于处理字符数据的类型,但它们在使用方式和功能上有显著的不同,:本文主要介绍C++中处理文本数... 目录1. 基本定义与本质2. 内存管理3. 操作与功能4. 性能特点5. 使用场景6. 相互转换核心区别