题目地址:http://ac.jobdu.com/problem.php?pid=1402

题目描述:

现在有n个数,其中有一些出现了一次,一些出现了两次,一些出现了很多次。现在要求你找出那些只出现一次的数,并按升序输出。

输入:

本题有多组case。

每个case有两行,第一行输入一个n,表示有n个数,1<= n <= 1000000。

第二行有n个数字。每个数字的大小范围[1, 1000000]。

输出:

每次输出有两行。

第一行输出一个整数,表示出现一次的数的个数。

第二行按升序输出出现次数为一次的数字,两个数字之间用空格隔开。

样例输入:
5
1 2 2 3 3
7
1 2 2 3 4 4 2
2
2 2
样例输出:
1
1
2
1 3
0

#include <stdio.h>
#include <string.h> #define MAX 1000001 char input[MAX]; int main(void) {
int n;
int i;
int data, cnt;
while (scanf("%d", &n) != EOF){
memset(input, 0, sizeof(input));
for (i = 0; i < n; ++i){
scanf("%d", &data);
if (input[data] == 0){
input[data] = 1;
}
else if (input[data] == 1){
input[data] = -1;
}
}
cnt = 0;
for (i = 1; i < MAX; ++i)
if (input[i] == 1)
++cnt;
printf("%d\n", cnt);
i = 0;
while (i < MAX && cnt != 0){
if (input[i] == 1){
if (cnt != 1)
printf("%d ", i);
else
printf("%d\n", i);
--cnt;
}
++i;
}
}
return 0;
}

位操作

#include <stdio.h>
#include <string.h> #define MAX 125010 unsigned char input[MAX];//标记数字是否出现过
unsigned char num[MAX];//标记数字是否只出现过一次 int main(void) {
int n;
int i;
int data, index, bit, cnt;
while (scanf("%d", &n) != EOF){
memset(input, 0, sizeof(input));
memset(num, 0, sizeof(num));
for (i = 0; i < n; ++i){
scanf("%d", &data);
index = data / 8;//第data位所在单元下标
bit = data % 8;//第data位在下标index单元的bit位
if ((input[index] & (1 << bit)) == 0){
input[index] |= (1 << bit);
}
else if ((num[index] & (1 << bit)) == 0){
num[index] |= (1 << bit);
}
}
cnt = 0;
for (i = 1; i <= 1000000; ++i){
index = i / 8;
bit = i % 8;
if ((input[index] & (1 << bit)) && !(num[index] & (1 << bit)))
++cnt;
}
printf("%d\n", cnt);
i = 1;
while (i <= 1000000 && cnt != 0){
index = i / 8;
bit = i % 8;
if ((input[index] & (1 << bit)) && !(num[index] & (1 << bit))){
if (cnt != 1)
printf("%d ", i);
else
printf("%d\n", i);
--cnt;
}
++i;
}
}
return 0;
}

九度OJ 1402 特殊的数 -- 位操作的更多相关文章

  1. 九度OJ 1209 最小邮票数 -- 动态规划

    题目地址:http://ac.jobdu.com/problem.php?pid=1209 题目描述: 有若干张邮票,要求从中选取最少的邮票张数凑成一个给定的总值.     如,有1分,3分,3分,3 ...

  2. 九度OJ 1214 寻找丑数【算法】

    题目地址:http://ac.jobdu.com/problem.php?pid=1214 题目描述: 把只包含因子2.3和5的数称作丑数(Ugly Number).例如6.8都是丑数,但14不是,因 ...

  3. 九度OJ 1183 守形数 (模拟)

    题目1183:守形数 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:2663 解决:1424 题目描写叙述: 守形数是这样一种整数.它的平方的低位部分等于它本身. 比方25的平方是625. ...

  4. 九度OJ 1214:丑数 (整除)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:2180 解决:942 题目描述: 把只包含因子2.3和5的数称作丑数(Ugly Number).例如6.8都是丑数,但14不是,因为它包含因 ...

  5. 九度OJ 1060:完数VS盈数 (数字特性)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:5590 解决:2093 题目描述: 一个数如果恰好等于它的各因子(该数本身除外)子和,如:6=3+2+1.则称其为"完数" ...

  6. 九度OJ 1050:完数 (数字特性)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:7535 解决:3125 题目描述: 求1-n内的完数,所谓的完数是这样的数,它的所有因子相加等于它自身,比如6有3个因子1,2,3,1+2+ ...

  7. 九度OJ 1129:Skew数 (大数运算)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:734 解决:548 题目描述: 在 skew binary表示中, 第 k 位的值xk表示xk*(2k+1-1).  每个位上的可能数字是0 ...

  8. 【九度OJ】题目1074:对称平方数 解题报告

    [九度OJ]题目1074:对称平方数 解题报告 标签(空格分隔): 九度OJ 原题地址:http://ac.jobdu.com/problem.php?pid=1074 题目描述: 打印所有不超过n( ...

  9. 【九度OJ】题目1183:守形数 解题报告

    [九度OJ]题目1183:守形数 解题报告 标签(空格分隔): 九度OJ 原题地址:http://ac.jobdu.com/problem.php?pid=1183 题目描述: 守形数是这样一种整数, ...

随机推荐

  1. LocalDB 的创建与迁移

    首先创建对应的对象 public class Movie { public int ID { get; set; } public string Title { get; set; } public ...

  2. javafx for android or ios ?

    javafx是否支持android 或者 ios这是一个令人感兴趣的话题.google一番,发现有可行方案: 1. javafx on android: 两种方案:(事实上差点儿相同) 1.有位大神已 ...

  3. 辛星浅谈PHP的混乱的编码风格

    我们都知道.各种编程语言都有自己的风格,即使是像C和C++那样一脉相承的语言(C++本意全然兼容C的语法).编程风格上还是有些区别.比方非常典型的就是C++风格的单行凝视和C风格的多行凝视. 而尽管J ...

  4. 【10】令operator=返回一个reference to *this

    1.令operator= 返回一个reference to *this,为什么? 这只是一个协议,并无强制性.但是,为了与基本类型的行为保持一致性,强烈建议这么做.设计class 有一个宝典:一旦有疑 ...

  5. Codeforces Round #325 (Div. 2) B. Laurenty and Shop 前缀和

    B. Laurenty and Shop Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/586/p ...

  6. Dubbo架构设计详解--转载

    原文地址:http://shiyanjun.cn/archives/325.html Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解 ...

  7. java编程思想第四版中net.mindview.util包

    把 net那个包 放入到你编写的项目同一个文件夹下(与src文件夹平级的那个),然后刷新一下工程即可

  8. 浅谈iOS中的视图优化

    引言: 让我们来思考几个问题,你开发过的产品,它还有可以优化的地方吗?能增加它的帧率吗?能减少多余的CPU计算吗?是不是存在多余的GPU渲染?业务这点工作量对于越来越强大的设备面前显得微不足道,但作为 ...

  9. C# 之 获取文件名及拓展名

    1.用Path类的方法(最常用) string fullPath = @"\WebSite\Default.aspx"; string filename = System.IO.P ...

  10. 快递查询API接口对接方法

    各类接口 快递查询API有即时查询和订阅查询两种,即时是请求即返回数据,订阅则是订阅快递单号到接口,有物流轨迹更新则全量返回数据.目前常用的有快递鸟.快递100.快递网等. 快递鸟即时API可以查询3 ...