首页 > 其他分享 >CF653B 1300

CF653B 1300

时间:2023-02-16 15:14:40浏览次数:120  
标签:1300 string int ans 长度 字符串 CF653B

题意

长度为n的字符串(字符串中只有abcdef共6种字母),有q种压缩方式,可以将字符串的前两个字符压成1个字符,求凭借这q种压缩方式,有几种长度为n的字符串最终能被压缩成字符'a'.
输入格式:
第一行输入两个整数n(2<=n<=6)和q(1<=q<=36),代表压缩前字符串的长度以及压缩方式的种类数
接下来q行,每行两个字符串,长度分别为2和1,只有abcdef共6种字母,代表前面的字符串可以压缩成后面的字符串
输出格式:
输出长度为n的符合条件的字符串种类数
说明:
在第一个样例中,符合条件的长度为3的字符串有4中,“abb”,“cab”,“cca”,“eea”
“abb” —> “ab” —> “a”
“cab” —> “ab” —> “a”
“cca” —> “ca” —> “a”
“eea” —> “ca” —> “a”

解析

写的时候用了麻烦的做法,从a开始推
官方题解是说枚举6^n次生成所有,然后每个判断

代码

#include <bits/stdc++.h>
using namespace std;
int n,q;
string s;
map<char,vector<string> > mp;
map<string,bool> vis;
int res;
int ans = 0;
void dfs(string now,int cnt){
	// ans++;
	// if(ans == 50) exit(0);
	// cout << now << " " << cnt << endl;
	if(cnt == n){
		if(!vis.count(now)){
			vis[now] = true;
			res++;
		}
		return;
	}
	char c = now[0];
	for(auto &t : mp[c]){
		dfs(t + now.substr(1),cnt+1);
	}
}

int main(){
	cin >> n >> q;
	while(q--){
		string s;
		char c;
		cin >> s >> c;
		mp[c].push_back(s);
	}

	dfs(string(1,'a'),1);

	cout << res;
	return 0;
}

标签:1300,string,int,ans,长度,字符串,CF653B
From: https://www.cnblogs.com/dtdbm/p/17126816.html

相关文章

  • CF476B 1300
    题意输入#1++-+-+-+-+输出#11.000000000000输入#2+-+-+-??输出#20.500000000000输入#3+++??-输出#30.000000000000解析我是找规律做的。算出最后......
  • CF416B 1300
    题意解析f[i][j]代表第i幅画最后一次被j画了所花的时间,受到两个的限制,画当前这个画的前一个画家画完了,当前这个画家画完了前面那张画了,取max。代码#include<bits/std......
  • CF234C 1300
    题意最后要形成形如前面从1k范围内全为负数,从k+1n范围内全为正数,没有0的存在,那此时最少应该改变几个值。解析ca[i]统计前面到i一共有多少个>=0的,cb[i]代表后面到i一共......
  • CF189A 1300
    题意解析3个物品的完全背包。f[i][j]代表选到第i件物品此时恰凑成长度j的数量的最大值代码#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;con......
  • hdu1300 Pearls--DP
    原题链接:​​http://acm.hdu.edu.cn/showproblem.php?pid=1300​​一:原题内容ProblemDescriptionInPearlaniaeverybodyisfondofpearls.Onecompany,calle......
  • 英特尔® 酷睿™ i5-11300H 处理器
    https://www.intel.cn/content/www/cn/zh/products/sku/196656/intel-core-i511300h-processor-8m-cache-up-to-4-40-ghz-with-ipu/specifications.html......
  • 算法竞赛入门【码蹄集新手村600题】(MT1251-1300)
    算法竞赛入门【码蹄集新手村600题】(MT1251-1300)文章目录​​算法竞赛入门【码蹄集新手村600题】(MT1251-1300)​​​​前言​​​​为什么突然想学算法了?​​​​为什么选择......
  • UVa 11300 Spreading the Wealth 题解
    非常好的一道数学题。原题链接(洛谷)原题链接(UVa)题目分析(参考刘汝佳《算法竞赛入门经典\(\cdot\)训练指南》)本身看起来很复杂。不要急,我们慢慢分析。首先,每个人最终......
  • 在安装oracle11g时出现问题:INS-13001环境不满足最低要求
    在安装oracle11g时出现问题:INS-13001环境不满足最低要求 解决方法:找到下载解压后的文件,依次打开以下文件路径:Oracle11g\database\stage\cvu,在cvu文件下有个cvu_prereq.......