2012NOIP普及组初赛错题整理

在这里插入图片描述
题目答案
C
交换次数等于逆序对数 =10
在这里插入图片描述
题目答案
C
在这里插入图片描述
在这里插入图片描述

题目答案
C
HTTP(HyperText Transfer Protocol)超文本传输协议、FTP(File Transfer Protocol)文件传输协议、POP3(Post Office Protocol - Version 3)邮局协议版本3、Telnet 协议是 TCP/IP 协议族中的一员,是 Internet 远程登陆服务的标准协议和主要方式。
在这里插入图片描述
题目答案
2880
在这里插入图片描述
(坐标统计)输入 nn 个整点在平面上的坐标。对于每个点,可以控制所有位于它左下方的点(即 xx、yy 坐标都比它小),它可以控制的点的数目称为“战斗力”。依次输出每个点的战斗力,最后输出战斗力最高的点的编号(如果若干个点的战斗力并列最高,输出其中最大的编号)

#include<iostream>
using namespace std;
const int SIZE = 100;
int x[SIZE], y[SIZE], f[SIZE];
int n, i, j, max_f, ans;
int main(){
    cin>>n;
    for (i = 1; i <= n; i++)
        cin >> x[i] >> y[i];
    max_f = 0;
    for (i = 1; i <= n; i++){
        f[i] =;
        for (j = 1; j <= n; j++){
            if (x[j] < x[i] &&);
        }
        if (){
            max_f = f[i];;
        }
    }
    for (i = 1; i <= n; i++)
        cout<<f[i]<<endl;
    cout<<ans<<endl;
}

填空位置 ①:
0
填空位置 ②:
y[j] < y[i]
填空位置 ③:
f[i]++
填空位置 ④:
f[i] >= max_f
填空位置 ⑤:
ans = i

j[i]是第i个点的战斗力大小,ans是战斗力最高的点的编号,max f是战斗力最高的点的战斗力。
在这里插入图片描述

#include<iostream>
#include<cstring>
using namespace std;
const int SIZE = 25;
bool used[SIZE];
int data[SIZE];
int n, m, i, j, k;
bool flag;
int main(){
    cin>>n>>m;
    memset(used, false, sizeof(used));
    for (i = 1; i <= m; i++){
        data[i] = i;
        used[i] = true;
    }
    flag = true;
    while (flag){
        for (i = 1; i <= m-1; i++)cout<<data[i]<<"";
        cout << data[m] << endl;
        flag =;
        for (i = m; i >= 1; i--){;
            for (j = data[i]+1; j <= n; j++)
                if (!used[j]){
                    used[j] = true;
                    data[i] =;
                    flag = true;
                    break;
                }
            if (flag){
                for (k = i+1; k <= m; k++)
                    for (j = 1; j <=; j++)
                        if (!used[j]){
                            data[k] = j;
                            used[j] = true;
                            break;
                        };
            }
        }
    }
}

题目答案
填空位置 ①:
false
填空位置 ②:
used[data[i]] = false
填空位置 ③:
j
填空位置 ④:
n
填空位置 ⑤:
break

used[i] == 0表示数字i还没有被使用过,每次倒着找到第一个能变大的数字然后变大,接着把后面的数字直接从小到大安排,就生成了一个新的组合

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值