TCS·有趣的英语角【DFS】

Description–

单词接龙:与成语接龙相类似。
现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的“龙”(每个单词都最多在“龙”中出现两次),在两个单词相连时,其重合部分合为一部分:例如 beast 和 astonish,如果接成一条龙则变为 beastonish。另外相邻的两部分不能存在包含关系:例如 at 和 atide 间不能相连。
对于给定的 N个单词和一个开头的字母,完成这个最长的单词接龙。
洛谷传送


Input–

输入的第一行为一个单独的整数 n 表示单词数。
以下 n 行每行有一个单词。
输入的最后一行为一个单个字符,表示“龙”开头的字母。(以此字母开头的“龙”一定存在。)

Output–

输出以此字母开头的最长的“龙”的长度。


Sample Input–

5
at
touch
cheat
choose
tact
a

Sample Output–

23

说明–

(连成的“龙”为 atoucheatactactouchoose)
n<=20


解题思路–

hhh


代码–

#include <iostream>
#include <cstring>
#include <cstdio>

using namespace std;

int n, ans, pd[25];
char a;
string s[25];

void msy(string x, int l)
{
	ans = max(ans, l);
	string v, w;
	for (int i = 1; i < (int)x.size(); ++i)  //s1的后i位和s2的前i位相同
	{
		v = x.substr((int)x.size() - i, i);
		for (int j = 1; j <= n; ++j)
	  	  if ((int)s[j].size() > (int)v.size() && pd[j]  < 2) //不包含且出现次数小于2
		  {
			  w = s[j].substr(0, i);
			  if (v == w)
			  {
			  	  pd[j]++;
	   	          msy(s[j], l + (int)s[j].size() - i);
	   	          pd[j]--;
			  }
		  }
	}
}

int main()
{
	freopen("english.in", "r", stdin);
	freopen("english.out", "w", stdout);
	
	scanf("%d", &n);
	for (int i = 1; i <= n;++i)
	  cin >> s[i];
	cin >> a;
	for (int i = 1; i <= n; ++i)
	  if (s[i][0] == a)
	  { pd[i]++; msy(s[i], (int)s[i].size()); pd[i]--; }
    printf("%d", ans);
	
	return 0;
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
TCS3200颜色传感器概述: TCS3200颜色传感器是一款全彩的颜色检测器,包括了一块TAOS TCS3200RGB感应芯片和4个白光LED灯,TCS3200能在一定的范围内检测和测量几乎所有的可见光。它适合于色度计测量应用领域。比如彩色打印、医疗诊断、计算机彩色监视器校准以及油漆、纺织品、化妆品和印刷材料的过程控制。 通常所看到的物体颜色,实际上是物体表面吸收了照射到它上面的白光(日光)中的一部分有色成分,而反射出的另一部分有色光在人眼中的反应。白色是由各种频率的可见光混合在一起构成的,也就是说白光中包含着各种颜色的色光(如红R、黄Y、绿G、青V、蓝B、紫P)。根据德国物理学家赫姆霍兹(Helinholtz)的三原色理论可知,各种颜色是由不同比例的三原色(红、绿、蓝)混合而成的。 由上面的三原色感应原理可知,如果知道构成各种颜色的三原色的值,就能够知道所测试物体的颜色。对于TCS3200D 来说,当选定一个颜色滤波器时,它只允许某种特定的原色通过,阻止其它原色的通过。例如:当选择红色滤波器时,入射光中只有红色可以通过,蓝色和绿色都被阻止,这样就可以得到红色光的光强;同理,选择其它的滤波器,就可以得到蓝色光和绿色光的光强。通过这三个光强值,就可以分析出反射到TCS3200D传感器上的光的颜色。 TCS3200颜色传感器实物展示: TCS3200颜色传感器描述: 感应芯片:TCS3200(全彩颜色检测器) 静态识别物体颜色,不同颜色输出不同频率方波 支持LED灯补光控制 TCS3200颜色传感器参数: 工作电压:2.7V ~ 5.5V 推荐检测距离:10mm 尺寸:36.0mm * 20.6mm 固定孔尺寸:2.0mm TCS3200颜色传感器主要用途: 颜色排序、感应与校准环境光、测试条阅读和颜色匹配等。 接口说明:(以接入MCU为例) VCC:接2.7V ~ 5.5V GND:接电源地 LED:接MCU.IO (控制四个白色LED灯的状态) OUT:接MCU.IO (RGB三原色对应的输出频率) S0/S1:接MCU.IO (选择不同的输出比例因子) S2/S3:接MCU.IO (选择不同色光的滤波器) 操作说明: S0/S1选择输出频率的比例因子,S2/S3依次选择三原色的滤波器类型,此时OUT端口输出的就是相应三原色的频率,与RGB颜色对照表比对即可得到所测物体的颜色。 注意: 颜色识别时要避免外界光线的干扰 首次使用该模块、模块重启或更换光源时,需进行白平衡调整 相关技术资料: 如何进行TCS3200各控制引脚与Arduino控制器的硬件连线问题,详见链接:https://www.eefocus.com/zhang700309/blog/13-08/2963... 用TCS3200D做颜色识别时,如何将测得的脉冲数转换为RGB的值?链接:https://wenda.so.com/q/1367943564064205 实物购买链接:https://www.waveshare.net/shop/Color-Sensor.htm
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值