首页 > 其他分享 >寒假训练2024/1/27

寒假训练2024/1/27

时间:2024-01-28 14:11:06浏览次数:24  
标签:loc 27 num int 反转 2024 寒假 vv

2024/1/27

uva120

题意:

给一个序列,给定一个序列的反转方式,要求用最少的次数把序列反转成升序

思路:

看到定级是个橙题,我以为就是简单的看头尾反转,因为样例给的很简单,按照猜测乱写了一个,WA了。

看了一眼udebug,发现不是简单的头和尾是所需要的数字。

我们需要先从大的数字开始,这是因为反转的特性,可以不管后面的数,然后处理次大值。

那问题1,对于xxxxoxxx如何把o移动到最后?

我们要先把o移动到最前端,然后反转到正确的位置。

过程是这样xxxxoxxx -> oxxxxxxx -> xxxxxxxo

然后写了代码交上去,RE了。

我测试了udebug的第一个代码,发现最后几个样例确实没跑出来,一看才发现,序列不一定是1 到 n

#include <bits/stdc++.h>
using namespace std;

void solve(string st) {
	vector<int>v;
	int num;
	stringstream is(st);
	while(is >> num) {
		v.push_back(num);
	}
	auto vv = v;
	sort(vv.begin(), vv.end());

	int n = v.size();
	for (int i = 0; i < n; i++) {
		if(i)
			cout << " ";
		cout << v[i];
	}
	cout << endl;

	auto f =[&] (int x) {
		int pb1 = 0, pb2 = n - x;
		while(pb1 < pb2) {
			swap(v[pb1++], v[pb2--]);
		}
	};

	int cnt = 1;
	for (int i = n; i >= 1; i--) {
		int loc;
		for (int j = 0; j < n; j++) {
			if(v[j] == vv[i - 1]) {
				loc = j + 1;
				break;
			}
		}
		if(loc == i) {
			cnt++;
			continue;
		}
		else {
			if(n - loc + 1 != n && n - loc + 1 != 1) {
				f(n - loc + 1);
				cout << n - loc + 1 << " ";
			}
			f(cnt); 
			cout << cnt << " ";\
		}
		cnt++;
	}
	cout << 0 << endl;
}

int main() {
	ios::sync_with_stdio(0);
	cin.tie(0), cout.tie(0);

	string s;

	while(getline(cin, s)) {
		solve(s);
	}

	return 0;
}

标签:loc,27,num,int,反转,2024,寒假,vv
From: https://www.cnblogs.com/yyc4591/p/17992837

相关文章

  • 第一周寒假acm训练总结
    本周训练让我切身体会了算法的魅力和学习需求,还有很多的算法需要我去掌握。这是其中我印象较为深刻的一道题P1048[NOIP2005普及组]采药我的理解是,将草药一个一个放入背包中,如果放入时超过了限重,则最佳方案为不放入,即dp[i-1][j]=dp[i][j];反之则判断放入的方案和不放入的方案......
  • 2024/1/21-2024/1/28
    M.GitignoreYourgitproject(youdon'tneedtobefamiliarwithgittosolvethisproblem)hassomefilesthatshouldbeignoredfromsynchronizing.Youneedtocalculatetheminimumnumberoflinesneededforgitignore.Formally,yourprojectisa......
  • 算法模板 v1.4.1.20240128
    算法模板v1.1.1.20240115:之前的历史版本已经不可寻,创建了第一份算法模板。v1.2.1.20240116:删除“编译”-“手动开栈”与“编译”-“手动开O优化”;将“编译”-“CF模板”中的第20行代码cin>>T;注释;删除“读写”及其目录下的内容;删除“图论”-“欧拉图”-“混合图”;删除“图论”-......
  • 2024新版Windows 11要来了!16GB内存需求引热议 只是推荐配置
    最近,TrendForce集邦咨询的一份报告指出,微软已经将AIPC的内存基线设置为16GB。有媒体表示,这也意味着,新版Windows11的AI功能需要至少16GB内存才能运行。消息曝光后引发热议。对此,WC报道称,微软尚未就上述内存需求发表官方评论。16GB内存很可能只是微软的推荐配置,而非最低配置要求。W......
  • 2024年1月的论文推荐
    又到月底了,在月初推荐论文的基础上又整理了10篇推荐阅读的论文1、MosaicBERThttps://mosaicbert.github.io/一种用于快速预训练的双向编码器。MosaicBERT是针对快速预训练优化的自定义BERT架构。主要架构修改:FlashAttention,ALiBi,门控线性单元和低精度的LayerNorm。 http......
  • STM32CubeMX教程27 SDIO - 读写SD卡
    1、准备材料正点原子stm32f407探索者开发板V2.4STM32CubeMX软件(Version6.10.0)keilµVision5IDE(MDK-Arm)ST-LINK/V2驱动逻辑分析仪nanoDLA野火DAP仿真器XCOMV2.6串口助手2、实验目标使用STM32CubeMX软件配置STM32F407开发板SDIO读写4线SD卡,实现轮询方式读写SD卡、以中......
  • 2024 OI/VEX/啊啊啊? 赛季游记
    不定期更新,随便写。中马建交80周年CreateJR赛项什么远古比赛,2024/01的时间用2023赛季的规则(挺好)。Day-41/24在破败不堪的上海市安生学校集训。点的是外卖捏,鸡翅饭和美味的思密达辣白菜,辣白菜真的很好吃。我狂吃。比赛平均分87,最高分131,哇哇哇哇!六队真是个**,比赛......
  • 唐氏宝宝打PKUWC2024游记
    本人太菜了第一次打\(\text{PKUWC}\),学弟都打第二次了。\(\text{Day0}\)从长沙感到重庆,高铁上午\(8:00\)做到下午\(14:00\)被坐死,但是想想之后的比赛还要被罚坐更久就没说啥了,为啥不买飞机票?高铁的午饭时真**(赛博坦语言)贵,还难吃极了。看见hhx买了一杯奶茶跟我说全都是......
  • 寒假生活(16)
    今天继续面向对象编程的进程,因为这是学会利用python的基础,所以多学一些。构造函数和析构函数构造函数(Constructor)是在创建一个类的实例时自动调用的方法。在Python中,构造函数的名称固定为__init__,它用于初始化对象的属性。例如,下面的代码定义了一个具有两个属性的类,并在构造......
  • THUWC2024 游记
    省流:D1T3,Pretest97,D2和4.so决斗两小时(胜利)。day0从成都早上坐火车,中午到了重庆。坐轻轨到了酒店附近,虽然我不住酒店。lxs带着吃了一碗面。重庆的面挺好吃的。在酒店大厅坐着的时候有个东北老哥过来搭讪。但是我是社恐......