C/C++
文章平均质量分 78
_Jason_ZHANG
Undergraduate & Computer Science & Beihang Univ.
github.com/jasonlovescoding
展开
-
24点 - DFS
Time Limit:1000ms Memory Limit: 65535KB在Jason生活的星球上,算术学期末总是考同样的题目:抽四张扑克牌,在1秒内通过四则运算让其结果为24。但是Jason的算术太拙了,总是没办法在1秒内得到正确答案。期末考试就快要到了,但正直的Jason不想靠命运力神抽4张6来通过考试。你能为Jason设计一个24点的算法,好让他不挂原创 2015-12-29 17:18:36 · 827 阅读 · 0 评论 -
Singly Linked List & Destructor - C++ for C Programmers 3.4
/* Update on Oct 7th Finally figured out the reason for the malfunction of str destructor. It is really about pass-by-reference, which means when I call "a.inputName_by_Seq(n2, 10);"(just a原创 2016-02-29 22:27:01 · 563 阅读 · 0 评论 -
POJ 3069 Saruman's Army - 贪心
Saruman's ArmyTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 6578 Accepted: 3355DescriptionSaruman the White must lead his army along a s原创 2016-03-15 14:43:23 · 520 阅读 · 0 评论 -
五子棋危险判断 - 图与连线
这题其实不难,但是纪念一下头一次"信仰提交成功"2333【问题描述】已知两人分别执白棋和黑棋在一个围棋棋盘上下五子棋,若同一颜色的棋子在同一条横行、纵行或斜线上连成5个棋子,则执该颜色棋子的人获胜。编写程序读入某一时刻下棋的状态,并判断是否有人即将获胜,即:同一颜色的棋子在同一条横行、纵列或斜线上连成4个棋子,且该4个棋子的两端至少有一端为空位置。输入的棋盘大小是19×19,用原创 2016-04-26 14:54:14 · 5594 阅读 · 3 评论 -
大数乘法 - 大数作为字符串的C语言操作
【问题描述】编写程序实现两个超长整数(大于等于0,每个最长80位数字)的乘法运算。【输入形式】从键盘分行读入两个超长整数,要考虑输入高位可能为0的情况(如00083),每行的最后都有回车换行。【输出形式】输出只有一行,是两个长整数的乘法运算结果,从高到低依次输出各位数字,各位数字紧密输出。除非结果为0,否则最高位不能为0。【输入样例】1340原创 2016-04-26 14:51:18 · 4527 阅读 · 0 评论 -
BNUOJ49098 神奇的身高 - DP (LIS)
Time Limit: 2000ms Memory Limit: 65536KB有一群小伙伴站成一行,每个人的身高都是非负整数,但是他们站在一起并不和谐。需要将他们的身高变成严格单调递增的正整数序列才是和谐的。现在你有一种神奇的魔法,可以任意改变一个人的身高。现在问题来了,你最少需要改变多少人的身高才能使整个队伍和谐。(改变后的身高必须为整数)Input 有多组测试数据原创 2015-12-29 11:04:10 · 2672 阅读 · 0 评论 -
一个简单的模式字符串查找(支持通配符‘*’)
模式字符串查找(支持通配符‘*’)原创 2016-04-26 14:49:22 · 5276 阅读 · 0 评论 -
猴子选大王 - 约瑟夫问题
【问题描述】要从n只猴子中选出一位大王。它们决定使用下面的方法:n只猴子围成一圈,从1到n顺序编号。从第q只猴子开始,从1到m报数,凡报到m的猴子退出竞选,下一次又从退出的那只猴子的下一只开始从1到m报数,直至剩下的最后一只为大王。请问最后哪只猴子被选为大王。【输入形式】控制台输入三个整数n,m,q。【输出形式】输出最后选为大王的猴子编号。【样例输入】7 4 3【样例输原创 2016-04-26 17:07:31 · 6959 阅读 · 3 评论 -
一元多项式相乘 - 链表的简单应用
【问题描述】编写一个程序实现两个一元多项式相乘。【输入形式】首先输入第一个多项式中系数不为0的项的系数和指数,以一个空格分隔。且该多项式中各项的系数均为0或正整数,系数和最高幂次不会超过int类型的表示范围。对于多项式 anxn +a n-1 x n-1 + … + a1x1 + a0x0 的输入方法如下: an n a n-1 n-1 … a1 1 a0原创 2016-04-26 17:08:47 · 7814 阅读 · 1 评论 -
计算器表达式计算 后缀表达式+树实现 - 逆波兰表示法+调度场算法
这题基本是靠翻维基百科把逆波兰表示法和Dijkstra的调度场算法生搬下来的.. 还要学习一个啊【问题描述】从标准输入中读入一个整数算术运算表达式,如5 - 1 * 2 * 3 + 12 / 2 / 2 = 。计算表达式结果,并输出。要求:1、表达式运算符只有+、-、*、/,表达式末尾的’=’字符表示表达式输入结束,表达式中可能会出现空格;2、表达式中不含圆括号,原创 2016-04-26 14:59:42 · 4318 阅读 · 0 评论 -
CSAPP3e - integer and floating point - Data Lab
CS:APP Data Lab 1原创 2016-04-25 21:44:41 · 2373 阅读 · 0 评论 -
一个带有Kruskal、Prim、Dijkstra算法的图类型 - C++ for C Programmers
C++ for C Programmers 这门课讲了图论中三个重要的算法: Kruskal's Minimum Spanning Tree, Prim's Minimum Spanning Tree, Dijkstra's Shortest Path.这里把三个算法实现后作为成员函数写在一个图的类里,图是用邻接矩阵存储的,支持随机生成。#include #include #inc原创 2016-05-20 11:03:26 · 737 阅读 · 0 评论 -
Huffman编码文件压缩 - Huffman树的建立与编码
【问题描述】编写一程序采用Huffman编码对一个正文文件进行压缩。具体压缩方法如下:1. 对正文文件中字符(换行字符'\'除外,不统计)按出现次数(即频率)进行统计2. 依据字符频率生成相应的Huffman树(未出现的字符不生成)3. 依据Huffman树生成相应字符的Huffman编码4. 依据字符Huffman编码压缩文件(即按照Huffman编码原创 2016-05-20 11:09:26 · 5351 阅读 · 1 评论 -
全排列数的生成
这学期好忙,整个人都变懒了。。coursera上的课程作业只来得及更新到github上,希望自己以后看着注释还能记得怎么做。。。得空把上学期的一些作业放这里。【问题描述】输入整数N( 1 【输入形式】输入整数N。【输出形式】输出有N!行,每行都是从1~N所有整数的一个全排列,各整数之间以空格分隔。各行上的全排列不重复。输出各行遵循“小数优先”原则, 在各全排列中,较小的数尽量靠原创 2016-09-20 13:21:42 · 5392 阅读 · 0 评论 -
银行排队模拟
【问题描述】一个系统模仿另一个系统行为的技术称为模拟,如飞行模拟器。模拟可以用来进行方案论证、人员培训和改进服务。计算机技术常用于模拟系统中。生产者-消费者(Server-Custom)是常见的应用模式,见于银行、食堂、打印机、医院、超等提供服务和使用服务的应用中。这类应用的主要问题是消费者如果等待(排队)时间过长,会引发用户抱怨,影响服务质量;如果提供服务者(服务窗口)过多,将提高运管商原创 2016-09-20 13:24:11 · 5661 阅读 · 2 评论 -
C程序括号匹配检查
【问题描述】编写一程序检查C源程序文件中{}、()等括号是否匹配,并输出第一个检测到的不匹配的括号及所对应括号所在的行号(程序中只有一个括号不匹配)。注意:1. 除了括号可能不匹配外,输入的C源程序无其它语法错误;2. 字符常量、字符串常量及注释中括号不应被处理,注释包括单行注释//和多行/* */注释3. 字符和字符串常量中不包含特殊的转义字符(\',\")原创 2016-09-20 13:25:09 · 8046 阅读 · 0 评论 -
独立路径计算
【问题描述】老张和老王酷爱爬山,每周必爬一次香山。有次两人为从东门到香炉峰共有多少条路径发生争执,于是约定一段时间内谁走过对方没有走过的路线多谁胜。给定一线路图(无向连通图,两顶点之间可能有多条边),编程计算从起始点至终点共有多少条独立路径,并输出相关路径信息。注:独立路径指的是从起点至终点的一条路径中至少有一条边是与别的路径中所不同的,同时路径中不存在环路。 【输入形原创 2016-09-20 13:28:37 · 13936 阅读 · 11 评论 -
(广度优先搜索第一课)迷宫的最短路径 - BFS
给定一个大小为N*M的迷宫,由通道('.')和墙壁('#')组成,其中通道S表示起点,通道G表示终点,每一步移动可以达到上下左右中不是墙壁的位置。试求出起点到终点的最小步数。(本题假定迷宫是有解的)(N,M样例输入:10 10#S######.#......#..#.原创 2016-02-29 22:10:01 · 12778 阅读 · 4 评论 -
POJ 2386 Lake Counting - DFS
Lake CountingTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 26533 Accepted: 13329DescriptionDue to recent rains, water has pooled in vari原创 2016-02-29 20:35:29 · 347 阅读 · 0 评论 -
(深度优先搜索第一课) 统计三角形 - DFS
今天开始选修了计蒜客上的“程序设计竞赛入门”课程,为自己弱渣的算法能力寻找一个提高空间 这是深度优先搜索的第一课,题目是这样描述: 给N根不同长度的木棍,求这些木棍一共能拼出多少个不同的不等边三角形。注意在拼三角形的时候一定要用上所有的N根木棍。不同的定义是至少有一条边的长度不相同;不等边的定义是三条边都不相等。输入格式:第一行为数据组数T,(1接下来每行数据占两行,第一行为木原创 2015-12-20 23:28:34 · 668 阅读 · 0 评论 -
(深度优先搜索第二课) 蒜头学算数 - DFS
题目描述:蒜头的数学实在是太差了,于是老师把他关到小黑屋让他闭门修炼。老师跟他一张纸,上面一排写着1, 2, 3...N这N个数,中间用空白分隔。老师让他在空白处填上加号或者减号。他让蒜头君求出一共有多少种加运算符的方法使得整个表达式的值为0,并输出所有的方案。比如N=7时,1 2 3 4 5 6 7排成一排,一种插入符号的方案为1+2-3+4-5-6+7=0。是不是很有趣,快来帮蒜头君解出这题吧原创 2015-12-20 23:52:20 · 572 阅读 · 0 评论 -
OJ3RD 1181 删数问题 - 贪心算法
链接:http://acm.buaa.edu.cn/problem/1181/之前怎么也搞不明白错在哪了,结果发现居然是一个条件打错了....... 泪崩T^T给定n位数要求删除s个数,问最大的结果,要求首位不能为0. 贪心法则:因为高位更重要所以从左往右找,第一位比较特殊,因为不能是零,往后找s个数求其中不为0的最小值,如果比第一位还要小就删到让那个最小值代替第一位;只要s原创 2015-12-22 20:50:20 · 2031 阅读 · 0 评论 -
OJ3RD 1120 已经没有什么好怕的了 - 贪心算法
链接:http://acm.buaa.edu.cn/problem/1120/贪心规则:每次都打离自己最近的那个,就酱#include#include#includeusing namespace std;int n, k, d;int x[1001] = { 0 };int main(){ while (~scanf("%d %d %d", &n, &k,原创 2015-12-22 20:51:40 · 561 阅读 · 0 评论 -
Tyvj P1059 过河问题 - DP&状态压缩
在河上有一座独木桥,一只青蛙想沿着独木桥从河的一侧跳到另一侧。在桥上有一些石子,青蛙很讨厌踩在这些石子上。由于桥的长度和青蛙一次跳过的距离都是正整数,我们可以把独木桥上青蛙可能到达的点看成数轴上的一串整点:0,1,……,L(其中L是桥的长度)原创 2015-12-24 20:03:07 · 1433 阅读 · 0 评论 -
OJ3RD 1132 哈弗曼编码 - 贪心算法&哈夫曼树
链接:http://acm.buaa.edu.cn/problem/1132/因为数据比较小就没怎么做优化 顺便学习了一下哈夫曼编码...照着它说的把哈夫曼树立起来,然后报告文件大小就行了..另外发现gcc有个怪脾气,struct内变量不能简单地像parent=-1这样初始赋值,而是要用如下代码中方法写一个构造函数这和vs上有区别,vs 上前者是能通过的,但是gcc上会报com原创 2015-12-22 20:54:23 · 911 阅读 · 0 评论 -
(并查集第一课) 冗余关系 - 树/森林
1000ms时间限制65536K内存限制蒜头最近在沉迷小说,尤其是人物关系复杂的言情小说。它看到的人物关系描述得很的麻烦的时候觉得非常蒜疼,尤其是人物关系里有冗余的时候。什么是冗余关系呢?这篇小说里有n句描述人物关系的句子,描述了n个人的关系。每条句子的定义是这样的: XY 它的意思是:X认识Y,Y也认识X我们认为小说中的人物原创 2015-12-25 16:07:38 · 654 阅读 · 0 评论 -
POJ 2828 Buy Tickets - Segment Tree
Railway tickets were difficult to buy around the Lunar New Year in China, so we must get up early and join a long queue…The Lunar New Year was approaching, but unluckily the Little Cat still had schedules going here and there. Now, he had to travel by tr原创 2015-12-25 23:25:44 · 425 阅读 · 0 评论 -
Dijkstra's Shortest Path - C++ for C Programmers 2.5
课程来自:https://class.coursera.org/cplusplus4c-002/lecture这节课讲述的是Dijkstra最短路径算法的具体实现。Dijkstra最短路径算法是贪心算法的一个实例,给定一个无向图,出发点s以及目的点t,要求s到t的最短路径。核心步骤是:每次都选取离s最近的且没有被关闭的点将其关闭。数组约定: dist[i]表示i号点到s点的最短距原创 2015-12-26 10:45:42 · 484 阅读 · 0 评论 -
Tyvj P1005 采药 - DP 0/1背包问题
辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师。为此,他想拜附近最有威望的医师为师。医师为了判断他的资质,给他出了一个难题。医师把他带到一个到处都是草药的山洞里对他说:“孩子,这个山洞里有一些不同的草药,采每一株都需要一些时间,每一株也有它自身的价值。我会给你一段时间,在这段时间里,你可以采到一些草药。如果你是一个聪明的孩子,你应该可以让采到的草药的总价值最大。” 如果你是辰辰,你能完成这个任务吗?原创 2015-12-26 18:47:04 · 782 阅读 · 0 评论 -
OJ3RD 1157 合并相邻数字 - DP
题目描述给你 n 个数字每次可以合并相邻的两个数字,即为这两个数字的和代替他们原来的位置,这种操作耗费的代价为合并的两个数字之和求最终将一串数组合并成为一个数字消耗的最小代价。输入多组测试数据。每组输入数据有两行第一行为一个整数 n(1≤n≤100),表示 n 个数第二行为空格隔开的n个整数a1…an,表示数字大小(1输出对于每组数据,输出一行,原创 2015-12-26 19:20:32 · 2095 阅读 · 0 评论 -
noip 2000年 乘积最大 - DP
这是学习DP时接触的一道题,当时忘记发了,现在补发一下【题目描述】今年是国际数学联盟确定的“2000——世界数学年”,又恰逢我国著名数学家华罗庚先 生诞辰90周年。在华罗庚先生的家乡江苏金坛,组织了一场别开生面的数学智力竞赛的活动,你的一个好朋友XZ也有幸得以参加。活动中,主持人给所有参加活动的选手出了这样一道题目: 设有一个长度N的数字串,要求选手使用K个乘号将它分成K+1个原创 2016-03-01 23:21:14 · 671 阅读 · 0 评论 -
POJ 1328 Radar Installation - 贪心算法
Assume the coasting is an infinite straight line. Land is in one side of coasting, sea in the other. Each small island is a point locating in the sea side. And any radar installation, locating on the coasting, can only cover d distance, so an island in the原创 2016-01-14 19:35:16 · 437 阅读 · 0 评论 -
三字符字典内的序号与字符串互查 - 进制转换
SIGMA={a,b,c} SIGMA* is based on SIGMA with these rules:1. SIGMA ⊆ SIGMA*2. if s1∈SIGMA*, s2∈ SIGMA*, then s1s2∈SIGMA*3. Any element of SIGMA* can be formed within finite application of r原创 2016-03-11 11:43:25 · 500 阅读 · 0 评论 -
POJ 3617 Best Cow Line - 贪心
Best Cow LineTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 16160 Accepted: 4559DescriptionFJ is about to take his N (1 ≤ N ≤ 2,000) cows原创 2016-03-12 20:53:00 · 414 阅读 · 0 评论 -
北京地铁乘坐路线查询
【问题描述】编写一个程序实现北京地铁最短乘坐(站)线路查询,输入为起始站名和目的站名,输出为从起始站到目的站的最短乘坐站换乘线路。注:1. 要求采用Dijkstra算法实现;2)本题在实际测试时对数据文件进行了调整,使得输入的两站间只有一条最短路径。【输入形式】文件bgstations.txt为数据文件(可从课程网站中课程信息处下载),包含了北京地铁的线路及车站信息。其格式如下原创 2016-09-20 13:30:24 · 9277 阅读 · 2 评论