1 条题解
-
0
自动搬运
来自洛谷,原作者为

kkxacj
Full of Hope.搬运于
2025-08-24 22:26:12,当前版本为作者最后更新于2023-05-17 19:11:44,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
引言
这个蒟蒻没有认真读题,交了几遍才过,写个题解纪念一下。
思路
一道简单的模拟,但要注意细节。
拿样例来说
cat dog 分别可以组成 cg cog cdog cag caog cadog catg catog catdog 这九种可能。那么,在没有构成重复单词的情况下,它一共可以构成第一个单词的字母个数乘上第二个单词的字母个数,现在我们需要知道如何去掉重复单词,那么,请看第二个样例
tree heap 构成的不再展示,这里展示重复单词 (tre eap tree ap) (tre ap tr eap)不难发现,重复单词就是两个单词相同的字母数量乘积。
注意:他的构成方法是:使用第一个单词的非空前缀,第二个单词的非空后缀。
code
#include<bits/stdc++.h> using namespace std; long long sum,ans,a[60],b[60]; string s,s1; int main() { cin >> s >> s1; ans = s.size() * s1.size(); for(int i = 1;i < s.size();i++) a[s[i] - 'a']++; for(int i = 0;i < s1.size() - 1;i++) b[s1[i] - 'a']++; for(int i = 0;i < 26;i++) sum += a[i] * b[i]; printf("%lld",ans - sum); return 0; }
- 1
信息
- ID
- 6204
- 时间
- 2000ms
- 内存
- 256MiB
- 难度
- 2
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者