当前位置: 首页 > 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几个样例 只能麻烦一点每次都手写一个判断了

相关文章:

  • 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# 运用策略模式与模板方法模式实例
  • 动态网站开发小结/产品网络推广方案
  • 免费装修效果图网站/浙江网站推广公司
  • 建设一个一般网站需要多少钱/台州seo网站排名优化
  • 网站排名代做/优化工具箱
  • 高端网站创建/企业宣传视频
  • 网上推广平台怎么收费/班级优化大师手机版下载