【HDU - 6557】Justice(思维,模拟,套路,SETset)

题干:

On the table there are n weights. On the body of the i-th weight carved a positive integer kiki , indicating that its weight is 12ki12ki gram. Is it possible to divide the n weights into two groups and make sure that the sum of the weights in each group is greater or equal to 1212 gram? That’s on your call. And please tell us how if possible.

Input

In the first line of the input there is a positive integer TT (1 ≤ TT ≤ 2000), indicating there are TT testcases.
In the first line of each of the TT testcases, there is a positive integer nn (1 ≤ nn ≤ 105105, ∑n ≤ 7 × 105105), indicating there are nn weights on the table.
In the next line, there are nn integers kiki (1 ≤ ki ≤ 109109), indicating the number carved on each weight.

Output

For each testcase, first print Case ii: ANSWER in one line, ii indicating the case number starting from 11 and ANSWER should be either YES or NO, indicating whether or not it is possible to divide the weights. Pay attention to the space between : and ANSWER.
If it’s possible, you should continue to output the dividing solution by print a 0/1 string of length nn in the next line. The ii-th character in the string indicating whether you choose to put the i-th weight in group 0 or group 1.

Sample Input

3
3
2 2 2
3
2 2 1
2
1 1

Sample Output

Case 1: NO
Case 2: YES
001
Case 3: YES
10

题目大意:

给你 n 个数,如果这个数是k,代表的权值为 \frac{1}{2^{k}}。让你把 n 个数分成两堆,其中每一堆权值和大于等于 1/2。n<1e5, ai<1e9。

要求输出是否可以凑出来,如果可以,要求输出每个数属于哪一个集合,让你输出0或者1。

解题报告:

已经变成了套路题。容易发现两个k可以合成为k-1,所以题意转换一下:按照上述合并规则,答案有解当且仅当可以合成两个1。

所以直接贪心,从小到大搞就好了,拿个set在线维护出现的元素。从大到小搞应该也是可以的,但是不能不排序就乱搞。

之前出现过的类似题有:【CodeForces - 988C 】Equal Sums

AC代码:

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<queue>
#include<stack>
#include<map>
#include<vector>
#include<set>
#include<string>
#include<cmath>
#include<cstring>
#define FF first
#define SS second
#define ll long long
#define pb push_back
#define pm make_pair
using namespace std;
typedef pair<int,int> PII;
const int MAX = 2e5 + 5;
set<int> ss;
struct Node {int a,id;bool operator<(const Node & b) const {return a < b.a;}
} R[MAX];
int tmp,n,tar,ans[MAX];
int main()
{int T,iCase=0;cin>>T;while(T--) {scanf("%d",&n);ss.clear();tar=-1;for(int i = 1; i<=n; i++) scanf("%d",&R[i].a),R[i].id = i,ans[i]=0;printf("Case %d: ",++iCase); sort(R+1,R+n+1);for(int i = 1; i<=n; i++) {tmp=R[i].a;ans[R[i].id] = 1;while(ss.count(tmp) && tmp >= 2) ss.erase(tmp),tmp--;ss.insert(tmp);if(tmp == 1) {tar = i+1;break;}}if(tar==-1) {puts("NO");continue;}ss.clear();for(int i = tar; i<=n; i++) {tmp=R[i].a;while(ss.count(tmp) && tmp >= 2) ss.erase(tmp),tmp--; ss.insert(tmp);if(tmp == 1) {tar = 1000000000;break;}}if(tar != 1000000000) {puts("NO");continue;} puts("YES");for(int i = 1; i<=n; i++) printf("%d",ans[i]);puts("");}return 0 ;
}

总结:

两个地方:首先cmp函数又忘写return了。第二刚开始写成了tmp>=1了,其实应该是tmp>=2

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/439761.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Apollo进阶课程㊵丨Azure仿真平台使用

原文链接&#xff1a;进阶课程㊵丨Azure仿真平台使用 Azure是一种灵活和支持互操作的平台&#xff0c;它可以被用来创建云中运行的应用或者通过基于云的特性来加强现有应用。它开放式的架构给开发者提供了Web应用、互联设备的应用、个人电脑、服务器、或者提供最优在线复杂解决…

java 泛型详解-绝对是对泛型方法讲解最详细的,没有之一

对java的泛型特性的了解仅限于表面的浅浅一层&#xff0c;直到在学习设计模式时发现有不了解的用法&#xff0c;才想起详细的记录一下。本文参考java 泛型详解、Java中的泛型方法、 java泛型详解 1. 概述 泛型在java中有很重要的地位&#xff0c;在面向对象编程及各种设计模式…

动手学无人驾驶(3):基于激光雷达3D多目标追踪

上一篇博客介绍了无人驾驶中的车辆检测算法&#xff08;YOLO模型&#xff09;&#xff0c;该检测是基于图像进行的2D目标检测。在无人驾驶环境感知传感器中还有另一种重要的传感器&#xff1a;激光雷达。今天就介绍一篇无人驾驶中基于激光雷达目标检测的3D多目标追踪论文&#…

换种方法学操作系统,轻松入门Linux内核

计算机已成为现代人日常工作、学习和生活中必不可少的工具。操作系统是计算机之魂&#xff0c;作为用户使用计算机的接口&#xff0c;它负责调度执行各个用户程序&#xff0c;使计算机完成特定的任务&#xff1b;作为计算机硬件资源的管理者&#xff0c;它负责协调计算机中各类…

Apollo进阶课程㊶丨Apollo实战——本机演示实战

原文链接&#xff1a;进阶课程㊶丨Apollo实战——本机演示实战 Apollo是一个开放的、完整的、安全的平台&#xff0c;将帮助汽车行业及自动驾驶领域的合作伙伴结合车辆和硬件系统&#xff0c;快速搭建一套属于自己的自动驾驶系统。 上周阿波君为大家详细介绍了「进阶课程㊵丨A…

