uva1509(暴力dfs)
题意:
给出两个字符串,第一个字符串中的每个字符(只包括小写字母)最多可以变成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)相关推荐
- CSP-何以包邮?(暴力DFS、背包问题)
题目描述 新学期伊始,适逢顿顿书城有购书满 x 元包邮的活动,小 P 同学欣然前往准备买些参考书. 一番浏览后,小 P 初步筛选出 n 本书加入购物车中,其中第 i 本(1≤i≤n)的价格为 ai 元 ...
- 【洛谷 - U43391】不是0-1背包的暴力AC(思维,二分,可转化为二元组问题,复习暴力dfs总结)
题干: https://www.luogu.org/problemnew/show/U43391 自01背包问世之后,小A对此深感兴趣.一天,小A去远游,却发现他的背包不同于01背包. 小A的背包最多 ...
- UVA10344 23 out of 5【暴力+DFS】
Your task is to write a program that can decide whether you can find an arithmetic expression consis ...
- [蓝桥杯][2013年第四届真题]危险系数(暴力+dfs)
题目描述 问题描述 抗日战争时期,冀中平原的地道战曾发挥重要作用. 地道的多个站点间有通道连接,形成了庞大的网络.但也有隐患,当敌人发现了某个站点后,其它站点间可能因此会失去联系. 我们来定义一个危险 ...
- 【noip模拟赛4】Matrix67的派对 暴力dfs
[noip模拟赛4]Matrix67的派对 描述 Matrix67发现身高接近的人似乎更合得来.Matrix67举办的派对共有N(1<=N<=10)个人参加,Matrix67需要把他们安排 ...
- 紫书搜索 习题7-4 UVA - 818 Cutting Chains 暴力+dfs判环+位运算
题目链接: https://vjudge.net/problem/UVA-818 题意: 选几个圆环去open.然后该圆环和其他就断开了.然后用这些open的圆环去连接剩下的圆环[最后打开的会合上], ...
- UVA 818 Cutting Chains 切断圆环链 (暴力dfs)
题意就是给一张无向图,去掉某些结点,然后连成一条链,问最少去掉几个结点. n很小n<=15,所以直接枚举2^15个状态就行啦. 链的条件是1.无环,2.没有度大于2的点,3.把n个散链连起来需要 ...
- bzoj 3752: Hack 预处理+暴力dfs
题目大意: 定义字符串的hash值\(h = \sum_{i=0}^{n-1}p^{n-i-1}s_i\) 现在给定K个长度不超过L的字符串S,对于每个字符串S,求字典序最小长度不超过L的字符串T使得 ...
- bzoj 1648: [Usaco2006 Dec]Cow Picnic 奶牛野餐(暴力DFS)
1648: [Usaco2006 Dec]Cow Picnic 奶牛野餐 Time Limit: 5 Sec Memory Limit: 64 MB Submit: 774 Solved: 480 ...
最新文章
- Redis持久化机制 -全量同步与增量同步的区别
- 找找 Spring Event 源码中各种设计模式的使用
- 微软Skype Translator将支持阿拉伯语即时语音翻译
- 根据中序、前序遍历重建二叉树
- 2011计算机等级考试二级c语言公共基础教程.doc,2011年全国计算机等级考试二级c语言公共基础知识复习100题及答案.doc...
- 【python】Tkinter可视化窗口(三)
- 19. Treat class design as type design
- 我喜欢这个地方,是因为和你一起走过
- spacemacs project设置
- 202202 喜马拉雅 下载 下架产品为mp3 m4a格式
- Linux 基础 入门
- word 计算机内存不足,电脑office打不开显示内存不足怎么办
- accton 打开或关闭进程统计
- 游戏一直被攻击掉线卡顿是什么原因?服务器被攻击怎么办?
- tesseract-ocr
- ubuntu16.04升级至18.04
- 抄作业计算机叫,有种尴尬叫“抄作业”,答案是“B”抄成了13,抄错答案哄堂大笑...
- 2020 深圳 Gopher Meetup 上线啦!
- python numpy矩阵的数据类型转换
- 开源的兰空图床LskyPro
热门文章
- 科大星云诗社动态20201222
- <马哲>劳动价值论的理论及实践意义
- VTK修炼之道70:体绘制讨论_光照阴影、VTKLODProp3D
- Visual Studio集成Qt环境搭建_详解与测试
- 三探·模块拼装思想(静态链接)
- C++之struct构造函数(2010-10-19 15:04:47)
- <%=(String)request.getAttribute(““) %>的作用是什么
- 「 每日一练,快乐水题 」2006. 差的绝对值为 K 的数对数目
- 【宝,我去读书了。读的什么书,给你的情书】《数据结构(c++)邓俊晖》-绪论篇
- 最小表示法 最大表示法