Codeforces Round 806 (Div. 4) D 字符串

news2024/9/20 1:13:28

题目链接:Codeforces Round 806 (Div. 4) D

给你长度最多为 8的 n个字符串 s1,s2,…,sn。

对于每个字符串 si,判断是否存在两个字符串 sj和 sk,使得 si=sj+sk。也就是说,si��是sj��和sk的串联。注意,j可以等于 k。

回顾一下,字符串s和t的连接为s+t=s1s2…spt1t2…tq,其中p和q分别是字符串s和t的长度。例如,"code "和 "force "的连接为 "codeforces"。

输入

第一行包含一个整数 t(1≤t≤104)--测试用例数。

每个测试用例的第一行包含一个整数 n (1≤n≤105)--字符串的个数。

然后是n行,其中第i行包含长度至多为88的非空字符串si,由小写英文字母组成。在给定的 n个字符串中,可能有相同(重复)的字符串。

所有测试案例中的n之和不超过105105。

输出

对于每个测试用例,输出长度为 n的二进制字符串。如果存在两个字符串 sj和 sk,其中 si=sj+sk的 i 位应该是 1,否则是 00。注意,j可以等于k。

 

在第一个测试案例中,我们有以下内容:

  • s1=s2+s2,因为 abab=ab+ab。请记住,j可以等于k。
  • s2不是列表中任何两个字符串的连接。
  • s3=s2+s5,因为 abc=ab+c.
  • s4不是列表中任意两个字符串的连接。
  • s5不是列表中任何两个字符串的连接。

由于只有s1和s3满足条件,答案中只有第一位和第三位应该是1,所以答案是10100。

// Problem: D. Double Strings
// Contest: Codeforces - Codeforces Round 806 (Div. 4)
// URL: https://codeforces.com/contest/1703/problem/D
// Memory Limit: 256 MB
// Time Limit: 2000 ms
// 
// Powered by CP Editor (https://cpeditor.org)

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

typedef long long ll;

const int N = 2e5+5;

int main(){
	ios::sync_with_stdio(false);
	cin.tie(0),cout.tie(0);
	int T;
	cin>>T;
	while(T--){
		int n;
		cin>>n;
		vector<string> a(n+1);
		map<string,bool> mp;
		for(int i=1;i<=n;i++){
			cin>>a[i]; 
			mp[a[i]]=true;
		}
		string ans="";
		for(int i=1;i<=n;i++){
			string t=a[i];
			bool flag=false;
			
			for(int j=0;j<t.size();j++){
				string b="",c="";
				for(int k=0;k<j;k++){
					b+=t[k];
				}
				for(int k=j;k<t.size();k++){
					c+=t[k];
				}
				if(mp[b]&&mp[c]){
					flag=true;
					ans+='1';
					break;
				}
			}
			
			if(flag==false){
				ans+='0';
			}
		}
		cout<<ans<<"\n";
		
		
	}
	
	return 0;	

}

 

注意:vector<string> a(n+1)改为string a[N],会导致超时,不知道为什么

第二种方法:

#include <bits/stdc++.h>

using namespace std;

int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  int tt;
  cin >> tt;
  while (tt--) {
    int n;
    cin >> n;
    vector<string> a(n);
    map<string, int> mp;
    for (int i = 0; i < n; i++) {
      cin >> a[i];
      mp[a[i]]++;
    }
    string ans;
    for (int i = 0; i < n; i++) {
      bool ok = false;
      for (int j = 0; j < int(a[i].size()); j++) {
        if (mp.count(a[i].substr(0, j)) && mp.count(a[i].substr(j))) {
          ok = true;
        }
      }
      if (ok) {
        ans += '1';
      } else {
        ans += '0';
      }
    }
    cout << ans << '\n';
  }
  return 0;
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

「网页开发|前端开发|Vue」05 Vue实战:从零到一实现一个网站导航栏

