NOIP2010普及组初赛试题错题整理

NOIP2010普及组初赛试题错题整理


11.一个字长为8位的整数的补码是11111001,则它的原码是
( D )。
A.00000111
B.01111001
C.11111001
D.10000111
分析:二进制中负数才有补码,将补码-1再按位取反,注意第一位保留1.

队列快照是指在某一时刻队列中的元素组成的有序序列。例如,当元素1、2、3入队,元素1出队后,此刻的队列快照是"2 3"。当元素2、3也出队后,队列快照是"",即为空。现有3个正整数元素依次入队、出队。已知它们的和为8,则共有____49_____种可能的不同的队列快照(不同队列的相同快照只计一次)。例如,“5 1”、“4 2 2”、""都是可能的队列快照;而"7"不是可能的队列快照,因为剩下的2个正整数的和不可能是1。
分析:三个数之和不超过8,所以单个数据最大为6,所有组合包括一位数,二位数,三位数即1、2、3、4、5、6、11、12、13、14、15、16、111、112、113、114、115、116…611
共48个,但是还有一个特例就是全部出队
共49个

双向链表中有两个指针域 llink 和 rlink,分别指向该结点的前驱及后继。设 p 指向链表中的一个结点,它的左右结点均非空。现要求删除结点 p,则下面语句序列中错误的是( )。
A. p->rlink->llink=p->llink; p->rlink->llink->rlink=p->rlink; delete p;
B. p->llink->rlink=p->rlink; p->llink->rlink->llink=p->llink; delete p;
C. p->llink->rlink=p->rlink; p->rlink->llink=p->llink; delete p;
D. p->rlink->llink=p->rlink; p->llink->rlink=p->llink; delete p;
答案A是正确的。前半部分p->rlink->llink=p->llink;更新了p后继结点的llink ,使其指向p->llink。后半部分p->rlink->llink指向的就是p的前驱,删除p,其应指向p->rlink。
答案B正确。原理与答案A类似。
答案C正确
答案D错误。p->rlink->llink=p->llink;,p->llink->rlink=p->rlink;

#include<iostream>
using namespace std;
const int NUM=5;
int r(int n)
{
   
    int i;
    if(n<=NUM)
        return n;
    for(i=1;i<=NUM;i++)
        if(r(n-i)<0)
            return i;
    return -1;
}
int main()
{
   
    int n;
    cin>>n;
    cout<<r(n)<<endl;
    return 0;
}

枚举递归结果
在这里插入图片描述

完善程序
(过河问题) 在一个月黑风高的夜晚,有一群人在河的右岸,想通过唯一的一根独木桥走到河的左岸。在伸手不见五指的黑夜里,过桥时必须借照灯光来照明,不幸的是,他们只有一盏灯。另外,独木桥上最多能承受两个人同时经过,否则将会坍塌。每个人单独过独木桥都需要一定的时间,不同的人要的时间可能不同。两个人一起过独木桥时,由于只有一盏灯,所以需要的时间是较慢的那个人单独过桥所花费的时间。现在输入 N(2≤N<1000)N(2≤N<1000)和这 NN 个人单独过桥需要的时间,计算总共最少需要多少时间,他们才能全部到达河左岸。
例如,有 3 个人甲、乙、丙,他们单独过桥的时间分别为11、22、44,则总共最少需要的时间为 77。具体方法是

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值