hpuoj寻找单身狗
来源:互联网 发布:淘宝联盟提现手续费 编辑:程序博客网 时间:2024/04/30 13:21
1040: 寻找单身狗 [思维]
时间限制: 1 Sec 内存限制: 128 MB点击打开题目链接
题目描述
杜陵韦固,元和二年旅次宋城遇一老人倚布囊,坐于阶上,向月捡书。固问所寻何书,答曰:“天下之婚牍耳。”又问囊中何物,答曰:“赤绳子耳。以系夫妻之足,及其生,则潜用相系,虽讎敌之家,贵贱悬隔,天涯从宦, 吴楚异乡,此绳一系,终不可逭。”——唐代李复言《续玄怪录·定婚店》。
这个在月下倚布囊、坐于阶上、向月检书的老人,即是后来在民间被奉为婚姻之神的月下老人。只要其用囊中红绳把世间男女之足系在一起,即使经历“仇敌之怨,贵贱悬隔,天涯从宦,吴楚异乡”等折磨,也会化解一切最终成为夫妻。
但月老也有尴尬的时候!
这一日,他照常系红线,却发现这一批年轻人的数量是奇数!
他划分的标准是根据每个人的“X”值,若两个人的“X”值相同,那么月老就会把他们连在一起。不过因为总数是奇数,所以总会有一个人被空出来,我们称之为“单身狗”。
不过好在除了这个“单身狗”,其余所有人都恰好可以组成两两一对。
现在给出所有人的“X”值,请找出“单身狗”的X值。
需要注意的是,也许单身狗也有与其X值相同的人,但是这个人已经有其他人相连了。
输入
第一行是一个整数
个人。
下面一行有
),代表每个人的“X”值。
输出
输出单身狗的“X”值。
样例输入
52 3 4 2 3
样例输出
4
提示
此题存在基于位运算的时间复杂度
、空间复杂度
题解:我开始思路很简单,排一下序,因为是奇数,所以肯定有一个是单身狗,前后做一下比较,因为1 1 1 2 2输出不正确,所以我开始代码是错的,
下面是我错的代码:
#include<cstdio> #include<algorithm> #include<cstring> using namespace std; int a[1000000]; int main() { int n,i; scanf("%d",&n); for(i=0;i<n;i++) scanf("%d",&a[i]); sort(a,a+n); for(i=0;i<n;i++) { if(a[i]==a[i+1]||a[i-1]==a[i]) continue; printf("%d",a[i]); } return 0; }
改过后ac的代码:思路就是运用异或运算(只有在两个比较的位不同时其结果是1,否则结果为0即“两个输入相同时为0,不同则为1”)
#include<algorithm> #include<cstring> #include<cstdio> #define N 10000000001 using namespace std; int a[1000000]; int main() { int n,i,ans=0; scanf("%d",&n); for(i=0;i<n;i++) { scanf("%d",&a[i]); } for(i=0;i<n;i++) { ans^=a[i]; } printf("%d",ans); return 0; }
0 1
- hpuoj寻找单身狗
- 寻找单身狗
- 寻找单身狗
- 1040寻找单身狗
- 【面试题】寻找单身狗
- 【LeetCode】002 Single Number 寻找单身狗
- 寻找数组中的单身狗(一)狗一入侵
- leetcode 260. Single Number III-寻找单身狗|位运算
- leetcode 137. Single Number II-寻找单身狗
- 单身狗
- 单身狗
- 单身狗
- 单身狗
- 单身狗
- 单身狗
- 单身狗
- 单身狗
- 单身狗
- Base64算法 编码
- java 内存模型与线程
- 欢迎使用Markdown编辑器写博客
- 细说分布式数据库的过去、现在与未来
- JavaScript中的宽松相等和严格相等
- hpuoj寻找单身狗
- Unity实例.003官方示例Survival Shooter Tutorial核心代码学习
- Android 手机识别
- HDU 5976 Detachment (逆元)
- 【CodeForces】792D Paths in a Complete Binary Tree
- php 操作 redis 常用方法代码例子
- PHP实现文章定时发布设置
- linux初级学习之系统恢复2-11
- 关于move_uploaded_file()出错的问题