题意:

给出两个字符串,第一个字符串中的每个字符(只包括小写字母)最多可以变成k(k<=3)个字符(不一定是小写字母),相同字母要变成相同的字符,问由第一个串变成第二个串合不合法。

思路:

串的长度只有15,直接暴力,用dfs+回溯去枚举所有情况。

代码:

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<queue>
#include<vector>
#include<map>
#include<stack>
#include<cmath>
#include<cstdlib>
#include<climits>
#include<sstream>using namespace std;char st[100],en[100];
char maps[26][4],tmp[4];int dfs(int k, int p1, int p2 ,int l1, int l2)
{if(p1==l1&&p2==l2)return 1;if(p1==l1||p2==l2)return 0;for(int i=0;i<k;i++){if(p2+i<l2){memset(tmp,0,sizeof tmp);for(int j=0;j<=i;j++)tmp[j]=en[p2+j];int flag=0;if(strcmp(maps[st[p1]-'a'],"")==0){flag=1;strcpy(maps[st[p1]-'a'],tmp);}if(flag||strcmp(maps[st[p1]-'a'],tmp)==0){if(dfs(k,p1+1,p2+i+1,l1,l2))return 1;}if(flag)strcpy(maps[st[p1]-'a'],"");}}return 0;
}int main()
{int t;scanf("%d",&t);while (t--){int k;scanf("%d%s%s",&k,st,en);int len1=strlen(st);int len2=strlen(en);if(len2>3*len1){cout<<0<<endl;continue;}for(int i=0;i<26;++i)strcpy(maps[i],"");int ans=dfs(k,0,0,len1,len2);cout<<ans<<endl;}return 0;
}

uva1509(暴力dfs)相关推荐

  1. CSP-何以包邮?(暴力DFS、背包问题)

    题目描述 新学期伊始,适逢顿顿书城有购书满 x 元包邮的活动,小 P 同学欣然前往准备买些参考书. 一番浏览后,小 P 初步筛选出 n 本书加入购物车中,其中第 i 本(1≤i≤n)的价格为 ai 元 ...

  2. 【洛谷 - U43391】不是0-1背包的暴力AC(思维,二分,可转化为二元组问题,复习暴力dfs总结)

    题干: https://www.luogu.org/problemnew/show/U43391 自01背包问世之后,小A对此深感兴趣.一天,小A去远游,却发现他的背包不同于01背包. 小A的背包最多 ...

  3. UVA10344 23 out of 5【暴力+DFS】

    Your task is to write a program that can decide whether you can find an arithmetic expression consis ...

  4. [蓝桥杯][2013年第四届真题]危险系数(暴力+dfs)

    题目描述 问题描述 抗日战争时期,冀中平原的地道战曾发挥重要作用. 地道的多个站点间有通道连接,形成了庞大的网络.但也有隐患,当敌人发现了某个站点后,其它站点间可能因此会失去联系. 我们来定义一个危险 ...

  5. 【noip模拟赛4】Matrix67的派对 暴力dfs

    [noip模拟赛4]Matrix67的派对 描述 Matrix67发现身高接近的人似乎更合得来.Matrix67举办的派对共有N(1<=N<=10)个人参加,Matrix67需要把他们安排 ...

  6. 紫书搜索 习题7-4 UVA - 818 Cutting Chains 暴力+dfs判环+位运算

    题目链接: https://vjudge.net/problem/UVA-818 题意: 选几个圆环去open.然后该圆环和其他就断开了.然后用这些open的圆环去连接剩下的圆环[最后打开的会合上], ...

  7. UVA 818 Cutting Chains 切断圆环链 (暴力dfs)

    题意就是给一张无向图,去掉某些结点,然后连成一条链,问最少去掉几个结点. n很小n<=15,所以直接枚举2^15个状态就行啦. 链的条件是1.无环,2.没有度大于2的点,3.把n个散链连起来需要 ...

  8. bzoj 3752: Hack 预处理+暴力dfs

    题目大意: 定义字符串的hash值\(h = \sum_{i=0}^{n-1}p^{n-i-1}s_i\) 现在给定K个长度不超过L的字符串S,对于每个字符串S,求字典序最小长度不超过L的字符串T使得 ...

  9. bzoj 1648: [Usaco2006 Dec]Cow Picnic 奶牛野餐(暴力DFS)

    1648: [Usaco2006 Dec]Cow Picnic 奶牛野餐 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 774  Solved: 480 ...

最新文章

  1. Redis持久化机制 -全量同步与增量同步的区别
  2. 找找 Spring Event 源码中各种设计模式的使用
  3. 微软Skype Translator将支持阿拉伯语即时语音翻译
  4. 根据中序、前序遍历重建二叉树
  5. 2011计算机等级考试二级c语言公共基础教程.doc,2011年全国计算机等级考试二级c语言公共基础知识复习100题及答案.doc...
  6. 【python】Tkinter可视化窗口(三)
  7. 19. Treat class design as type design
  8. 我喜欢这个地方,是因为和你一起走过
  9. spacemacs project设置
  10. 202202 喜马拉雅 下载 下架产品为mp3 m4a格式
  11. Linux 基础 入门
  12. word 计算机内存不足,电脑office打不开显示内存不足怎么办
  13. accton 打开或关闭进程统计
  14. 游戏一直被攻击掉线卡顿是什么原因?服务器被攻击怎么办?
  15. tesseract-ocr
  16. ubuntu16.04升级至18.04
  17. 抄作业计算机叫,有种尴尬叫“抄作业”,答案是“B”抄成了13,抄错答案哄堂大笑...
  18. 2020 深圳 Gopher Meetup 上线啦!
  19. python numpy矩阵的数据类型转换
  20. 开源的兰空图床LskyPro

热门文章

  1. 科大星云诗社动态20201222
  2. <马哲>劳动价值论的理论及实践意义
  3. VTK修炼之道70:体绘制讨论_光照阴影、VTKLODProp3D
  4. Visual Studio集成Qt环境搭建_详解与测试
  5. 三探·模块拼装思想(静态链接)
  6. C++之struct构造函数(2010-10-19 15:04:47)
  7. <%=(String)request.getAttribute(““) %>的作用是什么
  8. 「 每日一练,快乐水题 」2006. 差的绝对值为 K 的数对数目
  9. 【宝,我去读书了。读的什么书,给你的情书】《数据结构(c++)邓俊晖》-绪论篇
  10. 最小表示法 最大表示法