首页 > 排序危机
头像 flyfilgh
发表于 2024-11-10 21:36:34
菜逼第一次做到第五题,希望大佬勿喷。一个长度为n的数组,如果n>=k,最多可以构造a个长度为n-a+1的区间。因此如果要求构造k个极大不同区间,我们可以是其恰好为k个长度为n-k+1的区间,并且从第一个元素开始,循环长度为n-k+1的(1,n-k+1)的序列即可;如果n<k,显然无法构造 展开全文
头像 烟尘墨
发表于 2024-11-12 10:09:58
感觉难度不是很难的一场。 A. 排序危机(思维,模拟) 思路 问题本质就是从给出的字符串中挑出三种字符的子序列,然后按小写,数字,大写的顺序输出子序列,因此,可以从前往后遍历字符串,每遍历到一个字符就把它加入它所属的子序列的末尾,这样就保证了题目要求的“交换后同类字符的相对位置也是不变的”。 复杂度 展开全文
头像 Oworl
发表于 2025-12-13 08:11:36
n=input() s=input() Strls=[] strls=[] intls=[] for i in s: if type(i)==str and i.isupper(): Strls.append(i) elif type(i)==str and i.is 展开全文
头像 可爱抱抱呀😥
发表于 2024-11-11 01:29:45
DEF Java题解,代码已去除冗余~~~ D K 最多有n个极大不同区间,且每个区间的长度为n-k+1,依次为周期构造数组即可,时间复杂度O(n) import java.util.*; public class Main{ public static void main(String a 展开全文
头像 lotusor
发表于 2025-12-02 15:57:09
#很不推荐大家在正赛用try,有点不规范,但可以开阔下思路( a = int(input()) n = input() low = "" up = "" num = "" for i in n: try : p = 展开全文
头像 _苏格拉底_
发表于 2025-11-26 19:15:10
#include<iostream> using namespace std; int main(){ int n; cin >> n; string s; cin >> s; string lower,digit,uppe 展开全文
头像 While1729
发表于 2025-11-22 14:22:53
#include <stdio.h> int main() { int n,m=0; char s[100001],s2[100001]; while (scanf("%d%s", &n, s) != EOF) { // 注意 whi 展开全文
头像 金刚侠
发表于 2025-12-16 17:02:53
#include <iostream> using namespace std; #include <string> int main() { int a; cin>>a; string s1,s2,s3; string s; cin>& 展开全文
头像 biuawa
发表于 2025-12-06 12:10:28
#include <stdio.h> int main() { int n,cnt=0; scanf("%d",&n); char s[n],S[n]; scanf("%s",s); for ( i 展开全文
头像 ckling
发表于 2025-04-03 21:57:56
题解 A void solve() {     int n;     cin>>n;     string s,ss,sss,ssss;//用c的话就是开3个char数组分别存对应的字符按顺序输出即可   &n 展开全文