Tju 4119. HDFS

4119.   HDFS


Time Limit: 5.0 Seconds   Memory Limit: 5000K
Total Runs: 225   Accepted Runs: 77


In HDFS( Hadoop Distributed File System), each data may have a lot of copies in case of data lose.
This problem, every data has its own id, from 1 to n. To make things simple, each data has only two copies.
This time, the HDFS is cracked by some stupid reason. Fortunately, tmeteorj knows that there are actually 2 data lost by his keen intuition.
Now, it is your time to show your value of life. You should tell tmeteorj the id of lost data.

INPUT

First line, there will a number T(1≤T≤10), means the test case of this problem.
After this, each line is first a number n(1≤n≤5000000), means data id is from 1 to n. Then there will be 2(n-1) numbers means the id of data in health state.

OUTPUT

For each case, print the lost id of data. The smaller id is in the front of the bigger one.

Sample Input


3
4 1 1 2 3 4 4
4 1 2 3 1 2 4
4 2 3 4 2 3 1

Sample Output


2 3
3 4
1 4

 

题目大意:求数据中没有出现两次的那两个数。

这题主要是卡内存...坑

对于这种题目,set map都会爆内存,所以考虑用biset记录一下出现没有。

/* ***********************************************
Author        :guanjun
Created Time  :2016/6/25 12:20:55
File Name     :tju4119.cpp
************************************************ */
#include <iostream>
#include <cstring>
#include <cstdlib>
#include <stdio.h>
#include <algorithm>
#include <vector>
#include <queue>
#include <set>
#include <map>
#include <string>
#include <math.h>
#include <stdlib.h>
#include <iomanip>
#include <list>
#include <deque>
#include <stack>
#include <bitset>
#define ull unsigned long long
#define ll long long
#define mod 90001
#define INF 0x3f3f3f3f
#define maxn 10010
#define cle(a) memset(a,0,sizeof(a))
const ull inf = 1LL << 61;
const double eps=1e-5;
using namespace std;

bitset<5010000>b;
vector<int>v;
bitset<5010000>c;
int main()
{
   // freopen("in.txt","r",stdin);
    int t,n,x;
    cin>>t;
    while(t--){
        cin>>n;
        b.reset();
        c.reset();
        int w=0;
        for(int i=1;i<=n*2-2;i++){
            scanf("%d",&x);
            w^=x;
            if(b[x]==1){
                b[x]=0;
                c[x]=1;
            }
            else{
                b[x]=1;
                c[x]=1;
            }
        }
        v.clear();
        if(w==0){
            for(int i=1;i<=n;i++){
                if(c[i]==0){
                    v.push_back(i);
                    v.push_back(i);
                    break;
                }
            }
        }
        else{
        for(int i=1;i<=n;i++){
            if(b[i]==1){
                v.push_back(i);
            }
        }
        }
        cout<<v[0]<<" "<<v[1]<<endl;
    }
    return 0;
}
时间: 2024-08-16 17:56:36

Tju 4119. HDFS的相关文章

三:QJM HDFS高可用

本文介绍的是HDFS的一种HA方案.虽然有checkpoint node \backup node等,但是不能实现自动的failover. http://hadoop.apache.org/docs/r2.6.3/hadoop-project-dist/hadoop-hdfs/HDFSHighAvailabilityWithQJM.html 1.在2.0.0版本以下,namenode是单个的,如果namenode宕机,就会导致整个集群不可用.QJM 是HA的一种实现方式,通过master/sla

七:HDFS Permissions Guide 权限

1.权限模式     简单:启动HDFS的操作系统用户即为超级用户,可以通过HADOOP_USER_NAME指定 kerberos: 2.group mapping 组列表由group mapping service完成,该服务由hadoop.security.group.mapping参数决定,默认值是org.apache.hadoop.security.JniBasedUnixGroupsMappingWithFallback,即由JNI. 如果没有JNI, 使用org.apache.had

HDFS