本文主要介绍如何从最开始的草图&#xff0c;通过确定基本结构、修改元素布局、美化外观来实现一个网站导航栏&#xff0c;从而熟悉网页开发的基本流程。同时&#xff0c;我们会把性能、规范性、可维护性方面的代码优化也考虑其中。 文章目录 本系列前文传送门一、场景说明&am…

【LeetCode】双指针求解和为s的两个数字

Problem: 剑指 Offer 57. 和为s的两个数字 文章目录 题目解析算法思路分析复杂度Code 题目解析 首先来讲解一下本题的思路 我们看到本题的意思很简单&#xff0c;就是去这个nums这个数组中进行寻找&#xff0c;如果找到了两个数相加之和为target的话&#xff0c;那构成一个结果…

C++11新特性① | C++11 常用关键字实战详解

目录 1、引言 2、C11 新增关键字详解 2.1、auto 2.2、override 2.3、final 2.4、nullptr 2.5、使用delete阻止拷贝类对象 2.6、decltype 2.7、noexcept 2.8、constexpr 2.9、static_assert VC常用功能开发汇总&#xff08;专栏文章列表&#xff0c;欢迎订阅&#xf…

网络协议从入门到底层原理学习(二)—— Mac地址/IP地址

文章目录 网络协议从入门到底层原理学习&#xff08;二&#xff09;—— Mac地址/IP地址1、MAC地址2、MAC地址的表示格式3、MAC地址表4、MAC地址操作5、MAC地址的获取6、ARP7、ICMP8、IP地址9、IP地址的分类和格式10、不同分类的IP地址的范围11、特殊 IP 地址12、子网掩码13、子…

etcd分布式存储

etcd分布式存储 etcd简介etcd下载安装etcd常用命令etcd配置参数etcd集群golang操作etcd

C语言基础知识——枚举

1. 枚举 枚举&#xff08;Enumeration&#xff09;是一种用户自定义的数据类型&#xff0c;用于定义一组具有离散值的符号常量。枚举使得代码更加可读和易于理解&#xff0c;提高了代码的可读性和可维护性。 //枚举的语法 enum 枚举名称 {值1,值2,值3,... };1.1 枚举成员的类型…

C++中虚继承时的构造函数

在虚继承中,虚基类是由最终的派生类初始化的,换句话说,最终派生类的构造函数必须要调用虚基类的构造函数。对最终的派生类来说,虚基类是间接基类,而不是直接基类。这跟普通继承不同,在普通继承中,派生类构造函数中只能调用直接基类的构造函数,不能调用间接基类的。 下面…

react使用hook封装一个search+input+checkbox组件

目录 react使用hook封装一个searchinputcheckbox组件searchPro.jsx使用组件效果 react使用hook封装一个searchinputcheckbox组件 searchPro.jsx import { Checkbox, Input } from "antd"; import React, { useEffect, useState } from "react"; import S…

激活函数总结(二十七):激活函数补充(Multiquadratic、InvMultiquadratic)

激活函数总结&#xff08;二十七&#xff09;&#xff1a;激活函数补充 1 引言2 激活函数2.1 Multiquadratic激活函数2.2 InvMultiquadratic激活函数 3. 总结 1 引言 在前面的文章中已经介绍了介绍了一系列激活函数 (Sigmoid、Tanh、ReLU、Leaky ReLU、PReLU、Swish、ELU、SEL…

kubernetesl yaml deploy rancher server

文章目录 1. 简介2. 预备条件3. 创建存储目录4. 部署 rancher server5. 访问6. 加入集群 1. 简介 Rancher 是一个开源的企业级全栈化容器部署及管理平台。已有超过 1900 万次下载&#xff0c;4000 生产环境的应用。 简单的说&#xff0c;就是一个可以让你通过 web 界面管理 d…

78 # koa 中间件的实现

