杭电oj find your present (2)
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">我之前写的是</span><span style="font-family: Arial, Helvetica, sans-serif; color: green; background-color: rgb(255, 255, 255);">Memory Limit Exceeded,但是感觉方法很对,运行结果也很正确。</span>
//此思路是:设总个数是n ,从第一个数开始,分别与其它数进行比较,如果不同的话,count++(count初值为0),如果相同的话,直接break(判断下一个数,与其它数的关系)。如果此数与其它数比完了,count==n-1,说明此数是独一无二的一个,输出来即可,根据题意,就不用再进行下一个数的判断了,加上break。
代码是:
#include<iostream>
#include<stdio.h>
using namespace std;
int a[1000000];
int main()
{
int i,j,n,count;
while(scanf("%d",&n),n)
{
for(i=0;i<n;i++)
cin>>a[i];
for(i=0;i<n;i++)
{
count=0;
for(j=0;j<n;j++)
{
if(i!=j &&a[i]!=a[j])
{
count++;
}
if(i!=j &&a[i]==a[j])
break;
}
if(count==n-1)
{
printf("%d\n",a[i]);
break;
}
}
}
return 0;
}
出现这种原因应该是数组定义的过长,循环次数太多造成的。百度了一下,这道题,是算异或的。。输入的每个数都按位异或起来,得到的结果就是不同的那个数。(昨天改这个程序的时候,我又定义了数组a,长度是1000000的,直接可一次性的输入,但是又是Memory Limit Exceeded, 让陈涛涛看一下,他说,可以一个一个输入,输入一个,异或的结果放到result里……最后正确了……)
异或怎么算,http://blog.csdn.net/tangyanzhi1111/article/details/21696943 这里面介绍很详细。。
此题正确的代码:
#include<iostream>
#include<stdio.h>
using namespace std;
int main()
{
int n,i,a;
while(scanf("%d",&n),n)
{
int result=0;
while(n--)
{
cin>>a;
result=result^a;
}
printf("%d\n",result);
}
return 0;
}
杭电oj find your present (2)的更多相关文章
- C#利用POST实现杭电oj的AC自动机器人,AC率高达50%~~
暑假集训虽然很快乐,偶尔也会比较枯燥,,这个时候就需要自娱自乐... 然后看hdu的排行榜发现,除了一些是虚拟测评机的账号以外,有几个都是AC自动机器人 然后发现有一位作者是用网页填表然后按钮模拟,, ...
- 杭电oj 2095 & 异或^符号在C/C++中的使用
异或^符号,在平时的学习时可能遇到的不多,不过有时使用得当可以发挥意想不到的结果. 值得注意的是,异或运算是建立在二进制基础上的,所有运算过程都是按位异或(即相同为0,不同为1,也称模二加),得到最终 ...
- 用python爬取杭电oj的数据
暑假集训主要是在杭电oj上面刷题,白天与算法作斗争,晚上望干点自己喜欢的事情! 首先,确定要爬取哪些数据: 如上图所示,题目ID,名称,accepted,submissions,都很有用. 查看源代码 ...
- 杭电oj 4004---The Frog Games java解法
import java.util.Arrays; import java.util.Scanner; //杭电oj 4004 //解题思路:利用二分法查找,即先选取跳跃距离的区间,从最大到最小, // ...
- 『ACM C++』HDU杭电OJ | 1415 - Jugs (灌水定理引申)
今天总算开学了,当了班长就是麻烦,明明自己没买书却要带着一波人去领书,那能怎么办呢,只能说我善人心肠哈哈哈,不过我脑子里突然浮起一个念头,大二还要不要继续当这个班委呢,既然已经体验过就可以适当放下了吧 ...
- 杭电oj————2057(java)
question:A+ B again 思路:额,没啥思路/捂脸,用java的long包里的方法,很简单,只是有几次WA,有几点要注意一下 注意:如果数字有加号要删除掉,这里用到了正则表达式“\\+” ...
- 爬取杭电oj所有题目
杭电oj并没有反爬 所以直接爬就好了 直接贴源码(参数可改,循环次数可改,存储路径可改) import requests from bs4 import BeautifulSoup import ti ...
- 杭电OJ——1198 Farm Irrigation (并查集)
畅通工程 Problem Description 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇.省政府"畅通工程"的目标是使全省任何两个城镇间都可 ...
- 杭电OJ——1007 Quoit Design(最近点对问题)
Quoit Design Problem Description Have you ever played quoit in a playground? Quoit is a game in whic ...
随机推荐
- 仅返回类型不同的函数,在C++中如何实现重载?
C++支持函数重载,所谓重载就是在同一命名空间内,函数名相同,参数不同(参数个数或参数类型不同)的函数可以共存.但是若参数和函数名相同的话,编译器会报错不能重载.但是现实中,有时候仅仅需要返回类型不同 ...
- oracle 11g RAC ocfs2
http://oracle-base.com/articles/linux/ocfs2-on-linux.php http://oracle-base.com/articles/11g/oracle- ...
- JavaScipt实现倒计时方法总结
JavaScript中提供了两种实现计时.延时的方法,分别如下: 一. t = setTimeout(“function()", millisecond) 与 clearTimeout(t) ...
- std::map中函数用法集合
1 STL的map表里有一个erase方法用来从一个map中删除掉指令的节点 2 eg: 3 map<string,string> mapTest; 4 typedef map< ...
- JavaScript基础(语法类型转换、运算符、语句)
1.类型转换: 分为自动转换和强制转换,一般用强制转换. 其他类型转换为整数:parseint(): 其他类型转换为小数:parsefloat(): 判断是否是一个合法的数字类型:isNaN(): 是 ...
- Codeigniter-实现权限认证
两种方法 钩子函数 集成核心Controller 方法一,钩子函数: 一直没找到CI的权限认证扩展,以前好像找到过一个老外的扩展,不过不怎么好用,现在记不清了,后来仿着jsp firter的方式用CI ...
- Java NIO 转载
原文:http://www.iteye.com/magazines/132-Java-NIO Java NIO 系列教程 2014-04-28 编辑 wangguo 评论(71条) 有204256 ...
- Java如何实现对Mysql数据库的行锁
场景如下: 用户账户有余额,当发生交易时,需要实时更新余额.这里如果发生并发问题,那么会造成用户余额和实际交易的不一致,这对公司和客户来说都是很危险的. 那么如何避免: 网上查了下,有 ...
- 200常用JS
.文本框焦点问题 onBlur:当失去输入焦点后产生该事件 onFocus:当输入获得焦点后,产生该文件 Onchange:当文字值改变时,产生该事件 Onselect:当文字加亮后,产生该文件 &l ...
- jbpmAPI-4
Chapter 4. Examples 4.1.介绍基于web的工作台在默认情况下将安装两个样本库,包含各种示例项目,帮助你开始.本节显示了不同的例子可以发现在jbpm-playground库(也可用 ...