博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
洛谷P1808 单词分类_NOI导刊2011提高(01) 字符串排序
阅读量:5273 次
发布时间:2019-06-14

本文共 1751 字,大约阅读时间需要 5 分钟。

洛谷P1808 单词分类_NOI导刊2011提高(01)

题目描述

Oliver为了学好英语决定苦背单词,但很快他发现要直接记住杂乱无章的单词非常困难,他决定对单词进行分类。

两个单词可以分为一类当且仅当组成这两个单词的各个字母的数量均相等。

例如“AABAC”,它和“CBAAA”就可以归为一类,而和“AAABB”就不是一类。

现在Oliver有N个单词,所有单词均由大写字母组成,每个单词的长度不超过100。你要告诉Oliver这些单词会被分成几类。

输入格式

输入文件的第一行为单词个数N,以下N行每行为一个单词。

输出格式

输出文件仅包含一个数,表示这N个单词分成的类数

输入输出样例

输入 #1复制
3 AABAC CBAAA AAABB
输出 #1复制
2

说明/提示

对于70%的数据满足N≤100。 对于100%的数据满足N≤10000。

Solution

Algorithm(1)

对每一个字符串自身进行一次内部排序

再对所有字符串进行排序

初始化ans=1;因为至少会有一类的

枚举所有字符串,若str[i]!=str[i+1],ans++;

最后输出ans

最多运算次数:

100*log(100)*10000+10000*log(10000)+10000

约等于O(nlog(n))吧?

Code(100分)

事实证明这还是能过的

并不需要后面的更为复杂的算法

1 #include
//不想OI一场空,千万别用万能头 2 #include
//快排sort() 3 #include
4 using namespace std; 5 bool cmpchar(char ta,char tb){ 6 return ta
>n;16 int ans=1;17 for(int i=0;i
>word[i];19 sort(&word[i][0],&word[i][word[i].size()],cmpchar);20 }21 sort(&word[0],&word[n],cmpstr);22 for(int i=0;i

其思想就是:分类找间隔,类数=间隔+1

ALgorithm(2)

借用STL<map>

map,可以把它当成是一个自定义数组

map<string,bool>word

就是新建一个数组

名为word

下表是string类型的

值则是bool类型的

而且可以像普通数组那样直接访问

word[str]==1;

Code(100分)

1 #include
//不想OI一场空,千万别用万能头 2 #include
//快排sort() 3 #include
4 #include
5 #include
6 using namespace std; 7 map
word; 8 int n,ans; 9 string t;10 int main()11 {12 scanf("%d",&n);13 for(int i=0;i
>t;16 sort(t.begin(),t.end());17 if(!word[t])18 {19 ans++;20 word[t]=1;21 }22 }23 cout<

哈哈哈,sort还能这样用哟!

str.begin() str.end()会返回str首尾的地址

这比

sort(&word[i][0],&word[i][word[i].size()],cmpchar);

好用多了吧?

STL大法好!

转载于:https://www.cnblogs.com/send-off-a-friend/p/11334325.html

你可能感兴趣的文章
Linux 随机数
查看>>
模态框MODAL的一些事件捕捉
查看>>
sql server创建windows账户
查看>>
(4.1)SQL Server Browser 与动态端口
查看>>
(5.2.1)配置服务器参数——即时文件初始化(IFI)
查看>>
async and await
查看>>
ISAPI和CGI限制中没有ASP.NET v4.0
查看>>
怎样有效地学习 Node.js ?
查看>>
如何为精智屏制作一个自定义登录框
查看>>
如何用DOM 元素就能画出国宝熊猫
查看>>
实验十一 路由器综合路由配置
查看>>
表单中全选或者全不选的checkbox代码
查看>>
PHP SOAP 提交XML
查看>>
vim 乱码问题的方法参考
查看>>
关于jquery方面的知识点
查看>>
使用jenkins docker容器的坑
查看>>
hello2 Source Analisis
查看>>
onclikc事件和onmousedown事件的区别与联系
查看>>
BZOJ 3456: 城市规划 多项式求逆
查看>>
BZOJ 1834: [ZJOI2010]network 网络扩容 最小费用流_最大流_残量网络
查看>>