Anagram Groups(字符串)
http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2316
理解错一点题意就能WA到死。。。题中对于重复的单词,只输出一个,但是重复的单词个数要加上
#include <stdio.h>
#include <string.h>
#include <iostream>
#include <string>
#include <algorithm>
#include <vector>
#include <map>
using namespace std;
const int N=;
int vis[N];
vector<string>v[N];
map<string,int>mp;
struct node
{
int Size;
int num;
friend bool operator < (node a,node b)
{
if (a.Size == b.Size)
{
return v[a.num][] < v[b.num][];
}
return a.Size > b.Size;
}
} G[N];
int main()
{
string s[N],s2[N];
char ss[N];
int i = ;
mp.clear();
while(scanf("%s",ss)!=EOF)
{
if(ss[]=='')
break;
mp[ss]++;
if(mp[ss]==)
{
s[i] = ss;
sort(ss,ss+strlen(ss));
s2[i++] = ss;
}
}
int n = i;
int p = ;
memset(vis,,sizeof(vis));
for (int j = ; j < n; j++)
{
if (vis[j])
continue;
int Size = ;
for (int k = j; k < n; k++)
{
if (s2[j]==s2[k])
{
vis[k] = ;
v[p].push_back(s[k]);
if(mp[s[k]]>)
Size+=mp[s[k]]-;
}
}
G[p].Size = v[p].size()+Size;
G[p].num = p;
sort(v[p].begin(),v[p].end());
p++;
}
sort(G,G+p);
if (p > )
p = ;
for (int j = ; j < p; j++)
{
printf("Group of size %d:",G[j].Size);
for (int k = ; k < v[G[j].num].size(); k++)
{
cout<<" "<<v[G[j].num][k];
}
printf(" .\n");
}
return ;
}
Anagram Groups(字符串)的更多相关文章
- poj 2408 Anagram Groups(hash)
id=2408" target="_blank" style="">题目链接:poj 2408 Anagram Groups 题目大意:给定若干 ...
- POJ 2408 - Anagram Groups - [字典树]
题目链接:http://poj.org/problem?id=2408 World-renowned Prof. A. N. Agram's current research deals with l ...
- poj 2408 Anagram Groups
Description World-renowned Prof. A. N. Agram's current research deals with large anagram groups. He ...
- python 之 字符串处理
分割字符串 根据某个分割符分割 >>> a = '1,2,3,4' >>> a.split(',') ['] 根据多个分隔符分割 >>> line ...
- 杭电ACM分类
杭电ACM分类: 1001 整数求和 水题1002 C语言实验题——两个数比较 水题1003 1.2.3.4.5... 简单题1004 渊子赛马 排序+贪心的方法归并1005 Hero In Maze ...
- HOJ题目分类
各种杂题,水题,模拟,包括简单数论. 1001 A+B 1002 A+B+C 1009 Fat Cat 1010 The Angle 1011 Unix ls 1012 Decoding Task 1 ...
- OJ题解记录计划
容错声明: ①题目选自https://acm.ecnu.edu.cn/,不再检查题目删改情况 ②所有代码仅代表个人AC提交,不保证解法无误 E0001 A+B Problem First AC: 2 ...
- 转载:hdu 题目分类 (侵删)
转载:from http://blog.csdn.net/qq_28236309/article/details/47818349 基础题:1000.1001.1004.1005.1008.1012. ...
- Tire树(字典树)
from:https://www.cnblogs.com/justinh/p/7716421.html Trie,又经常叫前缀树,字典树等等.它有很多变种,如后缀树,Radix Tree/Trie,P ...
随机推荐
- (转) SolrCloud之分布式索引及与Zookeeper的集成
http://blog.csdn.net/ebay/article/details/46549481 作者:Wang, Josh 一.概述 Lucene是一个Java语言编写的利用倒排原理实现的文本检 ...
- Python之操作Excel、异常处理、网络编程
知识补充: 1.falsk模块中一些方法总结 import flask from flask import request,jsonify server = flask.Flask(__name__) ...
- C# SetWindowsHookEx
[DllImport("user32.dll")] static extern IntPtr SetWindowsHookEx(int idHook, keyboardHookPr ...
- jboss 虚拟路径
jboss 虚拟路径 上传文件到服务器时,保存到服务器发布应用外路径.这时,就要通过在jboss配置虚拟路劲以访问. 在standalong.xml里找到 <subsystem xmlns=&q ...
- httpd-vhosts.conf
## VirtualHost example:# Almost any Apache directive may go into a VirtualHost container.# The first ...
- chrome浏览器 快捷键设置
如何设置谷歌浏览器在新窗口中打开链接?如何设置谷歌浏览器在新标签页中打开链接?一.快捷键方式: 1.左键单击 ==> 在当前窗口中打开目标网页. 2.Shift + 左键单击 ==> 在新 ...
- Uncaught TypeError: str.replace is not a function
在做审核页面时,点击审核通过按钮不执行 后来F12控制台查看发现有报错 是因为flisnullandxyzero未执行 然后找出这个方法,此方法为公共方法,将这个方法复制出来 然后使用console. ...
- sysbench基准测试工具
一.简介SysBench是一个模块化的.跨平台.多线程基准测试工具,主要用于评估测试各种不同系统参数下的数据库负载情况.当前功能允许测试的系统参数有:file I/O performance (文件I ...
- Linux之网络文件共享服务(NFS)
概念: NFS:Network File System 网络文件系统,基于内核的文件系统.Sun公司开发,通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件,基于RPC(Remote ...
- 15.most_fields策略进行cross-fields search
主要知识点: cross-fields 的使用场景 cross-fields 使用方法 cross-fields 的缺点 一.cross-fields 的使用场景 cross-fiel ...