一.HDFS基础知识 1. namenode 负责: 管理着文件系统命名空间 – 维护着文件系统树及树中的所有文件和目录    存储元数据 – NameNode保存元信息的种类有: • 文件名目录名及它们之间的层级关系 • 文件目录的所有者及其权限 • 每个文件块的名及文件有哪些块组成 元数据保存在内存中 – NameNode元信息并不包含每个块的位置信息 元信息持久化 - 在NameNode中存放元信息的文件是fsimage.在系统运行期间所有对元信息的操作都保存在内存中并被持久化到另一个文件

数据采集之Web端上传文件到Hadoop HDFS

前言 最近在公司接到一个任务,是关于数据采集方面的. 需求主要有3个: 通过web端上传文件到HDFS; 通过日志采集的方式导入到HDFS; 将数据库DB的表数据导入到HDFS. 正好最近都有在这方面做知识储备.正所谓养兵千日,用兵一时啊.学习到的东西只有应用到真实的环境中才有意义不是么. 环境 这里只做模拟环境,而不是真实的线上环境,所以也很简单,如果要使用的话还需要优化优化. OS Debian 8.7 Hadoop 2.6.5 SpringBoot 1.5.1.RELEASE 说明一下,这

Apache Hadoop集群离线安装部署(一)——Hadoop(HDFS、YARN、MR)安装

虽然我已经装了个Cloudera的CDH集群(教程详见:http://www.cnblogs.com/pojishou/p/6267616.html),但实在太吃内存了,而且给定的组件版本是不可选的,如果只是为了研究研究技术,而且是单机,内存较小的情况下,还是建议安装Apache的原生的集群拿来玩,生产上自然是Cloudera的集群,除非有十分强大的运维. 我这次配了3台虚拟机节点.各给了4G,要是宿主机内存就8G的,可以搞3台2G,应该也是ok的. 〇.安装文件准备 Hadoop 2.7.3:

Hadoop核心组件:四步通晓HDFS

Hadoop分布式文件系统(HDFS)被设计成适合运行在通用硬件上的分布式文件系统,它提供高吞吐量来访问应用程序的数据,适合那些有着超大数据集的应用程序,那么在实际应用中我们如何来操作使用呢? 一.HDFS操作方式: 1.  命令行操作 –FsShell:$ hdfs dfs 2. 其他的计算框架-如spark 通过URI,比如: hdfs://nnhost:port/file-,调用HDFS的协议.主机.端口或者对外提供的服务媒.以及文件,在spark的程序中实现对HDFS的访问. 3.  其

sqoop同步mysql到hdfs

链接:http://pan.baidu.com/s/1gfHnaVL 密码:7j12 mysql-connector version 5.1.32 若在安装版本过程遇到些问题,可参考http://dbspace.blog.51cto.com/6873717/1875955,其中一些问题的解决办法 下载并安装: cd /usr/local/tar -zxvf sqoop2-1.99.3-cdh5.0.0.tar.gzmv sqoop2-1.99.3-cdh5.0.0 sqoop添加sqoop2到系

eclipse 向HDFS中写入文件报错 permission denied

环境:win7  eclipse    hadoop 1.1.2 当执行创建文件的的时候, 即: fileSystem.mkdirs(Path);//想hadoop上创建一个文件报错 报错: org.apache.hadoop.security.AccessControlException:Permission denied:user=Administrator,access=WRITE,inode="tmp":root:supergroup:rwxr-xr-x 原因: 1. 当前用户

[转载]HDFS初探之旅

转载自 http://www.cnblogs.com/xia520pi/archive/2012/05/28/2520813.html , 感谢虾皮工作室这一系列精彩的文章. Hadoop集群(第8期)_HDFS初探之旅 1.HDFS简介 HDFS(Hadoop Distributed File System)是Hadoop项目的核心子项目,是分布式计算中数据存储管理的基础,是基于流数据模式访问和处理超大文件的需求而开发的,可以运行于廉价的商用服务器上.它所具有的高容错.高可靠性.高可扩展性.高