题解 | 小红的不动点构造

小红的不动点构造

https://www.nowcoder.com/practice/c075b59aed8e4becaa8a0d6f9715d80e

#include <bits/stdc++.h>
using namespace std;
#define endl "\n"
using vi = vector<int>;
template<class T> void out(const T& a) { for (int i = 0, n = a.size();i < n;i++)cout << a[i] << " \n"[i + 1 == n]; }
void solve() {
    int n, k;cin >> n >> k;
    if (n == k + 1) {
        cout << -1 << endl;return;
    }
    vi a(n);
    for (int i = 0;i < n;i++) {
        a[i] = i + 1;
    }
    reverse(a.begin(), a.begin() + n - k);
    if ((n - k) % 2 == 1) {
        reverse(a.begin(), a.begin() + (n - k) / 2 + 1);
    }
    out(a);
}

/*

*/

signed main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);cout.tie(nullptr);
    int t = 1;
    //cin >> t;
    for (int i = 1; i <= t; i++) {
        //cout << "----Test " << i << "----" << endl;
        solve();
    }
    return 0;
}

反转前面n-k个数剩下k个数符合条件,但要特判n-k为奇数,因为中间的反转后还是符合条件,再反转前面(n-k)/2+1的数

全部评论

相关推荐

友友们,我实在是不太明白,校招的话现在大多也是提前实习,然后转正也是需要考核的,考核通过才能转正,那这跟实习转正有什么区别啊
苦闷的仰泳鲈鱼刷了1...:提前实习,是让你提前熟悉业务的,后续是入职后可以减少试用期的(大部分是包入职的);转正实习,要是hc不够或者其他原因,让你正式offer可能都没有,这个风险很大。 ---个人看法和了解到的。
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务