首页 > 其他分享 >P1019 [NOIP2000 提高组] 单词接龙

P1019 [NOIP2000 提高组] 单词接龙

时间:2023-10-16 11:57:45浏览次数:40  
标签:P1019 int 单词 接龙 ans NOIP2000

P1019 [NOIP2000 提高组] 单词接龙
注意:1.相邻不包含2.每个单词最多使用两次3.如果两部分可以接龙,直接退出,因为如果再继续,长度一定变短(因为相邻的会抵销)4.加个特殊字符,这样就可以不用特判了

因为n很小,直接暴力枚举
1.如果两个可以接龙直接合并(注意相邻相同要抵消)
2.暴力枚举每个单词

点击查看代码
#include<bits/stdc++.h>
using namespace std;
#define LL long long
string word[25], t;
int ans = 0,use[25];
int n;
void dfs(string s) {
	int ls = s.size();
	ans = max(ans, ls);
	for (int i = 1; i <= n; i++) {//暴力枚举每个单词
		for (int j = 1; j < word[i].size() && j < ls; j++) {//判断不包含
			if (use[i] < 2 && s.substr(ls - j, j) == word[i].substr(0, j)) {//判断只能使用两次
				use[i]++;
				dfs(s + word[i].substr(j));//接龙后的新单词
				use[i]--;
				break;//已经是最长的了,再继续会变短
			}
		}
	}

}

int main() {
	cin >> n;
	for (int i = 1; i <= n; i++) cin >> word[i];
	cin >> t;
	t = '*' + t;//不用特判了
	dfs(t);
	cout << ans-1;//因为有个*
	return 0;
}

标签:P1019,int,单词,接龙,ans,NOIP2000
From: https://www.cnblogs.com/bu-fan/p/17767012.html

相关文章

  • 社区团购商城拼团秒杀接龙分销团长小程序开源版开发
    社区团购商城拼团秒杀接龙分销团长小程序开源版开发功能介绍:商品管理:增加商品-商品列表-商品分类-商品单/多规格-商品标签订单管理:订单列表-订单挑选-订单导出-订单打印-批量发货-商品评价会员管理:会员列表-会员挑选-会员导出-虚拟会员-会员等级-会员分组-会员分销团长管理:团长列表......
  • [NOIP2000 普及组] 计算器的改良
    题目描述输入一个一元一次方程,求它的解(精确到小数点后三位)。方程中,只包含整数、小写字母及\(\texttt{+}\)、\(\texttt{-}\)、\(\texttt{=}\)这三个数学符号(当然,符号“\(\texttt{-}\)”既可作减号,也可作负号)。方程中并没有括号,也没有除号,方程中的字母表示未知数。键入的一元......
  • LeetCode -- 127. 单词接龙
     方法一:双向广搜classSolution{public:intladderLength(stringbeginWord,stringendWord,vector<string>&wordList){set<string>se;for(autoit:wordList){se.insert(it);}if(!se.count(en......
  • 127. 单词接龙
    字典wordList中从单词beginWord和endWord的转换序列是一个按下述规格形成的序列beginWord->s1->s2->...->sk:每一对相邻的单词只差一个字母。对于1<=i<=k时,每个si都在wordList中。注意,beginWord不需要在wordList中。sk==endWord给你两个单词......
  • 单词接龙
    单词接龙题目:给定两个单词(beginWord和endWord)和一个字典,找到从beginWord到endWord的最短转换序列的长度。转换需遵循如下规则:每次转换只能改变一个字母。转换过程中的中间单词必须是字典中的单词。说明:如果不存在这样的转换序列,返回0。所有单词具有相同的长度。所有......
  • #yyds干货盘点# LeetCode程序员面试金典:单词接龙 II
    题目:按字典 wordList完成从单词beginWord到单词endWord转化,一个表示此过程的转换序列是形式上像beginWord->s1->s2->...->sk这样的单词序列,并满足:每对相邻的单词之间仅有单个字母不同。转换过程中的每个单词si(1<=i<=k)必须是字典 wordList中的单词。注意,be......
  • #yyds干货盘点# LeetCode程序员面试金典:单词接龙
    题目:字典 wordList中从单词beginWord 和endWord的转换序列是一个按下述规格形成的序列 beginWord->s1 ->s2 ->...->sk:每一对相邻的单词只差一个字母。 对于 1<=i<=k 时,每个 si 都在 wordList 中。注意,beginWord 不需要在 wordList 中。sk ==endW......
  • [NOIP2000 提高组] 单词接龙
    题目背景注意:本题为上古NOIP原题,不保证存在靠谱的做法能通过该数据范围下的所有数据。题目描述单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的“龙”(每个单词都最多在“龙”中出现两次),在两个单......
  • [NOIP2000 提高组] 单词接龙
    [NOIP2000提高组]单词接龙题目背景注意:本题为上古NOIP原题,不保证存在靠谱的做法能通过该数据范围下的所有数据。题目描述单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的“龙”(每个单词都最多在......
  • P1859 单词接龙
    #include<iostream>#include<cstring>#include<cmath>usingnamespacestd;intn,length=0,vis[1000]={0};stringstr[1000];inlineintcheck(stringa,stringb){intp=min(a.length(),b.length());for(inti=1;a.length()==1?i<=p:i......