蓝桥杯 十一届C++A组 字符排序 21分(运行超时)

思路:

1. 此题考查的冒泡排序中的交换次数,其实就是考察当前数与后面的逆序对个数问题。而为了最大利用位数,应当使每一位都不小于后面的字符,否则会造成一次逆序对的浪费(贪心,为了使总位数最少)。

2. 通过上面的思路,可以得知每一个不同长度的最大逆序对数量,一定是由严格递减的字符串组成。而如果要获得逆序对数量介于相邻长度之间的数只需要对逆序对数量较大的进行部分修改即可。

3. 修改采用dfs进行判断。

#include <bits/stdc++.h>
using namespace std;
int i=2;int a;
int ans[1000];
bool check()
{int sum=0;int pre = 0,cnt = 1;for(int j=2;j<=i;j++){if(ans[j] == pre){cnt++;sum+=j-cnt;}else{pre = ans[j];cnt = 1;sum+=j-1;}}
//	for(int j = i;j>=1;j--)
//		{
//			cout<<(char)(ans[j]+'a');
//		}cout<<"           "<<sum<<endl;if(sum == a){for(int j = i;j>=1;j--){cout<<(char)(ans[j]+'a');}return true;}else{return false;}
}bool dfs(int pos,int most)
{if(pos == 1){return check();}for(int j = 0;j<=most;j++){ans[pos] = j;if(dfs(pos-1,max(0,j))) return true;}return false;
}
int main()
{cin>>a;int num[1000] = {0};//可以先输出试探范围 for(;i<999;i++){num[i] = num[i-1]+i-1;if(a<=num[i]) break;}dfs(i,i-1);return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/595781.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

贪心算法|55.跳跃游戏

力扣题目链接 class Solution { public:bool canJump(vector<int>& nums) {int cover 0;if (nums.size() 1) return true; // 只有一个元素&#xff0c;就是能达到for (int i 0; i < cover; i) { // 注意这里是小于等于covercover max(i nums[i], cover);if…

了解IP地址的基本概念和修改步骤

在数字化时代&#xff0c;IP地址作为网络设备的唯一标识&#xff0c;其重要性不言而喻。无论是为了提升网络性能&#xff0c;还是出于隐私保护的需求&#xff0c;修改IP地址都是网络使用者可能遇到的操作。虎观代理将详细介绍如何修改IP地址&#xff0c;并探讨在修改过程中需要…

Codeforces Round 832 (Div. 2) D. Yet Another Problem

题目 思路&#xff1a; #include <bits/stdc.h> using namespace std; #define int long long #define pb push_back #define fi first #define se second #define lson p << 1 #define rson p << 1 | 1 const int maxn 1e6 5, inf 1e18, maxm 4e4 5; c…

python_3

文章目录 题目运行结果模式A模式B模式C模式D 题目 mode input("请选择模式:") n int(input("请输入数字:"))if mode "A" or mode "a":# 模式A n:输入的层数 i:当前的层数# 每行数字循环次数 ifor i in range(1, n 1):for j in r…

C++语言学习(二)——⭐缺省参数、函数重载、引用

1.⭐缺省参数 &#xff08;1&#xff09;缺省参数概念 缺省参数是声明或定义函数时为函数的参数指定一个缺省值。在调用该函数时&#xff0c;如果没有指定实参则采用该形参的缺省值&#xff0c;否则使用指定的实参。 void Func(int a 0) {cout<<a<<endl; } int…

使用Docker部署SpringBoot项目(避坑+超级详细版本,Linux运维基础72问

使用Docker部署SpringBoot项目&#xff08;避坑超级详细版本&#xff09; 所有文章不设限&#xff0c;我们相遇偶然&#xff0c;相散坦然&#xff0c;互不打扰&#xff0c;各自安好&#xff0c;向阳而生 首先呢&#xff0c;非常感谢我们一起相遇在这个地方&#xff0c;想必此…

浅析入侵检测系统及最新研究

1. 入侵检测系统 IDS&#xff1a;入侵检测系统&#xff08;Intrusion Detection System&#xff09;是一种被动监控方式&#xff0c;用于检测一个团体或者个人的网络安全威胁。如果检测到潜在的网络入侵&#xff0c;入侵检测系统会生成警报&#xff0c;通知安全人员或者采取相…

大型语言模型(LLMs)面试常见问题解析

概述 这篇文章[1]是关于大型语言模型&#xff08;LLMs&#xff09;的面试问题和答案&#xff0c;旨在帮助读者准备相关职位的面试。 token&#xff1f; 在大型语言模型中&#xff0c;token 指的是什么&#xff1f; 分词&#xff08;Tokenization&#xff09;&#xff1a;可以将…

好物视频素材哪里找?8个视频素材库免费网址大全

在这个数字化的时代&#xff0c;高清视频已经成为了一种强大的沟通工具&#xff0c;无论是个人分享、教育培训还是商业广告&#xff0c;高质量的视频内容都能够有效地吸引观众的注意力。为了帮助你轻松找到理想的无水印视频素材&#xff0c;下面我为你精心挑选了一系列全球视频…

八股面试速成—计算机网络部分

暑期实习面试在即&#xff0c;这几天八股和算法轮扁我>_ 八股部分打算先找学习视屏跟着画下思维导图&#xff0c;然后看详细的面试知识点&#xff0c;最后刷题 其中导图包含的是常考的题&#xff0c;按照思维导图形式整理&#xff0c;会在复盘后更新 细节研究侧重补全&a…

注解式 WebSocket - 构建 群聊、单聊 系统

目录 前言 注解式 WebSocket 构建聊天系统 群聊系统&#xff08;基本框架&#xff09; 群聊系统&#xff08;添加昵称&#xff09; 单聊系统 前言 很久之前&#xff0c;咱们聊过 WebSocket 编程式的写法&#xff0c;但是有些过于繁琐&#xff0c;这次来看看更接近现代的注…

FaaF:利用事实作为评估RAG的函数方法

原文地址&#xff1a;faaf-facts-as-a-function-for-evaluating-rag 2024 年 4 月 5 日 在某些情况下&#xff0c;我们使用其他语言模型来验证RAG的输出结果&#xff0c;但这种方法并未能有效识别出数据生成过程中的错误和缺失。 论文解析 挑战 评估的可靠性和效率&#xff…