首页 > 手机号码
头像 段心怡
发表于 2023-07-09 17:50:47
Trie树解法 将所有前缀插入trie树,然后根据字符串长度从小到大遍历所有前缀,然后把该字符串的最后一个字符所在结点删除,这样就可以去除所有包含当前前缀的字符串。 #include<iostream> #include<algorithm> #include<cmat 展开全文
头像 ccsuYWJ
发表于 2021-03-17 22:51:41
遍历所有字符串若存在相同字符串或前缀相同且长度短的跳过,反之减去它。 #include<bits/stdc++.h> using namespace std; char a[100][100]={0};//前n后m int n,m; int main(){ cin >> 展开全文
头像 小阿巴阿巴
发表于 2022-03-29 10:58:01
思路 读取n,计算出n位数可以有多少不同的组合方案(每一位都可以取0~9 共10种情况,所以能组合出10 ^ n种方案) 读取m以及接下来的m个不能用作组合开头的字符串(以下称为 “非法开头” ) 针对每个 “非法开头”,计算出以该非法开头的组合有多少种? 从总的组合方案数(10 ^ n)中减去它 展开全文
头像 little-greenhand
发表于 2023-08-11 12:07:04
思路:每个位置有0~9共10种可能,而总共有n位,则有10^^n种,再减去不该有的(满足保留号码开头的),而保留号码开头的,由于确定了x位,所以只有10^^(n-x)种,时间复杂度应该是O(n^^2); 个人处理时的难点: 1.采用long long int 记录可能种数,可能不够大,用的数组记录, 展开全文
头像 贴心的大学生年薪百万
发表于 2024-07-14 14:27:10
注意 1. 如果前面出现过此字符串的前缀,忽略掉此字符串 2. 使用pow函数时强转long long,否则数据太大,会出现错误 #include<bits/stdc++.h> using namespace std; typedef long 展开全文