Ancient Cipher

UVA - 1339

题目传送门

解决方法:模拟一下转换过程即可。

AC代码:

#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cmath>
#include <cstdlib>
#include <cstring>
#include <map>
#include <stack>
#include <queue>
#include <vector>
#include <bitset>
#include <set>
#include <utility>
#include <sstream>
#include <iomanip>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
#define inf 0x3f3f3f3f
#define rep(i,l,r) for(int i=l;i<=r;i++)
#define lep(i,l,r) for(int i=l;i>=r;i--)
#define ms(arr) memset(arr,0,sizeof(arr))
//priority_queue<int,vector<int> ,greater<int> >q;
const int maxn = (int)1e5 + 5;
const ll mod = 1e9+7;
int main()
{#ifndef ONLINE_JUDGEfreopen("in.txt", "r", stdin);#endif//freopen("out.txt", "w", stdout);ios::sync_with_stdio(0),cin.tie(0);string s1,s2;while(cin>>s1>>s2){int len1=s1.size();int len2=s2.size();if(len1!=len2){cout<<"NO"<<endl;continue;}map<char,int> ss1; ss1.clear();map<char,int> ss2; ss2.clear();multiset<int> num1; num1.clear();multiset<int> num2; num2.clear();rep(i,0,len1-1) ss1[s1[i]]++;rep(i,0,len2-1) ss2[s2[i]]++;bool ju=false;for(char c='A';c<='Z';c++) {num1.insert(ss1[c]);num2.insert(ss2[c]);}multiset<int>::iterator ite1=num1.begin();multiset<int>::iterator ite2=num2.begin();for(;ite1!=num1.end();ite1++,ite2++) if(*ite1!=*ite2) ju=true;if(ju) cout<<"NO"<<endl;else cout<<"YES"<<endl;}return 0;
}

UVA - 1339 ​​​​​​​Ancient Cipher相关推荐

  1. (精讲)UVA - 1339 Ancient Cipher 刘汝佳紫书题单(算法竞赛入门经典)

    仔细读题并且对比样例可以发现,字母的替换和换元的规律是不同的,所以不能用模拟法将原来的字符串找到进行比对,所以要从替换换元前后的特点来看. 替换: 替换前后的两个字母集合可以看作是一个映射: 例如 H ...

  2. 水题 UVA 1586 - Ancient Cipher化学式分子量计算

    原题见:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=106424#overview 题目要求,根据所给化学量与原子量计算化学式的相对分子 ...

  3. 《算法竞赛入门经典》 例题 4-1 古老的密码(Ancient Cipher) UVa 1339

    题目描述 给定两个长度相同且不超过100的字符串,判断是否能把其中一个字符串的各个字母重排,然后对26个字母做一个一一映射,使得两个字符串相同. 例如,JWPUDJSTVP重排后可以得到WJDUPSJ ...

  4. UVa1339 Ancient Cipher(贪心算法)

    问题:有一个混合加密算法,通过替换和排列将原字符串加密成另外一个字符串.给出两个字符串,问是否可以从原串转为另外一串 思路: 因为是通过文字替换后,替换前后的字符计数是不变的.而通过排列方式只是改变了 ...

  5. Ancient Cipher C++题解

    Ancient Cipher C++题解 题目 Ancient Roman empire had a strong government system with various departments ...

  6. UVA1339 古老的密码 Ancient Cipher 排序

    UVA1339 古老的密码 Ancient Cipher 题目描述 古罗马帝国有一个拥有各种部门的强大政府组织.其中一个部门就是保密服务部门.为了保险起见,在省与省之间传递的重要文件中的大写字母是加密 ...

  7. Ancient Cipher UVA - 1339 古老的密码

    题目链接 给定两个长度相同且不超过100的字符串,判断是否能把其中一个字符串的各个字母重排,然后对26个字母做一个一一映射,使得两个字符串相同.例如,JWPUDJSTVP重排后可以得到WJDUPSJP ...

  8. 例题 4-1 古老的密码(Ancient Cipher) UVa 1339

    题目:古老的密码 题目描述: 给定两个长度一样且不超过100的字符串,判断是否能把其中一个字符串的各个字母重排,之后对26个字母做一个一一映射,使得两个字符串相同 例如,JWPUDJSTVP重排后可以 ...

  9. UVa 1339,紫书P73,词频

    题目链接:https://uva.onlinejudge.org/external/13/1339.pdf 紫书P73 解题报告: #include <stdio.h> #include ...

最新文章

  1. linux c++ 目录操作,C++文件及文件夹操作整理(代码示例)
  2. zabbix 监控 tomcat/jvm性能
  3. 招不到电子工程师,这锅谁来背?
  4. mysql权限层级体系_MySQL权限体系介绍
  5. 浅谈消息队列的原理及优势
  6. DevExpreess汉化使用方法及汉化包
  7. HashMap遍历方式
  8. DZY Loves Graph
  9. oracle 表或视图不存在
  10. HNUCM-1322:调酒壶里的酸奶
  11. nginx 查看当前的连接数
  12. MySQL(9)-----多表创建及描述表关系(需求)
  13. unity 反编译 step1 disUnity
  14. python平稳性检验程序_用 Python 检验时间序列的平稳性
  15. 判断四个点是否可以构成矩形(优雅的解法!!!)
  16. js外链跳转_给网站外链进行重定向跳转
  17. “挂羊头卖狗肉”的宇宙学谭
  18. 大数据_03【大数据基础知识】
  19. 快速上手Ubuntu之安装常用软件篇——打造一个满足基本娱乐办公的Ubuntu
  20. ucache灾备云报价_UCache云灾备体系介绍

热门文章

  1. qt中记录数据的一次接收处理方法
  2. QGraphicsView加入到布局,所在的窗口变大,视图和场景都变大,使场景中的矩形也变大
  3. linux wine 性能,Wine 1.9.16 发布,改善 GDI 性能
  4. 大学计算机课第二章内容总结,第四周市政系《大学计算机基础》课程总结
  5. win10打印机终结点映射器_用了就回不去?微软官方免费“外挂”,让win10好用到飞起...
  6. php传输的多个id集中为一条记录,如何将多个ID应用于Mysql中的一条记录?
  7. influxdb无法实现关联表_InfluxDb专业术语
  8. 单片机串口通信学号显示_触摸屏与单片机串口通信测试
  9. java自定义变量解析,Thymeleaf内置对象、定义变量、URL参数及标签自定义属性
  10. 七桥问题c语言程序数据结构,数据结构与算法学习——图论