2022/11/24 Debug

目录

# faebdc玩扑克 篇p2021

题解:反约瑟夫环

# 公路维修问题

题解:

新知识:sort()函数


# faebdc玩扑克 篇p2021

## 题目背景

faebdc 和 zky 在玩一个小游戏

## 题目描述

zky 有 $n$ 个扑克牌,编号从 $1$ 到 $n$,zky 把它排成一个序列,每次把最上方的扑克牌放在牌堆底,然后把下一张扑克牌拿出来输出,最终输出的序列恰好是从 $1$ 到 $n$,faebdc 问你原序列是什么,因为 faebdc 神犇早已在 $\mathcal O (1)$ 的时间得出结果,如果你在 1 s 内答不出来,faebdc 会吃了你。

## 输入格式

一个整数 n,表示扑克数目。

## 输出格式

$n$ 个数,表示扑克序列。

## 样例 #1

### 样例输入 #1

```
13
```

### 样例输出 #1

```
7 1 12 2 8 3 11 4 9 5 13 6 10
```

## 提示

1<n<10^6

题解:反约瑟夫环

#include <iostream>  
using namespace std;
int a[1000001], n, s;
int main() {
    cin >> n;
    for (int i = 1; i <= n; i++) {//有10个输出
        for (int j = 1; j <= 2; j++)//第二个才是输出
        {
            s++;
            if (s > n)//要形成一个环,如果s>n,就让s=1开始
                s = 1;
            if (a[s] != 0)//要找空隙输出,数值不要覆盖
                j--;
        }
        a[s] = i;
    }
    for (int i = 1; i <= n; i++)
        cout << a[i] << " ";
    return 0;
}

# 公路维修问题p2242

## 题目描述

由于长期没有得到维修,A国的高速公路上出现了 $n$ 个坑。为了尽快填补好这 $n$ 个坑,A国决定对 $m$ 处地段采取交通管制。为了求解方便,假设A国的高速公路只有一条,而且是笔直的。现在给出 $n$ 个坑的位置,请你计算,最少要对多远的路段实施交通管制?

## 输入格式

输入数据共两行,第一行为两个正整数 n, m。第二行给出了 n 个坑的坐标(坐标值均在长整范围内,按从小到大的顺序给出,且不会有两个点坐标相同)。

## 输出格式

仅一行,为最小长度和。

## 样例 #1

### 样例输入 #1

```
18 4
3 4 6 8 14 15 16 17 21 25 26 27 30 31 40 41 42 43
```

### 样例输出 #1

```
25
```

## 提示

[样例说明]

3−8,14−21,25−31,40−43。

题解:

#include"iostream"

#include"algorithm"

using namespace std;

int main(){

        int n, m,a[100000],b[100000],ans;

        cin >> n >> m;

        for(int i = 1; i <= n; i++){
                cin >> a[i];

         }

        for(int j = 1;j <= n; j++){

                b[j] = a[j+1] - a[j];

        }

        sort(b+1,b+n,greater<int>());

        ans = a[n] - a[1] + 1;

        for (int i = 1;i < m;i++){

                ans = ans - b[i] + 1;

        }

        cout << ans;

        return 0;

}

新知识:sort()函数

(8条消息) C++ sort()排序详解_晴空๓的博客-CSDN博客_c++ sort排序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值