NOJ1057封杀病毒——测试数据有误

74 篇文章 0 订阅

封杀病毒

时间限制(普通/Java):20000MS/30000MS          运行内存限制:65536KByte
总提交:883            测试通过:108

描述

最近H1N1病毒很猖狂。有小道消息说这种病毒来自实验室。
生物学家发现,H1N1型病毒的基因十分奇怪,科学家已经对它的基因图谱做了分析,发现可以用一种编号制度给它的碱基编号。
编号工作完成后,科学家又惊奇地发现一对神奇的碱基,它没有在基因中出现。找到这对碱基,将有可能是控制疾病的突破口。
已知碱基由1到2^k(2的k次方)编号的。科学家用一种长度为2^k的记忆条存储碱基信息:如果碱基i出现了,就在记忆条的坐标i处做个标记。
工作还是比较顺利的,但老眼昏花的科学家找那个丢失的碱基号码的时候,老是晕头转向,屡找屡败。
现在这项工作交给你,希望你能力挽狂澜。

输入

有多组测试数据。
每组测试数据第一行一个整数k表示碱基的数目为2^k(1<=k<=20)。 
第二行到第2^k行每行一个整数表示找到的一碱基的编号(并不是按顺序给出的)。

输出

输出那对关键碱基的编号。

样例输入

2
4
1
3

样例输出

2

题目来源

此题数据有误,请各位同学等待数据更正后再提交。


分析:用高斯求和求出1~2^k的和,减去输入的数,结果即为输出。

#include<stdio.h>
#include<math.h>

//封杀病毒

int main()
{
	int k, tmp;
	__int64 sum, sum1 = 0;
	scanf("%d",&k);
	sum = (1+pow(2.0, k))*pow(2.0, k)/2;
	for(int i=0;i<pow(2.0, k)-1;i++)
	{
		scanf("%d",&tmp);
		sum1 += tmp;
	}
	printf("%I64d\n",sum-sum1);

	return 0;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值