1. 1.      阿狸的英文名

阿狸最近想起一个英文名,于是他在网上查了很多个名字。他发现一些名字可以由两个不同的名字各取一部分得来,例如John(约翰)的前缀 “John”和Robinson(鲁滨逊)的后缀 “son” 连在一起就是Johnson.

现在他找到了两个喜欢的名字(名字可看作字符串),用A和B表示,他想知道取A的一个非空前缀和B的一个非空后缀,连接在一起能组成多少不同的字符串。

输入格式

输入两行,分别表示字符串A和B;字符串只包含小写英文字母。

输出格式

输出一行,一个整数,表示能得到多少不同的字符串。

输入样例

输出样例

cat

dog

9

tree

heap

14

数据范围和约束:

30%的数据:字符串长度不超过2000

100%的数据:字符串长度不超过100000

题解说这是一道签到题。。。大爷的我居然爆0。。。

其实就是水题一道,统计A串中除了首字母的其它字母出现次数,统计B串中除了尾字母的其它字母出现次数,然后用总方案数减去那些重复了的。

#include <cstdio>
#include <cstring> const int maxn = 100005; int n, m;
char a[maxn], b[maxn];
long long s[2][26], ans; inline long long getnum(int left, int right, char ch) {
if (left <= 0) {
left = 1;
}
return s[right][ch - 'a'] - s[left - 1][ch - 'a'];
}
/*
interesting
veryexciting
*/ int main(void) {
scanf("%s%s", a + 1, b + 1);
n = strlen(a + 1);
m = strlen(b + 1);
ans = (long long)n * (long long)m;
for (int i = 2; i <= n; ++i) {
++s[0][a[i] - 'a'];
}
for (int i = 1; i < m; ++i) {
++s[1][b[i] - 'a'];
}
for (int i = 0; i < 26; ++i) {
ans -= s[0][i] * s[1][i];
}
printf("%lld\n", ans);
return 0;
}

  

最新文章

  1. HTTP Session、Cookie机制详解
  2. 多线程同步_Monitor
  3. 【leetcode】Maximal Rectangle (hard)★
  4. C++11 std::chrono库详解
  5. iOS Technology Overview_Introduction
  6. hiho1092_have lunch together
  7. Embedded之memory test
  8. Turn the pokers
  9. 使用PLSql连接Oracle时报错ORA-12541: TNS: 无监听程序
  10. 字符集 ISO-8859-1(1)
  11. lvs 负载均衡 NAT模式
  12. 谈谈对C#中反射的一些理解和认识(上)
  13. python hmac解密
  14. ubuntu 禁用 guest 账户
  15. 手机调试 fiddler
  16. android--获取屏幕高宽度工具类
  17. linux下c语言实现双进程运行
  18. WebLogic使用总结(三)——WebLogic配置JNDI数据源
  19. nginx 443 https mark
  20. Android反编工具的使用-Android Killer

热门文章

  1. c++多线程编程:常见面试题
  2. POJ3255 Roadblocks 【次短路】
  3. poj2481 Cows
  4. rand和srand的用法(转载)
  5. HTTP协议漫谈 C#实现图(Graph) C#实现二叉查找树 浅谈进程同步和互斥的概念 C#实现平衡多路查找树(B树)
  6. 鸟哥的Linux私房菜-----12、学习使用Shell scripts
  7. 深度学习笔记之使用Faster-Rcnn进行目标检测 (原理篇)
  8. jQuery经典面试题及答案精选
  9. Python爬虫开发【第1篇】【Scrapy框架】
  10. java8--IO(java疯狂讲义3复习笔记)