随笔分类 - ACM
摘要:题目题目描述:
输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。
输入:
每个测试案例包括n+1行:
第一行为2个整数n,k(1<=n<=10000),n表示结点的个数,k表示要求的路径和,结点编号从1到n。 接下来有n行。这n行中每行为3个整数vi,leftnode,rightnode,vi表示第i...
阅读全文
摘要:前言又是一道动态规划题目,开始走了弯路,以为是简单的最长公共子序列题目,没深入分析,然后各种两边分别求最长公共子序列,然后就没有然后了题目题目描述:
N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学不交换位置就能排成合唱队形。
合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1, 2, …, K,他们的身高分别为T1, T2, …, TK,
则他们的身高满足T1 < T2 < … < Ti , Ti > Ti+1 > … > TK (1 <= i <= K)。
你的任务是,已知所有N位同学的身高,计算最少需要几
阅读全文
摘要:前言0-1背包问题,动态规划的经典题目,在九度oj上ac将近230道题目后感觉还是动态规划的题目最具有挑战性,因为每个题目你都需要自己描述最优解的结构,自己去递归定义最优解。这个很有难度,但是征服有难度的题目本身就是对自己的提高!问题描述我们有n种物品,物品j的重量为wj,价格为pj。我们假定所有物品的重量和价格都是非负的。背包所能承受的最大重量为W。如果限定每种物品只能选择0个或1个,则问题成为0-1背包问题。思路我们假定w1,...,wn和W都是正整数。我们将在总重量不超过Y的前提下,前j种物品的总价格所能达到的最高定义为A(j, Y).A(j, Y)的递推关系为:A(0, Y) = 0A
阅读全文
摘要:前言这是九度5月份月赛的题目,一道基础的动态规划题目,当时对动态规划理解的不够深入,这之后的2个星期时间,也在有意的学习动态规划的思想,动态规划关键在于思想,然后就是对于题目的分析,这里ac了也记录一下自己的分析过程。题目题目描述:
小明每天都在开源社区上做项目,假设每天他都有很多项目可以选,其中每个项目都有一个开始时间和截止时间,假设做完每个项目后,拿到报酬都是不同的。由于小明马上就要硕士毕业了,面临着买房、买车、给女友买各种包包的鸭梨,但是他的钱包却空空如也,他需要足够的money来充实钱包。万能的网友麻烦你来帮帮小明,如何在最短时间内安排自己手中的项目才能保证赚钱最多(注意:做项目的时候
阅读全文
摘要:前言本来是九度oj是一道三星的acm题目,但是同样在《剑指offer》这本书上有所提及,正好我看的时候发现了一处错误,这里纠正一下概念二叉搜索树(binary search tree),或者是一棵空树,或者是具有下列性质的二叉树:若它的左子树不为空,则左子树上所有结点的值均小于它的根结点的值;若它的右子树不为空,则右子树上所有结点的值均大于它的根节点的值。它的左、右子树也分别为二叉排序树。注意:根据概念我们可以明确的知道,二叉搜索树的左、右子树均可为空。构建二叉搜索树或者是遍历可以参考我之前的博客:http://blog.csdn.net/zinss26914/article/details/
阅读全文
摘要:前言我做八皇后的题目是利用了字符串全排列的思想,递归+回溯,需要再理解全排列作为前提,没理解的同学可以参考这个链接:http://blog.csdn.net/zinss26914/article/details/8939140题目题目描述:
会下国际象棋的人都很清楚:皇后可以在横、竖、斜线上不限步数地吃掉其他棋子。如何将8个皇后放在棋盘上(有8 * 8个方格),使它们谁也不能被吃掉!这就是著名的八皇后问题。 对于某个满足要求的8皇后的摆放方法,定义一个皇后串a与之对应,即a=b1b2...b8,其中bi为相应摆法中第i行皇后所处的列数。已经知道8皇后问题一共有92组解(即92个不同的皇后串).
阅读全文
摘要:科普顾名思义了,英文不差的都可以直译出来,素数环问题,这里把百度百科的词条贴出来科普一下题目题目描述:
A ring is compose of n circles as shown in diagram. Put natural number 1, 2, ..., n into each circle separately, and the sum of numbers in two adjacent circles should be a prime.
Note: the number of first circle should always be 1. 输入:
n (1 < n
阅读全文
摘要:历史这个问题是以弗拉维奥.约瑟夫斯命名的,它是1世纪的一名犹太历史学家。他在自己的日记中写道,他和他的40个战友被罗马军队包围在洞中。他们讨论是自杀还是被俘,最终决定自杀,并以抽签的方式决定谁杀掉谁。约瑟夫斯和另一个人是最后两个留下的人。约瑟夫斯说服那个人,他们向罗马军队投降,不再自杀。约瑟夫斯把他的存活归因于运气或天意,他不知道是哪一个约瑟夫环问题 N个人围成一圈顺序编号,从1号开始按1、2、3......顺序报数,报p者退出圈外,其余的人再从1、2、3开始报数,报p的人再退出圈外,以此类推。 请按退出顺序输出每个退出人的原序号算法思想这里介绍3种算法,两种直观,一种运用数学循环链表...
阅读全文
摘要:前言本来想看道题目直接睡觉,再看他人解答前看到说这道题是北航上机题目,当时做出来的人很少,因此我就按耐不住激动的心情,遇到这种题目,我必须自己ac啊,中间跟一个同学讲了一下git的使用,浪费了一些时间,从调试到ac花费了大约40多分钟吧,走神了一段时间,毕竟开始做题已经晚上1点了,难免精力不集中开始时间:结束时间:ac过程:题目题目描述: 读入数据string[ ],然后读入一个短字符串。要求查找string[ ]中和短字符串的所有匹配,输出行号、匹配字符串。匹配时不区分大小写,并且可以有一个用中括号表示的模式匹配。如“aa[123]bb”,就是说aa1bb、aa2bb、aa3bb都算...
阅读全文
摘要:前言昨晚刚想明白kmp算法,今天当然想找到题目练手,感觉用上kmp反而麻烦了,但是也算对学过的知识进行巩固吧题目题目描述:
给定一个短字符串(不含空格),再给定若干字符串,在这些字符串中删除所含有的短字符串。
输入:
输入只有1组数据。
输入一个短字符串(不含空格),再输入若干字符串直到文件结束为止。
输出:
删除输入的短字符串(不区分大小写)并去掉空格,输出。
样例输入:
in
#include int main()
{ printf(" Hi ");
}
样例输出:
#clude
tma()
{ prtf("Hi");
}
提示:
注:将字符串中的I
阅读全文
摘要:前言打球打的太晚了,衣服还在洗衣机里,随便在九度oj上ac一题,当然难度不超过3星题目题目描述:
阳仔作为OJ的数据管理员,每一周的题目录入都让其很抓狂,因为题目不是他出的,他控制不了出题的速度……在等题目的时候,阳仔又不敢出去打篮球,所以只能在纸上乱涂乱写,这天,阳仔在纸上写下了这样的序列:
1 2 2 3 3 3 4 4 4 4 5 5 5 5 5 6 6 6 6 6 6 ……
即大小为k的数字,正好会在序列中连续重复k次。写到这里,阳仔兴奋了,但是他不知道这种序列叫什么名字,那就暂时叫它jobdu疯狂序列好了。现在阳仔想让你解决一个问题是,假如给你一个整数n,你能说出这个序列中,第n个元
阅读全文
摘要:前言睡觉前禁止自己的胡思乱想,上九度上ac了一道并查集的题目题目题目描述: 欧拉回路是指不令笔离开纸面,可画过图中每条边仅一次,且可以回到起点的一条回路。现给定一个图,问是否存在欧拉回路?
输入: 测试输入包含若干测试用例。每个测试用例的第1行给出两个正整数,分别是节点数N ( 1 < N < 1000 )和边数M;随后的M行对应M条边,每行给出一对正整数,分别是该条边直接连通的两个节点的编号(节点从1到N编号)。当N为0时输入结束。
输出: 每个测试用例的输出占一行,若欧拉回路存在则输出1,否则输出0。
样例输入:
3 3
1 2
1 3
2 3
3 2
1 2
2 ...
阅读全文
摘要:题目题目描述:
有N个比赛队(1<=N<=500),编号依次为1,2,3,。。。。,N进行比赛,比赛结束后,裁判委员会要将所有参赛队伍从前往后依次排名,但现在裁判委员会不能直接获得每个队的比赛成绩,只知道每场比赛的结果,即P1赢P2,用P1,P2表示,排名时P1在P2之前。现在请你编程序确定排名。
输入:
输入有若干组,每组中的第一行为二个数N(1<=N<=500),M;其中N表示队伍的个数,M表示接着有M行的输入数据。接下来的M行数据中,每行也有两个整数P1,P2表示即P1队赢了P2队。
输出:
给出一个符合要求的排名。输出时队伍号之间有空格,最后一名后面没有空格。
阅读全文
摘要:题目题目描述:
给你n个点,m条无向边,每条边都有长度d和花费p,给你起点s终点t,要求输出起点到终点的最短距离及其花费,如果最短距离有多条路线,则输出花费最少的。
输入:
输入n,m,点的编号是1~n,然后是m行,每行4个数 a,b,d,p,表示a和b之间有一条边,且其长度为d,花费为p。最后一行是两个数 s,t;起点s,终点t。n和m为0时输入结束。
(1<n<=1000, 0<m<100000, s != t)
输出:
输出 一行有两个数, 最短距离及其花费。
样例输入:
3 2
1 2 5 6
2 3 4 5
1 3
0 0
样例输出:
9 11思路直接用了Di
阅读全文
摘要:题目题目描述: 某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离。省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可),并要求铺设的公路总长度为最小。请计算最小的公路总长度。
输入: 测试输入包含若干测试用例。每个测试用例的第1行给出村庄数目N ( < 100 );随后的N(N-1)/2行对应村庄间的距离,每行给出一对正整数,分别是两个村庄的编号,以及此两村庄间的距离。为简单起见,村庄从1到N编号。 当N为0时,输入结束,该用例不被处理。
输出: 对每个测试用例,在1行里输出最小的公...
阅读全文

浙公网安备 33010602011771号