当前位置: 首页 > news >正文

[蓝桥杯]小tips

记得return 0

输入输出

关闭同步流肯定会记得
但是要记得define endl '\n' 更重要

dfs和string传参的注意

题目链接

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

//#define int long long
using ll = long long;
using ar2 = array<int,2>;
using ar3 = array<int,3>;
using pii = pair<int,int>;
#define fi first
#define se second
#define endl '\n'
const int N=20,MOD=1e9+7;
int n,m;
unordered_set<string>st;
string s[N];
bool vis[N];

bool check(string str){
	int x=str.size();
	return x>=3&&x<=16;
}

void dfs(int cnt,string now){
	if(cnt==n){
		if(now.size()>=3&&now.size()<=16&&st.count(now)==0){
			cout<<now<<endl;
			exit(0);
		}
		return;
	}

	for(int i=1;i<=n;i++){
		if(vis[i]) continue;
		vis[i]=1;
		string und="_";
		
		while(now.size()+und.size()+s[i].size()>=3&&now.size()+und.size()+s[i].size()<=16){
			dfs(cnt+1,now+und+s[i]);
			und+='_';
		}
		vis[i]=0;
	}
}

void solve(){
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		cin>>s[i];
	}
	for(int i=0;i<m;i++){
		string t;cin>>t;
		st.insert(t);
	}
	
	for(int i=1;i<=n;i++){
		vis[i]=1;
		dfs(1,s[i]);
		vis[i]=0;
	}
	cout<<-1<<endl;
}
signed main(){
	ios::sync_with_stdio(0);
	cin.tie(0);cout.tie(0);
	int T=1;
//	cin>>T;
	while(T--) solve();
	return 0;

}

重点不在题目逻辑
看check函数

bool check(string str){
	int x=str.size();
	return x>=3&&x<=16;
}

不能写bool check(string &str)
因为dfs调用时 while(check(now+und+s[i]) 传入checkstring并不是一个变量 是一个临时的string没法引用
所以这样的函数不要用 传参会拷贝一份 效率变慢 会tle几个样例 只能麻烦一点每次都手写一个判断了

http://www.dtcms.com/a/126083.html

相关文章:

  • DevOps与功能安全:Perforce ALM通过ISO 26262合规认证,简化安全关键系统开发流程
  • 磁盘存储下红黑树、B 树与 B + 树的原理、操作及对比
  • vue3实现页面端的自适应布局
  • 解决 vite.config.ts 引入scss 预处理报错
  • java学习笔记16——java8的其他新特性
  • 遇到git提交报错:413
  • Nginx常用工具
  • cs224w课程学习笔记-第10课
  • Linux系统使用lshw生成硬件报告方法
  • 循环神经网络 - LSTM 网络的各种变体
  • Go语言中的垃圾回收是如何工作的?
  • 面向基于发布-订阅的物联网网络的匿名 MQTT 分析
  • SVMSPro分布式综合安防管理平台-->以S3存储革新,开启智能安防新纪元
  • Git 分支整合策略:Cherry-pick、Merge、Rebase 三者之间对比
  • 【图像分类】【深度学习】系列学习文章目录
  • 部署Windows域
  • JAVA:SpringBoot 实现图片防盗链的技术指南
  • 24-栅格布局详解(CSS3)
  • 虚拟机和WSL对比
  • c# 运用策略模式与模板方法模式实例
  • 解决Ubuntu20.04安装ROS2的问题(操作记录)
  • LangGraph 概述
  • 栈栈栈栈栈
  • DDR4_CRC
  • html简易实现推箱子小游戏原理(易上手)
  • 分子束全息光刻技术是啥?能用来干啥?
  • OpenAI即将上线新一代重磅选手——GPT-4.1
  • go:实现最简单区块链
  • DFS中return的作用
  • NO.91十六届蓝桥杯备战|图论基础-图的存储和遍历|邻接矩阵|vector|链式前向星(C++)