单点时限: 2.0 sec

内存限制: 256 MB

易位构词 (anagram),指将一个单词中的字母重新排列,原单词中的每个字母都出现有且仅有一次。例如 “unce” 可以被易位构词成 “ecnu”。在某些情况下,要求重排而成的依然是一个单词,但本题没有这种要求,因为我们根本没有词典。

我们所感兴趣的是,有些单词中的字母进行适当的重排后,可以使得构成的单词每个对应的位置上字母都不一样。例如 “unce” 和 “ecnu”,就有 “u” ≠ “e”, “n” ≠ “c”, “c” ≠ “n”, “e” ≠ “u”。现在给出一个单词,问是否存在这样一个重排。

输入格式
一行一个单词 s (1≤|s|≤105)。单词完全由 26 个小写英文字母构成。

输出格式
输出一个单词。如果有多解,输出任意解。如果不存在,输出 impossible。

样例
input
unce
output
ecnu
input
aaaaaa
output
impossible

/*
思路:先考虑字符串有序的情况,比如是 aaabcc,只要将字符串右移 3 位,变成 bccaaa。那么对于无序的情况,我们可以通过排序让它有序,做完之后再按照原先字符位置排回去。
显然最多的字母出现次数大于一半的情况是不行的。否则就将每个字母的位置和字母绑定一下,按字母序对结构体进行排序。然后以字符频率最多右移后,按原来位置派回去。即:s[c[i].num]=c[(i+Max)%len].c
*/
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
struct C {char c;int num;
};
bool cmp(C a,C b)
{return a.c<b.c;
}
int main() {int flag[26]= {0};string s;cin>>s;int len=s.size();C c[len];int Max=0;for(int i=0; i<len; i++) {flag[s[i]-'a']++;c[i].c=s[i];c[i].num=i;Max=max(Max,flag[s[i]-'a']);if(Max>s.size()/2){cout<<"impossible"<<endl;return 0;}}sort(c,c+len,cmp);for(int i=0; i<len; i++)s[c[i].num]=c[(i+Max)%len].c;//移位x 按原来位置排列cout<<s;
}

3451. 易位构词相关推荐

  1. 易位构词EOJ3451【字符串】【思维题】【模拟】

    http://acm.ecnu.edu.cn/problem/3451/ 官方题解: 我们可以先考虑字符串有序的情况,比如是 aaabcc,我们只要将字符串右移 3 位,变成 bccaaa,就做完了. ...

  2. 学习笔记CB006:依存句法、LTP、n元语法模型、N-最短路径分词法、由字构词分词法、图论、概率论...

    2019独角兽企业重金招聘Python工程师标准>>> 依存句法分析,法国语言学家L.Tesniere1959年提出.句法,句子规则,句子成分组织规则.依存句法,成分间依赖关系.依赖 ...

  3. 语言学 —— 中文的构词与规律

    1. 构词 如下图,上下两组词,上面的一组词具有下面一组词不具备的特性: 上面一组词可以构成 AABB 的结构,而下面的一组词不可以: 反反复复,高高兴兴,磨磨蹭蹭,说说笑笑,许许多多: 但是请问,这 ...

  4. 古文构词之法、造词之法

    君子:君之子,公子:公之子: 帮衬: 帮者,如鞋之有帮: 衬者,如衣之有衬: 0. 从单字到复字 文言文与白话文的区别,我们很容易凭语感感受出来.可能我们最直观的一个感觉就是,文言文难以理解,文言文简 ...

  5. 计算机英语构词法,计算机专业英语的构词方法

    计算机专业英语的构词方法 在计算机英语中专业词汇的记忆过程中,掌握充足的词汇量直接影响学生的学习效果,因此,找到行之有效的方法是提高计算机英语学习成效的关键.下面是小编搜集整理的相关内容的论文,欢迎大 ...

  6. 计算机英语构词法,计算机专业英语的构词方法论文

    计算机专业英语的构词方法论文 摘要:计算机专业英语的翻译涉及汉.英两种语言和计算机专业的相关知识,是词汇.句子.段落.文章的有机结合.词汇是其中最基本的部分,掌握好各部分的特点和翻译方法,对正确理解和 ...

  7. 计算机英语构词法,【计算机专业论文】计算机专业英语的构词方法(共2969字)

    摘要:计算机专业英语的翻译涉及汉.英两种语言和计算机专业的相关知识,是词汇.句子.段落.文章的有机结合.词汇是其中最基本的部分,掌握好各部分的特点和翻译方法,对正确理解和文本翻译将有很大帮助. 关键词 ...

  8. 计算机英语领域有哪些构词法,计算机专业英语的构词方法(共2969字).doc

    计算机专业英语的构词方法(共2969字) 计算机专业英语的构词方法(共2969字) 摘要:计算机专业英语的翻译涉及汉.英两种语言和计算机专业的相关知识,是词汇.句子.段落.文章的有机结合.词汇是其中最 ...

  9. 淘宝如何选词打造黄金标题?构词规则是什么?

    淘宝商品标题的组合和优化,一直是一个常见的话题.然而,商家希望获得更多的搜索流量,这是不可避免的.如果你想获得更多的搜索流量,首先,我们的宝贝需要一个高质量的标题.下面的编辑将介绍淘宝如何选择文字来创 ...

最新文章

  1. yd的拔钉子之路之 POI 2017
  2. 【LCT】旅游(P1505)
  3. 关于Zookeeper来实现分布式锁的几个问题
  4. LeetCode(804)——唯一摩尔斯密码词(JavaScript)
  5. aardio中获取网络图片经GDI处理后保存到本地
  6. 我对未来技术趋势的一些看法
  7. 295.数据流的中位数
  8. 01.Mirth Connect源码编译
  9. new pad不能用usb充电的解决方法
  10. 安装Solidworks 2018出现可执行文件未成功安装的解决方法 PreReqs\VCRedist10\vcredist_x86.exe
  11. android svc编解码,SVC(可分层视频编解码)技术详解
  12. 关于瑞星杀毒软件无法完全卸载、自动重装的无奈,与相应的解决办法
  13. Python3之基础语法
  14. js逆向破解 —— 懂车帝视频链接
  15. 数字化进阶在即,智慧医院建设迎来黄金期-2020爱分析·中国智慧医院行业趋势报告
  16. 逻辑左移、逻辑右移、算术左移、算术右移区别
  17. PDF电子书如何一键添加书签
  18. QVGA/HVGA/WVGA/FWVGA分辨率屏含义及大小
  19. CSS基础- 3.14 定位练习-弹出层
  20. python hadoop wordcount_在Hadoop上用Python实现WordCount

热门文章

  1. What's the AOP?
  2. ios 下拉菜单Menu
  3. WinForm 随手记
  4. java+上传文件夹
  5. 健身装备有哪些推荐?健身运动装备品牌排行榜
  6. Java+Swing+MySQL机票预订和管理系统
  7. Java Web基础面试题
  8. 一,银行软件测试工作总结
  9. 移动端iOS中input输入框搜索框软键盘出现换行而不是搜索
  10. mac下 iterm+Zsh+Oh My Zsh+tmux 配置方案