• 封杀病毒 NOJ


    封杀病毒

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

    题目描述

    最近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之前缺省的数,但是提交的时候CE了好几次==

    把类型转换一下就OK了,下面贴上代码:

    #include<cstdio>
    #include<cstdlib>
    #include<cmath>
    int k;
    typedef long double ld;
    typedef long long ll;
    ll temp,res=0;
    int main()
    {
        while(~scanf("%d",&k))
        {
            res=0;
            for(ll i=2;i<=ll(pow(ld(2),ld(k)));i++)
            {
                scanf("%I64d",&temp);
                res+=temp;
            }
            printf("%I64d
    ",static_cast<ll>(pow(ld(2),ld(2*k-1))+pow(ld(2),ld(k-1))-res));
        }
    }

    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    Flask框架学习教程 汇总篇
    git版本管理工具
    Django-rest framework框架 汇总篇
    数据库学习之路 汇总篇
    Web后端开发学习教程 汇总篇
    Django框架学习教程 汇总篇
    Web前端开发学习教程 汇总篇
    Python开发之爬虫 汇总篇
    Python从入门到放弃 汇总篇
    flask之SQLAlchemy
  • 原文地址:https://www.cnblogs.com/Tobyuyu/p/4965481.html
Copyright © 2020-2023  润新知