首页 > 其他分享 >CF168B Wizards and Minimal Spell

CF168B Wizards and Minimal Spell

时间:2024-02-27 21:01:17浏览次数:31  
标签:string int res Spell back Wizards str Minimal size

传送门:luogucodeforces

题意

给定若干行长度为 \(n\) 的字符串,要求进行以下操作:

  • 若字符串不以 # 开头,则删去所有空格;
  • 若第 \(i\) 行和第 \(i + 1\) 行都不以 # 开头,则将这两行合并为同一行;
  • 若第 \(i\) 行为空行,除非第 \(i - 1\) 和 \(i + 1\) 行都以 # 开头,否则删去此行。

求经过所有操作后的字符串 \(S\)。

思路

不是这纯英语体面给谁看的啊!

感谢楼上的翻译和 DeepL 翻译。

纯纯的小模拟。不过模拟的思路楼上已经说过了,来一个别的。

首先介绍一个特殊的流类:stringstream。它允许将字符串作为输入和输出流进行处理。字符串流提供了一种方便的方式,可以将字符串与其他基本类型进行转换、拼接、解析等操作。

于是乎,就可以借助 stringstream 的功能,把用 vector 存储的值转换为 string。然后再对题目要求中的条件分别做判断,分别处理即可。

这里处理的整体思路其实和直接模拟没有太多区别,所以我其实是个标题党

具体细节见代码。

代码

#include <bits/stdc++.h>
using namespace std;
namespace xycyx {
	vector<string> v, res;
	bool isamp(string &str) {
		stringstream ss(str);
		string x;
		ss >> x;
		return (int)x.size() && x[0] == '#';
	}
	void solve() {
		string str;
		while (getline(cin, str))
			v.push_back(str);
		bool flag = 1;
		for (int i = 0; i < (int)v.size(); i++) {
			str = "";
			stringstream ss(v[i]);
			ss >> str;
			if ((int)str.size() && str[0] == '#') {
				res.push_back(v[i]);
				flag = 1;
				continue;
			}
			if ((int)str.size() == 0) {
				string st = (int)res.size() ? res.back() : "#";
				string en = i + 1 < (int)v.size() ? v[i + 1] : "#";
				if (isamp(st) && isamp(en)) res.push_back(str);
				else continue;
			} else {
				string tot = str;
				while (ss >> str) tot += str;
				if (!flag) res[(int)res.size() - 1] += tot;
				else res.push_back(tot);
				flag = 0;
			}
		}
		for (int i = 0; i < (int)res.size(); i++)
			cout << res[i] << "\n";
	}
}
int main() {
	xycyx::solve();
	return 0;
}

在函数 isamp 中,return 的句子等价于:

if ((int)x.size() != 0 && x[0] == '#') return true;
else return false;

标签:string,int,res,Spell,back,Wizards,str,Minimal,size
From: https://www.cnblogs.com/cloud-evecyx/p/18038322

相关文章

  • DataSpell 2023:专注于数据,加速您的数据科学之旅 mac/win版
    JetBrainsDataSpell2023是一款专为数据科学家和数据分析师设计的集成开发环境(IDE)。这款IDE提供了强大的数据分析和可视化工具,旨在帮助用户更快速、更高效地进行数据科学工作。→→↓↓载DataSpell2023mac/win版 DataSpell2023在保持其一贯的数据处理、数据清洗、数据探......
  • 题解 AT_exawizards2019_e【Black or White】
    设\(P_b(k),P_w(k)\)表示已经吃了\(k\)块巧克力,把所有黑/白巧克力都吃光了的概率。枚举最后一块黑/白巧克力被吃的时间,容易得到:\[\begin{aligned}P_b(k)&=\sum_{i=1}^k\frac{\binom{i-1}{b-1}}{2^i}\\P_w(k)&=\sum_{i=1}^k\frac{\binom{i-1}{w-1}}{2^i}\\\end{aligned}\]......
  • 使用dataspell 进行dbt 项目开发
    dataspell是jetbrains的数据开发工具,是一个很不错的数据开发ide,同时也支持对于dbt项目的开发我们可以使用类似idea的开发模式进行dbt项目开发参考效果项目结构数据管理注意需要自己配置数据源(可以使用遗留模式的jdbc,或者基于arrowflightjdbc)run/debug说明......
  • JetBrains DataSpell 2023.3 (macOS, Linux, Windows) - 专业数据科学家的 IDE
    JetBrainsDataSpell2023.3(macOS,Linux,Windows)-专业数据科学家的IDE请访问原文链接:https://sysin.org/blog/jb-dataspell-2023/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgJetBrainsDataSpell-专业数据科学家的IDE智能JupyterNotebook专为高交......
  • Objectarx Wizards 2010中添加成员变量功能移植到Objectarx Wizards 2018中
     ——工欲善其事必先利其器 虽然AutoCADObjectarx代码没写几行,但对于ObjectarxWizards的折腾却不能少。这几天学习Com封装,找到一篇文章(教程),学习过程中发现原来ObjectarxWizards中添加成员变量的功能不错,可惜在高版本中给阉割了,于是想着能不能把此功能从低版本移植到高版......
  • [ABC231E] Minimal payments 题解
    题目传送门一道贪心题。感觉很裸啊,模拟赛时随便乱写了个暴力递归就能过。每次找最接近钱数\(x\)的面额\(num\),如果比钱数少那么答案为剩下\(x\bmodnum\)钱数的答案加上\(x\divnum\)。否则答案则为剩下\(num-x\)钱数的答案加上\(1\)。Code#include<bits/stdc++.h......
  • 快速展示原型之Minimal API开发
    MinimalAPI官网地址:https://learn.microsoft.com/zh-cn/aspnet/core/fundamentals/minimal-apis/security?view=aspnetcore-7.0MinimalAPI背景介绍MinimalAPIs是指在ASP.NETCore中引入的一种轻量级的API开发模式。它的产生背景是为了简化API的创建和开发流程,减少样......
  • ASP.NET Core Minimal API之optional route parameter with default value and option
    publicstaticvoidMain(string[]args){varbuilder=WebApplication.CreateBuilder(args);varapp=builder.Build();app.MapGet("/product/{name}",(stringname)=>$"Theproductis{name}").WithName("product&......
  • [CF1654F] Minimal String Xoration
    MinimalStringXoration有点智慧但不是特别智慧反正是我达不到的智慧。打表可以看出长度为\(2^x\)的\(i\oplusk\)出现次数为\(2^{n-k}\)。进一步发现,设\(f(k,x)\)当前选取k时,数列前\(2^k\)的下标。则\(f(k,x)=f(k,x-1)+f(k\oplus{2^{x-1}},x-1)\)因为对于\(......
  • A Minimal Rust Kernel
    Feb10,2018Inthispost,wecreateaminimal64-bitRustkernelforthex86architecture.Webuilduponthe freestandingRustbinary fromthepreviousposttocreateabootablediskimagethatprintssomethingtothescreen.在这篇文章中,我们为x86架构创......