上上节实现了上下文的&#xff0c;上一节使用了一下中间件&#xff0c;这一节来实现 koa 的中间件这个洋葱模型。 思路&#xff1a; 储存用户所有的 callback将用户传递的 callback 全部组合起来&#xff08;redux 里的 compose&#xff09;组合成一个线性结构依次执行&#…

input输出的都是字符串,类似拼接的那种

input输出的都是字符串&#xff0c;类似拼接的那种 input()方法返回的所有的结果都是str字符串类型。

一个简单的文件系统(MinixFS)实现解析

1. Minix文件系统概要 Minix file system 是 Andrew S. Tanenbaum 在 1980 年代发明的文件系统, 并随着 Minix 操作系统一起于 1987 年发布。 Linus 编写 Linux 内核第一个版本的时候, 使用的也是 Minix FS, Linux 至今依然提供了对 Minix FS 的支持。Minix FS 结构简单, 易于…

【MyBatis篇】MyBatis框架基础知识笔记

目录 ORM思想&#xff08;对象关系映射思想&#xff09; ORM思想图解 初识MyBatis 什么是MyBatis呢&#xff1f; JDBC弊端 自己总结&#xff1a; chatGPT总结&#xff1a; MyBatis介绍以及本质分析 JDBC编程的劣势&#xff0c;MyBatis提供了以下解决方案&#xff0c;具…

星辰天合 CEO 胥昕受邀参加人民网 2023 “小巨人”发展论坛

为进一步推动专精特新“小巨人”企业高质量发展&#xff0c;近日&#xff0c;由人民网主办&#xff0c;人民网财经研究院、828 企业服务平台共同承办的 2023“小巨人”发展论坛在人民日报社新媒体大厦举行&#xff0c;星辰天合 CEO 胥昕受邀参加。 2023 “小巨人”发展论坛现场…

基于Pytorch构建Faster-RCNN网络进行目标检测的一段插曲-安装GPU环境

因工作原因&#xff0c;原来的台式机工作站发生了变更&#xff0c;除了GPU显卡&#xff08;NVIDIA GeForce GTX 1660显卡变成了NVIDIA Quadro P2200显卡&#xff09;以外&#xff0c;其他配置都差不多&#xff0c;从网上查阅NVIDIA Quadro P2200相当于NVIDIA GeForce GTX 1660显…

commet与websocket

commet与websocket Comet 前言 Comet是一种用于web的技术&#xff0c;能使服务器能实时地将更新的信息传送到客户端&#xff0c;而无须客户端发出请求&#xff0c;目前有两种实现方式&#xff0c;长轮询和iframe流。 实现方式 长轮询 长轮询是在打开一条连接以后保持&…

visual studio 2008 编译项目出现层次不穷问题枚举

文章目录 1、严重性 代码 说明 项目 文件 行 禁止显示状态 错误 C1047 对象或库文件“.lib”是使用与其他对象(如“x64\Release\main.obj”)不同的1、错误原因 2、意外的预编译头错误,只需重新运行编译器就可能修复此问题3、 warning LNK4099: 未找到 PDB“vc90.pdb”(使用“..…

【数据结构与算法系列3】有序数组的平方

给你一个按 非递减顺序 排序的整数数组 nums&#xff0c;返回 每个数字的平方 组成的新数组&#xff0c;要求也按 非递减顺序 排序。 示例 1&#xff1a; 输入&#xff1a;nums [-4,-1,0,3,10] 输出&#xff1a;[0,1,9,16,100] 解释&#xff1a;平方后&#xff0c;数组变为 …

JavaScript学习笔记01

JavaScript笔记01 什么是 JavaScript JavaScript 是一门世界上最流行的脚本语言&#xff0c;它是一种弱类型的脚本语言&#xff0c;其代码不需要经过编译&#xff0c;而是由浏览器解释运行&#xff0c;用于控制网页的行为。 发展历史 参考&#xff1a;JavaScript的起源故事…