首页 > 其他分享 >Educational_round94题解

Educational_round94题解

时间:2024-07-09 23:33:29浏览次数:7  
标签:round94 Educational && int 题解 cin str ans

Educational_round94题解

A. String Similarity(构造+思维)

解题思路

原字符串长度为$2*n-1$,需要匹配的字符串一共有$n$个,要使所有字符串都得到匹配,即让构造的长度为$n$的字符串每一个位置都能匹配到一个。可得到$w_i=s_{2i}$

题解

#include<iostream>
using namespace std;

char str[200];
char ans[200];

int main(){
	int T;
	cin >> T;
	while(T--){
		int n;
		cin >> n;
		cin >> str;
		for(int i=0;i<n;i++){
			ans[i] = str[i*2];
		}
		ans[n] = '\0';
		cout << ans << "\n";
	}
}

B. RPG Protagonist

解题思路

题解

C. Binary String Reconstruction(模拟)

解题思路

就是一个反推字符串的过程。已知有一种情况是两个条件都为假时才会出现$0$,则先利用这种情况反推出有$0$的部分。但是这并不是唯一的一种情况,当$i-x$跟$i+x$都不在范围内的时候也为$0$,即在$\left (x,n-x\right ]$区间中的字符都为$0$。其余情况为$1$。一共扫两遍,第一遍确定$0$,第二遍判断是否合理

题解

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

char str[100010];
char ans[100010];

int main(){
	int t;
	int x;
	cin >> t;
	while(t--){
		cin >> str + 1;
		cin >> x;
		int n = strlen(str+1);
		for(int i=1;i<=n;i++){
			ans[i] = '1';
			if(i+x>n&&i<=x){
				ans[i] = '0';
			}
		}
		for(int i=1;i<=n;i++){
			if(str[i]=='0'){
				if(i+x<=n){
					ans[i+x] = '0';
				}
				if(i>x){
					ans[i-x] = '0';
				}
			}
		}
		ans[n+1] = '\0';
		bool flag = true;
		for(int i=1;i<=n;i++){
			if(!(str[i]=='1' && ((i+x<=n&&ans[i+x]=='1') || (i>=x&&ans[i-x]=='1'))
					|| (str[i]=='0' && ( (i+x>n && i<x) || !((i+x<=n&&ans[i+x]=='1') || (i>=x&&ans[i-x]=='1')) ) )
				)){
				flag = false;
			}
		}
		if(flag){
			cout << ans+1 <<"\n";
		}else{
			cout << "-1" << "\n";
		}

	}
}

标签:round94,Educational,&&,int,题解,cin,str,ans
From: https://www.cnblogs.com/codeworldforzhaoxu333/p/18292929

相关文章

  • 2024年06月CCF-GESP编程能力等级认证Python编程三级真题解析
    本文收录于专栏《Python等级认证CCF-GESP真题解析》,专栏总目录:点这里,订阅后可阅读专栏内所有文章。一、单选题(每题2分,共30分)第1题小杨父母带他到某培训机构给他报名参加CCF组织的GESP认证考试的第1级,那他可以选择的认证语言有几种?()A.1B.2C.3D.4答案:C第......
  • 题解 - 修剪草坪
    题目(in洛谷)或题目(inhszxoj)题目大意给定\(n\)个非负整数\(a_1\cdotsa_n\)。现在你可以选择其中若干个数,但不能有超过\(k\)个连续的数字被选择。求选出的数字的和最大。思路简析一个比较好的思路是反向思考:选择某些间隔小于等于\(k\)(相邻间隔为\(0\))的数字,求选......
  • Codeforces Round 956 (Div. 2) 部分题解A~C
    A.ArrayDivisibility题目大意构造长度为n的数组,满足:所有j的aj之和可以被k整除,其中j是k的倍数,k的取值为1~n。思路构造序列1->n即可满足条件。代码实现voidsolve(){  lln;cin>>n;  for(inti=1;i<=n;i++)cout<<i<<"";  cout<<"\n"......
  • joi2022_yo2_c 国土分割 (Land Division) 题解
    国土分割(LandDivision)推销我的洛谷博客。题意给定一个\(n\timesm\)的矩阵\(a\),你需要选择在横向或纵向分割至少一次,使得每个分割出来的小矩阵的\(a_{i,j}\)之和相等。数据范围\(1\leqslantn,m\leqslant50\)。\(1\leqslanta_{i,j}\leqslant10^5\)。思......
  • 题解 - 幻象迷宫
    题目in洛谷或题目inCF题目幻象迷宫可以认为是无限大的,不过它由若干个\(N\timesM\)的矩阵重复组成。矩阵中有的地方是道路,用\(\verb!.!\)表示;有的地方是墙,用\(\verb!#!\)表示。起始位置用\(\verb!S!\)表示。也就是对于迷宫中的一个点\((x,y)\),如果\((x\bmodn,y......
  • UVA12342 Tax Calculator 题解
    题目传送门题目大意题目描述某国所得税计算十分复杂。该国政府指定你制作一个自动计算所得税的程序。以下是该国计算所得税的规则:所得税免征额为180000180000......
  • P10719 的题解
    (一)设\(a_{x,y}\)为从\((1,1)(x,y)\)矩形中的\(1\)的数量。然后通过二位前缀和可以\(O(1)\)算。注意到\(1\len,m\le100\)。先确定矩形右下角,对于左上角,先确定在哪一行,再二分在哪一列。(二)AC代码。#include<bits/stdc++.h>#definepbpush_back#definefifirs......
  • 【Py/Java/C++三种语言OD独家2024D卷真题】20天拿下华为OD笔试之【前缀和/固定滑窗】2
    有LeetCode算法/华为OD考试扣扣交流群可加948025485可上欧弟OJ系统练习华子OD、大厂真题绿色聊天软件戳od1441了解算法冲刺训练(备注【CSDN】否则不通过)文章目录题目描述与示例题目描述输入描述输出描述示例一输入输出说明示例二输入输出说明解题思路贪心思想......
  • zxx题单的题解
    https://www.luogu.com.cn/training/168096CF1359ELemma:\(\forallx\in\mathbb{N},\x\bmoda\bmodb=x\bmodb\bmoda\iffa\midb\(a<b)\)Proof:因为\(a<b\),所以\(x\bmoda\bmodb=x\bmoda\)。设\(x=pb+q\),其中\(0<q<b......
  • PostgreSQL的AutoVacuum原理及autovacuum不工作问题解析
    1、AutoVacuum概述PostgreSQL数据库是有数据清理的,有人工执行清理,也有自动清理,但是这2种的清理方式对性能是有不同的影响,特别是OLTP环境中,每次不管是人工清理还是自动清理deadtuple,都会对数据库的IO有明显的影响,基于PostgreSQL的原理每个表中的行会存在多个版本的数据,为了完成......