ACM
文章平均质量分 74
梁天超
青春如是,年少而已。 青春年少,如是而已
展开
-
辗转相除法GCD求最大公约数
两个整数的最大公约数是能够同时整除它们的最大的正整数。辗转相除法基于如下原理:两个整数的最大公约数等于其中较小的数和两数的相除余数的最大公约数。例如,252和105的最大公约数是21(252 = 21 × 12;105 = 21 × 5);因为252 / 105 = 2余42,所以105和42的最大公约数也是21。在这个过程中,较大的数缩小了,所以继续进行同样的计算可以不断缩小这两个数直至余数变为原创 2013-10-03 16:45:17 · 1773 阅读 · 0 评论 -
动态规划之 <筷子>
描述A 先生有很多双筷子。确切的说应该是很多根,因为筷子的长度不一,很难判断出哪两根是一双的。这天,A 先生家里来了K 个客人,A 先生留下他们吃晚饭。加上A 先生,A夫人和他们的孩子小A,共K+3个人。每人需要用一双筷子。A 先生只好清理了一下筷子,共N 根,长度为T1,T2,T3,……,TN。现在他想用这些筷子组合成K+3 双,使每双的筷子长度差的平方和最小。(怎么不是和最小??这要去问A 先生了,呵呵)原创 2013-11-14 09:28:35 · 2185 阅读 · 0 评论 -
Area of Polycubes 使搜索清晰而简化
A polycube is a solid made by gluing together unit cubes (one unit on each edge) on one or more faces. The figure in the lower-left is not a polycube because some cubes are attached along an edge.For this problem, the polycube will be formed from unit cu原创 2013-12-11 21:01:09 · 1168 阅读 · 0 评论 -
字典树(trie树)模板: Phone List 问题
Given a list of phone numbers, determine if it is consistent in thesense that no number is the prefix of another. Let’s say the phonecatalogue listed these numbers: Emergency 911 Alice 97 625 999 Bob 91 12 54 26In this case, it’s not possible to c原创 2013-12-14 11:18:52 · 1626 阅读 · 0 评论 -
Cuckoo Hashing :二分匹配问题
题目描述DescriptionOne of the most fundamental data structure problems is the dictionary problem: given a set D of words you want to be able to quickly determine if any given query string q is present in the dictionary D or not. Hashing is a well-known solut原创 2013-12-17 20:50:03 · 1672 阅读 · 0 评论 -
拓扑排序解成绩排名问题
描述2013“华为杯”南京邮电大学大学生团体歌唱大赛比赛形式为:大赛分为多轮,每一轮随机选择参赛团体进行两两PK赛。当根据多轮多场的PK赛成绩能够确定排名次序时,大赛结束。我们将问题进行简化,从1开始按递增顺序给每一个参赛团体分配一个整数编号,每个参赛团体在比赛期间表现出的歌唱水平各不相同且稳定不变,每场PK赛成绩必定胜负。给定已记录的多场PK赛成绩,请你根据胜负关系确定大赛是否应该结原创 2014-01-03 14:00:05 · 1414 阅读 · 0 评论 -
黑白棋问题——位运算及广度优先
描述There is a string which consists 0s and 1s only.Each time you can change one digit, with 0 changed to 1, or 1 changed to 0.But when you change the digit, the digits on its left and right is ch原创 2014-01-05 14:12:01 · 1720 阅读 · 0 评论 -
递归 :字典序问题
比较经典的问题描述 在数据加密和数据压缩中常需要对特殊的字符串进行编码,给定的字母表A由26个小写英文字母组成A={a,b,…,z}。该字母表产生的升序字符串是指字符串中字母从左到右出现的次序与字母在字母表中出现的次序相同,且每一个字符最多出现1次。例如,a,b,ab,bc,xyz等字符串都是升序字符串。现在对字母表A产生的所有长度不超过6的升序字符串按照字典序并编码如下: 1原创 2013-12-22 10:57:20 · 1945 阅读 · 0 评论 -
目标函数转化求解Set partitioning问题
述There are some positive integer numbers, and you want to divide them into two nonempty sets (every integer should be in and only in one set) and get a value descripted below:Assume that set A原创 2014-02-20 11:26:47 · 1544 阅读 · 0 评论 -
已知前序遍历和中序遍历,求后序遍历的程序实现
已知两种遍历,求第三种遍历是数据结构的常考题, 现在用编程的方式来实现: 已知前序遍历和中序遍历, 求后序遍历. 虽然这个问题我们用手画画就得出答案了,而编程的话反而不知道如何下手. 实际上,我们都会直观地知道关于遍历的问题肯定使用堆栈或者递归的方式完成. 而递归则更好理解. 后续遍历为 左子树-右子树-根. 而中序遍历中, 每个节点的左右子树都分列两端. 所以我们可原创 2014-04-01 13:17:20 · 2866 阅读 · 0 评论 -
回文字符串
输入一个字符,求出其中最长的回文子串。子串的含义是:在元串中连续出现的字符串片段。回文的含义是:正看和倒看相同,如abba和yyxyy,在判断时候应该忽略所有的空格和标点符号,且忽略大小写,但输出应该保持原样,输入的字符长度不超过5000,且占据单独一行,输出最长的回文子串如有多个,输出,起始位置最靠左的样例输入:Confuciuss say:Mandam,I ˊm Adam.样例输出原创 2014-05-06 15:34:53 · 1087 阅读 · 0 评论 -
后缀数组的构造sa,rank和height数组
智商余额又不足了, 看着后缀树的代码看了一整天还是一知半解,看来暂时只能套模板了。 后缀数组sa[] 保存了一个字符串的所有后缀, 并且按字典序排序。 sa[i] =k 的意思就是 排在第2i个的后缀, 在原串里是以k开头的后缀。 rank[]数组是sa数组的逆运算, rank[k]=i的意思是从位置k开始的后缀在后缀数组中排第i位。height数组保存了 后缀数组中相邻两个后缀的最大原创 2014-04-06 20:34:42 · 3703 阅读 · 0 评论 -
Python编写网页爬虫爬取oj上的代码信息
OJ升级,代码可能会丢失. 所以要事先备份. 一开始傻傻的复制粘贴, 后来实在不能忍, 得益于大潇的启发和聪神的原始代码, 网页爬虫走起! 已经有段时间没看Python, 这次网页爬虫的原始代码是 python2.7版本, 试了一下修改到3.0版本, 要做很多包的更替,感觉比较烦,所以索性就在这个2.7版本上完善了. 首先观赏一下原始代码,我给加了一些注释: # -*-原创 2014-05-14 15:01:42 · 2616 阅读 · 3 评论 -
Missile:双状态DP
题目描述Long , long ago ,country A invented a missile system to destroy the missiles from their enemy . That system can launch only one missile to destroy multiple missiles if the heights of all the原创 2014-08-21 22:56:33 · 1579 阅读 · 0 评论 -
动态规划解 <<考验>>
描述大家知道,黄药师不仅武功高超,而且酷爱音乐和诗歌。看到桃花岛来了个新客人,而且不是靠真武功近来的,就准备为难为难你。他写了一首N行诗句的诗歌,美中不足的是这些诗句并不押韵,黄药师非常想遵循古诗的押韵。诗歌被分为若干段,每段都是四行诗。每一句诗都有一个韵脚,假如A和B表示两种不同的韵脚,每段四行诗的韵脚只可能是 “AABB”, “ABAB”, “ABBA” 和“AAAA”中的一种。黄药师将诗句的韵脚都编了号,具有相同编号的句子代表有相同的韵脚。现在,黄药师想删掉一些句子,使得剩下的都是遵循押韵规则的原创 2013-11-25 15:18:10 · 1359 阅读 · 0 评论 -
catalan 数 标准二维表。 高精度计算。
设n 是一个正整数。2xn的标准2维表是由正整数1,2,…,2n 组成的2xn 数组,该数组的每行从左到右递增,每列从上到下递增。2xn的标准2维表全体记为Tab(n)。例如,当n=3时Tab(3)如下:给定正整数n,计算Tab(n)中2´n的标准2 维表的个数。原创 2013-11-24 12:40:17 · 2083 阅读 · 0 评论 -
二进制枚举+prim buy or build 问题
WWN公司是一家知名的网络公司。最近他们打算在常州建立自己的通信网络。通信网络是一个覆盖n个终端的网络,显然WWN公司的网络必须把这n个节点连通。并且WWN公司希望建造这样一个网络的代价最小。建造这样一个网络,WWN公司有两个选择。第一个是直接架设线路。直接架设一个从节点A(x1,y1)到节点B(x2,y2)的费用是expens=(x1-x2)2+(y1-y2)2.第二个方案就是从小的网络运营商那里购买小型的线路网。现在已知有q个小型线路网已经存在可供选择,第i个线路网连接了ci个节点,然后买下这个小网络原创 2013-11-21 12:38:25 · 2408 阅读 · 0 评论 -
约瑟夫问题.快速求幸存者
问题描述:n个人(编号0~(n-1)),从0开始报数,报到(m-1)的退出,剩下的人继续从0开始报数。求胜利者的编号。 我们知道第一个人(编号一定是m mod n-1) 出列之后,剩下的n-1个人组成了一个新的约瑟夫环(以编号为k=m mod n的人开始): k k+1 k+2 ... n-2, n-1, 0, 1, 2, ... k-2 并且从k开始报0。 现在我原创 2013-10-09 10:09:13 · 1807 阅读 · 1 评论 -
求解多边形面积
每新加入一个点 ,算其与最后一个加入的点 和远点组成的三角新面积.凹的部分算出是负值,所以不必处理 #include #include#include using namespace std;class dian{public: double x; double y;};int main(){ int n,i原创 2013-10-10 10:09:42 · 888 阅读 · 0 评论 -
使用 stl container priority_queue 实现最小堆和最大堆
class node{public: int x;};class node2{public: int x;};bool operator{ return a.x>b.x; }bool operator{ return a.x}priority_queueqmin; priority_queueqmax原创 2013-10-12 09:57:27 · 2109 阅读 · 0 评论 -
使用01字典树解决最大异或问题
问题描述:Keroro来侵略地球之前,曾跟Giroro伍长打赌:“我一个人灭掉整个地球给你看!”.于是Keroro同学真的自己一个人来到地球开始他的侵略行动了。从K隆星出发之前,Keroro从Kururu曹长那儿拿了若干台左手武器{Li}和若干台右手武器{Ri},Keroro需要从{Li}里选一台左手武器,从{Ri}里选一台右手武器,用来组合成可用的恐怖武器。左右手武器组合的规则很简单原创 2013-10-13 12:49:33 · 1982 阅读 · 0 评论 -
回溯法求解最小重量机问题
描述设某一机器由n个部件组成,每一种部件都可以从m个不同的供应商处购得。设wiy 是从供应商j 处购得的部件i的重量,ciy是相应的价格。试设计一个算法,给出总价格不超过c的最小重量机器设计。对于给定的机器部件重量和机器部件价格,编程计算总价格不超过d的最小重量机器设计。原创 2013-10-14 15:34:55 · 1679 阅读 · 0 评论 -
贪心法解登山机器人问题
登山机器人是一个极富挑战性的高技术密集型科学研究项目,它为研究发展多智能体系统和多机器人之间的合作与对抗提供了生动的研究模型。登山机器人可以携带有限的能量。在登山过程中,登山机器人需要消耗一定能量,连续攀登的路程越长,其攀登的速度就越慢。在对n 种不同类型的机器人作性能测试时,测定出每个机器人连续攀登1米,2米,…,k 米,所用的时间。现在要对这n个机器人作综合性能测试,举行机器人接力攀登演习。攀登的总高度为m米。规定每个机器人只能攀登1次,每次至少攀登1 米,最多攀登k 米,而且每个机器人攀登的高度必须是原创 2013-10-19 16:25:52 · 2963 阅读 · 1 评论 -
多元huffman码变形
描述在一个操场的四周摆放着n 堆石子。现要将石子有次序地合并成一堆。规定在合并过程中最多可以有m(k)次选k 堆石子合并成新的一堆,2≤k≤n,合并的费用为新的一堆的石子数。试设计一个算法,计算出将n 堆石子合并成一堆的最小总费用。对于给定n堆石子,编程计算合并成一堆的最小总费用。输入文件的第1 行有1 个正整数n,表示有n 堆石子。第2行有n个数,分别表示每堆石子的个数。第3行有原创 2013-10-20 15:33:43 · 1228 阅读 · 0 评论 -
分治法解信号增强装置问题
描述各种资源传输网络的功能是将始发地的资源通过网络传输到一个或多个目的地。例如,通过石油或者天然气输送管网可以将从油田开采的石油和天然气传送给消费者。 同样,通过高压传输网络可以将发电厂生产的电力传送给用电消费者。为了使问题更具一般性,用术语信号统称网络中传输的资源 (石油,天然气,电力等等)。各种资源传输网络统称为信号传输网络。信号经信号传输网络传输时,需要消耗一定的能量,并导致传输能量原创 2013-10-20 16:12:48 · 1247 阅读 · 0 评论 -
麦森数--大数乘法
麦森数:形如2p-1的素数称为麦森数,这时P一定也是个素数。但反过来不一定,即如果P是个素数。2p-1不一定也是素数。原创 2013-10-30 21:02:14 · 1509 阅读 · 0 评论 -
Decoding简洁解决方案
#include#includeint dif[4][2]={0,1,1,0,0,-1,-1,0};//右,下,左,上。方向是以右下左上循环char map[20][20],str[400],str1[400];int main(){ int r,c,i,j,k,a,b,t,ca,cas,len; scanf("%d",&cas);原创 2013-11-02 12:16:13 · 965 阅读 · 0 评论 -
蜂巢问题的dp解决
问题描述: 一个蜂巢单位为一个六边形, 蜂巢由单位六边形组合而成。 一只小蜜蜂由远点出发,走n步后回到原点,一共有多少种走法?原创 2013-11-04 16:26:52 · 2301 阅读 · 0 评论 -
(数学题) Counting
描述 Given many integers, find out the number of triples (a, b, c) which satisfy a, b, c are co-primed each other or are not co-primed each other. In a triple, (a, b, c) and (b, a, c) are considered as same triple.原创 2013-11-19 19:51:36 · 1667 阅读 · 0 评论 -
动态规划解不包含相同数字的子串个数问题
比赛描述 仙灵女巫露露,对于魔法的热忱可是超出常人,要是发现了什么上古遗留下的魔法,她总是想方设法地获得,然后研究分析。而最近,他又从邪恶小法师维嘉那里获得了一个“奇怪”的魔法卷轴; 这个魔法卷轴上有一大串数字,而且根据卷轴上的描述,这个魔法的威力指数来自于这一串数字中“魔法区间”的数量; 所谓“魔法区间”指的是一段连续的闭区间,且这段区间上的所有数字原创 2014-12-16 21:17:21 · 1681 阅读 · 1 评论