【HDOJ 1009】 CRB and String
每组两个串s t 仅仅由小写字母组成 问从s能不能变成t
改变的操作为选一个字符 在后面加上一个与所选字符不同的字符
这样的操作能够做无数次 问能不能达t
首先s能到t的首要条件是 对于随意字母 s中出现的次数小于等于t中出现的次数
其次细致想想能够发现 满足上一条件后 假设不存在连续的同样字符 s肯定能变成t(细致想想
而同样的连续字符假设在串中(不在串首 可不断在其前的字符后累加该字符
因此仅仅需看t开头有没有连续的同样字符 假设与s开头连续的同样字符为同一字符 而且长度小于等于s开头的连续同样字符长度
即为Yes
不满足以上两个条件 即为No
代码例如以下:
#include <iostream>
#include <cstring>
#include <cstdio> using namespace std; using namespace std; char s[100005],t[100005];
int sz[26],tz[26]; int main()
{
int T,i,j,lens,lent;
bool f;
scanf("%d",&T);
while(T--)
{
scanf("%s %s",s,t);
if(s[0] != t[0])
{
puts("No");
continue;
} memset(sz,0,sizeof(sz));
memset(tz,0,sizeof(tz));
lens = lent = 0;
f = 0;
for(i = 0; s[i]; ++i)
{
sz[s[i]-'a']++;
if(!f && (!i || s[i] == s[i-1])) lens++;
else f = 1;
} f = 0;
for(i = 0; t[i]; ++i)
{
tz[t[i]-'a']++;
if(!f && (!i || t[i] == t[i-1])) lent++;
else f = 1;
} if(t[0] == s[0] && lens >= lent)
{
for(i = 0; i < 26; ++i)
{
if(sz[i] > tz[i]) break;
}
if(i == 26) puts("Yes");
else puts("No");
}
else puts("No");
}
return 0;
}
【HDOJ 1009】 CRB and String的更多相关文章
- 【HDOJ 5407】 CRB and Candies (大犇推导
pid=5407">[HDOJ 5407] CRB and Candies 赛后看这题题解仅仅有满眼的迷茫------ g(N) = LCM(C(N,0),C(N,1),...,C(N ...
- 【HDOJ 5379】 Mahjong tree
[HDOJ 5379] Mahjong tree 往一颗树上标号 要求同一父亲节点的节点们标号连续 同一子树的节点们标号连续 问一共同拥有几种标法 画了一画 发现标号有二叉树的感觉 初始标号1~n 根 ...
- 【HDOJ 2089】不要62
[HDOJ 2089]不要62 第一个数位dp的题 做的老困难了...只是好歹是做出来了 迈出了第一步.. 对大牛来说这样的题都是小case ps:新上一个记忆化方法 一些绕弯的题里用dfs好想些 代 ...
- 【HDOJ 5371】 Hotaru's problem
[HDOJ 5371] Hotaru's problem Manacher算法+穷举/set Manacher算法一好文:http://blog.csdn.net/yzl_rex/article/de ...
- 【HDOJ 5654】 xiaoxin and his watermelon candy(离线+树状数组)
pid=5654">[HDOJ 5654] xiaoxin and his watermelon candy(离线+树状数组) xiaoxin and his watermelon c ...
- 【HDOJ 5399】Too Simple
pid=5399">[HDOJ 5399]Too Simple 函数映射问题 给出m函数 里面有0~m个函数未知(-1) 问要求最后1~n分别相应仍映射1~n 有几种函数写法(已给定的 ...
- 【HDOJ 3652】B-number
[HDOJ 3652]B-number 给一整数n 找<=n的整数中能被13整除且含有13的 数位dp 记忆化! . 一入记忆化深似海. ..再也不想用递推了...发现真的非常好想 仅仅要保证满 ...
- 【HDOJ 5419】 Victor and Toys (排列组合)
[HDOJ 5419] Victor and Toys n个玩具 m个区间 每一个玩具有一个beauty值 问任选三个区间 三区间的MINleft~MAXright的和的期望值 预处理一个数组 存放每 ...
- 【HDOJ 2255】奔小康赚大钱(KM算法)
[HDOJ 2255]奔小康赚大钱(KM算法) 奔小康赚大钱 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K ...
随机推荐
- 2015 多校赛 第七场 1011 (hdu 5379)
题意:给定一棵树,树上有 n 个节点.问有多少种方案,使得在每个节点上依次放置数 1~n 后,每个节点的儿子节点上的数连续(比如 1 为根,有1-2,1-3,1-4,则令2,3,4上的数连续),每个子 ...
- MySQL实现递归查询
DROP FUNCTION IF EXISTS queryChildrenCaseInfo;CREATE FUNCTION queryChildrenCaseInfo(cId INT)RETURNS ...
- Spring Boot (10) mybatis三种动态sql
脚本SQL xml配置方式见mybatis讲解,下面是用<script>的方式把它照搬过来,用注解来实现.适于xml配置转换到注解配置 @Select("<script&g ...
- 菜鸟使用 centOS 安装 redis 并放入service 启动 记录
1.下载redis: wget http://download.redis.io/releases/redis-2.8.17.tar.gz 若wget 不可用,请先安装wget yum install ...
- java rsa加密解密
- Python3中替代Python2中cmp()函数的新函数(gt,ge,eq,le,lt)
原文出处:http://blog.csdn.net/Artprog/article/details/52197779 Python3中已经不能使用cmp()函数了,被如下五个函数替代: import ...
- 如何将一个已有的项目托管到github或是码云上?git的配置
场景一:已有的一个项目,要把它托管到Git上去,步骤和方法如下: 方法一: ①在工程的路径下 : git init 建一个裸仓库. ②远程仓库地址 :将本地的仓库和远程仓库关联 git remote ...
- day8 面向对象编程基础
活在当下的程序员应该都听过“面向对象编程”一词,也经常有人问能不能用一句话解释下什么是“面向对象编程”,我们先来看看比较正式的说法. 把一组数据结构和处理它们的方法组成对象(object),把相同行为 ...
- github+hexo(window10)
一.申请github账户 二.先安装node.js.git 本地: 三.安装hexo(建立静态网页,用Markdown写博客) 1.创建文件地址 在合适的地方新建一个文件夹,用来存放自己的博客文件,比 ...
- eas之dep的前置脚本和后置脚本
dep的前置脚本和后置脚本,什么时候写,是这样解释的: 前置脚本是在方法前执行,后置脚本是在方法后执行 1.比如保存扩展,如果你要在保存前校验某个字段的值,你要在前置脚本中写,如果要保存后 ...