【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++将处理后的信号保存为PNG和TIFF格式

《使用C++将处理后的信号保存为PNG和TIFF格式》在信号处理领域,我们常常需要将处理结果以图像的形式保存下来,方便后续分析和展示,C++提供了多种库来处理图像数据,本文将介绍如何使用stb_ima... 目录1. PNG格式保存使用stb_imagephp_write库1.1 安装和包含库1.2 代码解

C#使用DeepSeek API实现自然语言处理,文本分类和情感分析

《C#使用DeepSeekAPI实现自然语言处理,文本分类和情感分析》在C#中使用DeepSeekAPI可以实现多种功能,例如自然语言处理、文本分类、情感分析等,本文主要为大家介绍了具体实现步骤,... 目录准备工作文本生成文本分类问答系统代码生成翻译功能文本摘要文本校对图像描述生成总结在C#中使用Deep

C#从XmlDocument提取完整字符串的方法

《C#从XmlDocument提取完整字符串的方法》文章介绍了两种生成格式化XML字符串的方法,方法一使用`XmlDocument`的`OuterXml`属性,但输出的XML字符串不带格式,可读性差,... 方法1:通过XMLDocument的OuterXml属性,见XmlDocument类该方法获得的xm

Spring Boot 整合 ShedLock 处理定时任务重复执行的问题小结

《SpringBoot整合ShedLock处理定时任务重复执行的问题小结》ShedLock是解决分布式系统中定时任务重复执行问题的Java库,通过在数据库中加锁,确保只有一个节点在指定时间执行... 目录前言什么是 ShedLock?ShedLock 的工作原理:定时任务重复执行China编程的问题使用 Shed

Redis如何使用zset处理排行榜和计数问题

《Redis如何使用zset处理排行榜和计数问题》Redis的ZSET数据结构非常适合处理排行榜和计数问题,它可以在高并发的点赞业务中高效地管理点赞的排名,并且由于ZSET的排序特性,可以轻松实现根据... 目录Redis使用zset处理排行榜和计数业务逻辑ZSET 数据结构优化高并发的点赞操作ZSET 结

微服务架构之使用RabbitMQ进行异步处理方式

《微服务架构之使用RabbitMQ进行异步处理方式》本文介绍了RabbitMQ的基本概念、异步调用处理逻辑、RabbitMQ的基本使用方法以及在SpringBoot项目中使用RabbitMQ解决高并发... 目录一.什么是RabbitMQ?二.异步调用处理逻辑:三.RabbitMQ的基本使用1.安装2.架构

JSON字符串转成java的Map对象详细步骤

《JSON字符串转成java的Map对象详细步骤》:本文主要介绍如何将JSON字符串转换为Java对象的步骤,包括定义Element类、使用Jackson库解析JSON和添加依赖,文中通过代码介绍... 目录步骤 1: 定义 Element 类步骤 2: 使用 Jackson 库解析 jsON步骤 3: 添

一文详解Python中数据清洗与处理的常用方法

《一文详解Python中数据清洗与处理的常用方法》在数据处理与分析过程中,缺失值、重复值、异常值等问题是常见的挑战,本文总结了多种数据清洗与处理方法,文中的示例代码简洁易懂,有需要的小伙伴可以参考下... 目录缺失值处理重复值处理异常值处理数据类型转换文本清洗数据分组统计数据分箱数据标准化在数据处理与分析过

mysql外键创建不成功/失效如何处理

《mysql外键创建不成功/失效如何处理》文章介绍了在MySQL5.5.40版本中,创建带有外键约束的`stu`和`grade`表时遇到的问题,发现`grade`表的`id`字段没有随着`studen... 当前mysql版本:SELECT VERSION();结果为:5.5.40。在复习mysql外键约

Java 字符数组转字符串的常用方法

《Java字符数组转字符串的常用方法》文章总结了在Java中将字符数组转换为字符串的几种常用方法,包括使用String构造函数、String.valueOf()方法、StringBuilder以及A... 目录1. 使用String构造函数1.1 基本转换方法1.2 注意事项2. 使用String.valu