java常见异常类图(分类了Error/RuntimeExecption、check Exception)

Error&#xff1a;表示由JVM所侦测到的无法预期的错误&#xff0c;由于这是属于JVM层次的严重错误&#xff0c;导致JVM无法继续执行&#xff0c;因此&#xff0c;这是不可捕捉到的&#xff0c;无法采取任何恢复的操作&#xff0c;顶多只能显示错误信息。Exception&#xff1a;表…

Apollo进阶课程㊷丨Apollo实战——车辆与循迹驾驶能力实战

原文链接&#xff1a;进阶课程㊷丨Apollo实战——车辆与循迹驾驶能力实战 循迹自动驾驶是指让车辆按照录制好的轨迹线进行自动驾驶&#xff0c;其涉及到自动驾驶中最基本的底盘线控能力、定位能力、控制能力&#xff0c;是自动驾驶系统的一个最小子集。 上周阿波君为大家详细介…

【HDU - 5961】传递(图,思维,暴力,枚举点)

题干&#xff1a; 我们称一个有向图G是传递的&#xff0c;当且仅当对任意三个不同的顶点a,,若G中有 一条边从a到b且有一条边从b到c ,则G中同样有一条边从a到c。 我们称图G是一个竞赛图&#xff0c;当且仅当它是一个有向图且它的基图是完全图。换句 话说&#xff0c;将完全图每…

Java--对象内存布局

在HotSpot虚拟机中&#xff0c;对象在内存中的存储布局可以分为3块区域&#xff1a;对象头部、实例数据、对齐填充。 一、对象头部Header的布局 Mark WordClass 指针在32位系统下&#xff0c;上面两部分各占4B; 在64位系统中&#xff0c;Mark Work占4B&#xff0c;class指针在…

Apollo进阶课程㊸丨Apollo实战——障碍物感知和路径规划能力实战

原文链接;进阶课程㊸丨Apollo实战——障碍物感知和路径规划能力实战 环境感知在自动驾驶汽车应用中占据了核心地位。一辆车要实现自动驾驶&#xff0c;障碍物感知是最基础也是最核心的功能。 上周阿波君为大家详细介绍了「进阶课程㊷丨Apollo实战——车辆与循迹驾驶能力实战」…

3.1)深度学习笔记:机器学习策略(1)

目录 1&#xff09;Why ML Strategy 2&#xff09;Orthogonalization 3&#xff09;Single number evaluation metric 4&#xff09;Satisficing and optimizing metrics 5&#xff09;训练/开发/测试集划分&#xff08;Train/dev/test distributions&#xff09; 6&…

接口和抽象类是否继承了Object

我们先看一下Java的帮助文档对于Object的描述&#xff1a; Class Object is the root of the class hierarchy. Every class has Object as a superclass. All objects, including arrays, implement the methods of this class. Object 类是类层次结构的根类。每个类都使用 …

3.2)深度学习笔记:机器学习策略(2)

目录 1&#xff09;Carrying out error analysis 2&#xff09;Cleaning up Incorrectly labeled data 3&#xff09;Build your first system quickly then iterate 4&#xff09;Training and testing on different distributios 5&#xff09;Bias and Variance with m…

4.1)深度卷积网络:卷积神经网络基础

目录 1&#xff09;Computer vision 2&#xff09;Edge detection example&#xff08;理解&#xff09; 3&#xff09;More edge detection 4&#xff09;Padding&#xff08;重点&#xff09; 5&#xff09;Strided convolutions&#xff08;重点&#xff09; 6&#x…

4.2)深度卷积网络:实例研究

目录 1&#xff09;Why look at case studies? 2&#xff09;Classic networks&#xff08;理解&#xff09; 3&#xff09;ResNets&#xff08;理解&#xff09; 4&#xff09;Why ResNets work?&#xff08;经典&#xff09; 5&#xff09;Networks in Networks and 1…

10种常见的软件架构模式

有没有想过要设计多大的企业规模系统&#xff1f;在主要的软件开发开始之前&#xff0c;我们必须选择一个合适的体系结构&#xff0c;它将为我们提供所需的功能和质量属性。因此&#xff0c;在将它们应用到我们的设计之前&#xff0c;我们应该了解不同的体系结构。 什么是架构模…

4.3)深度卷积网络:目标检测

目录 1&#xff09;Object localization&#xff08;重点&#xff09; 2&#xff09;Landmark detection 3&#xff09;Object detection 4&#xff09;Convolutional implementation of sliding windows 5&#xff09;Bounding box prediction&#xff08;重点&#xff0…

4.4)深度卷积网络:人脸识别和神经风格转换

目录 1&#xff09;What is face recognition? 2&#xff09;One-shot learning 3&#xff09;Siamese network 4&#xff09;Triplet Loss&#xff08;重点&#xff09; 5&#xff09;Face Verification and Binary Classification 6&#xff09;What is neural style …

一步步编写操作系统 35 内存为何要分页

一直以来我们都直接在内存分段机制下工作&#xff0c;目前未出问题看似良好&#xff0c;的确目前咱们的应用过于简单了&#xff0c;就一个loader在跑&#xff0c;能出什么问题呢。可是想像一下&#xff0c;当我们物理内存不足时会怎么办呢&#xff1f;比如系统里的应用程序过多…

《python深度学习》代码中文注释

《python深度学习》由Keras之父、现任Google人工智能研究员的弗朗索瓦•肖莱&#xff08;François Chollet&#xff09;执笔&#xff0c;详尽介绍了用Python和Keras进行深度学习的探索实践&#xff0c;包括计算机视觉、自然语言处理、生成式模型等应用。书中包含30多个代码示…