ACM-古老的密码(排序qsort)】的更多相关文章

古老的密码 题目描述:给定两个长度一样且不超过100的字符串,判断是否能把其中一个字符串的各个字母重排,之后对26个字母做一个一一映射,使得两个字符串相同例如,JWPUDJSTVP重排后可以得到WJDUPSJPVT,之后把每个字母映射到它的前面一个字母,得到VICTORIOUS,输入两个字符串,输出YES或者NO题目分析:因为字母可以重排映射(不一定往前映射),所以每个字母的位置并不重要,重要的是每个字母出现的次数①统计两个字符串每个字母出现的次数,得到两个数组cnt1[26],cnt2[26]…
古罗马帝国与各部门有一个强有力的政府系统,包括一个秘密服务部门.重要的文件以加密的形式发送防止窃听.在那个时代最流行的密码被称为替代密码和置换密码.例如,应用替代密码,改变所有字母“A”到“Y”字母表中的下一个字母(注:“Z”变成“A”),如:“VICTORIOUS”得到信息是“WJDUPSJPVT”.置换密码适用于一些置换到信息的信件.例如,应用置换密码(2,1,5,4,3,7,6,10,9,8),按这个顺序,重新对“VICTORIOUS”排列,就可以得到置换后的信息“IVOTCIRSUO”.…
前情:因平常写代码是常将比较函数弄混(写好了排序还要确认一下-.-!),还是写篇博客,方便以后查阅 C语言qsort函数对int类型数组排序: #include "stdio.h" #include "stdlib.h" #define N 1005 int a[N]; //此比较函数让数组从小到大排列 int cmp(const void *a,const void *b){ return *(int *)a-*(int *)b; } int main() { i…
题目链接:http://ac.jobdu.com/problem.php?pid=1099 详解链接:https://github.com/zpfbuaa/JobduInCPlusPlus 参考代码: // // 1099 后缀子串排序.cpp // Jobdu // // Created by PengFei_Zheng on 05/05/2017. // Copyright © 2017 PengFei_Zheng. All rights reserved. // #include <std…
绝对值排序 Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other)Total Submission(s) : 39   Accepted Submission(s) : 28Problem Description输入n(n<=100)个整数,按照绝对值从大到小排序后输出.题目保证对于每一个测试实例,所有的数的绝对值都不相等. Input输入数据有多组,每组占一行,每行的第一个数字为n,接着是…
绝对值排序 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 30411    Accepted Submission(s): 15002 Problem Description输入n(n<=100)个整数,按照绝对值从大到小排序后输出.题目保证对于每一个测试实例,所有的数的绝对值都不相等. Input输入数据有多组,每组占一行,每行的第一…
qsort函数在在stdlib.h中. 函数原型 void qsort(void *base, size_t nitems, size_t size, int (*compar)(const void *, const void*)) 参数 base -- 这就是指针的数组的第一个元素进行排序 nitems -- 这是由基部指向的数组中的元素数目 size -- 这是在数组中的每个元素的大小(以字节为单位) compar -- 这个函数比较两个元素 返回值:不返回任何值 缺点:对于有多个重复值的…
难点依旧是题意....需要反向构图+去重+看题 POJ3687-Labeling Balls 题意:1-N编号的球,输出满足给定约束的按原编号排列的重量序列,如果有多组答案,则输出编号最小的Ball重量最轻,若依旧多组则输出编号次小的Ball重量最轻的方案. 题解:在看懂题意后,再开始做会省很多时间...曲解题意还真是人类的本能啊. 为了完成单向关系排序,需要用到拓扑排序: 为了符合编号最小的重量最轻...的题意,需要用到反向拓扑排序: 输入可能会有重复的关系,因此需要判重: 输出需要按原编号输…
两道经典的同类型拓扑排序+DFS问题,第二题较第一题简单,其中的难点在于字典序输出+建立单向无环图,另外理解题意是最难的难点,没有之一... POJ1128(ZOJ1083)-Frame Stacking 题意:每个图片由同一字母组成的边框表示,每个图片的字母都不同: 在一个最多30*30的区域放置这些图片,问底层向顶层叠加的图片次序,多选时按字典序输出 注:每个图片的四边都会有字符显示,其中顶点显示两边. 题解:题意的理解是难点,题目对图片的范围确定说得有点含糊不清,博主一开始就被出现的五张图…
两道拓扑排序问题的范例,用拓扑排序解决的实质是一个单向关系问题 POJ1094(ZOJ1060)-Sortng It All Out 题意简单,但需要考虑的地方很多,因此很容易将code写繁琐了,会给力求code精简的强迫症患者一个警醒- - 题意:给出m组逻辑关系式,求n个字母间的排序,分排序成功-排序矛盾-不能确定三种情况输出相应语句 题解:拓扑排序,访问入度为0的结点,邻接点入度-1,然后继续访问入度为0的结点...直到访问完成为止 需要注意的地方在于三种情况根据最早确定的情况来输出,例如…