899专题

leetcode 899. Orderly Queue

原题链接 You are given a string s and an integer k. You can choose one of the first k letters of s and append it at the end of the string. Return the lexicographically smallest string you could have aft

Codeforces Round 899 (Div. 2)(C手玩? D换根dp+贪心)

A - Increasing Sequence 直接从1开始模拟就行 #include<bits/stdc++.h>using namespace std;const int N =2e5+10,mod=998244353;#define int long longtypedef long long LL;typedef pair<int, int> PII;const long

【Leetcode】899. Orderly Queue 899. 有序队列

解法 数学解法 首先,假如能够证明序列里任意相邻字母都可以交换,那肯定可以直接排出最小值 当K>1时,我们想交换S[i]和S[i+1],那么操作出S[i:]+S[:i],然后,由于K至少为2,所以这时候可以先把S[i+1]放到后面去,变成S[i]+S[i+2:]+S[:i]+S[i+1],然后再放S[i],得到S[i+2:]+S[:i]+S[i+1]+S[i],最后再依次把S[i+2:]这