上一页 1 ··· 79 80 81 82 83
摘要: n个人围成一圈从1开始报数,报到m的人出圈,直到剩最后一个人为止。编程输出出圈顺序。 这道题用循环数组模拟的话就比较麻烦,因为有人出圈后就要将他后面的人向前挪一个单位,或者开一个vis数组标记,没出圈的人为0,出圈为1。但这两种方法都比较麻烦,我们需要一个动态的线性结构来表示每一个人,因此就想到了链 阅读全文
posted @ 2018-01-21 15:54 mrclr 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 【问题描述】 从键盘读入一个后缀表达式(字符串),只含有0-9组成的运算数及加(+)、减(—)、乘(*)、除(/)四种运算符。每个运算数之间用一个空格隔开,不需要判断给你的表达式是否合法。以@作为结束标志。 将数字存入栈中,遇到符号就计算栈顶和它下面的一个数并将得到的新得数存入栈。 1 #inclu 阅读全文
posted @ 2018-01-21 15:28 mrclr 阅读(398) 评论(0) 推荐(0) 编辑
摘要: 【问题描述】 输入一行字符串,以 '@' 结束。判断其中的括号是否匹配。若匹配则输出YES;否则输出NO。 很显然,这道题用栈模拟最简单(水题)。遇 '(' 进栈,遇 ')' 退栈。最后若栈空,则匹配;否则不匹配。 1 #include<cstdio> 2 #include<iostream> 3 阅读全文
posted @ 2018-01-21 15:20 mrclr 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 这个就是链表储存结构。 这只是一种链表,即单向链表。还有双向链表,单项循环链表,双向循环链表。 一个链表由无数个结点组成,每一个结点由数据域(用来储存数据)和指针域(用来储存下一个节点的位置),可以把链表想成一个锁链,那么指针域就是连接两个结点之间的链子 所以为了表示这种结构,这么写 1 struc 阅读全文
posted @ 2018-01-20 16:23 mrclr 阅读(432) 评论(0) 推荐(0) 编辑
摘要: 单源最短路径 题目描述 如题,给出一个有向图,请输出从某一点出发到所有点的最短路径长度。 输入输出格式 输入格式: 第一行包含三个整数N、M、S,分别表示点的个数、有向边的个数、出发点的编号。 接下来M行每行包含三个整数Fi、Gi、Wi,分别表示第i条有向边的出发点、目标点和长度。 输出格式: 一行 阅读全文
posted @ 2017-12-30 19:11 mrclr 阅读(717) 评论(0) 推荐(1) 编辑
摘要: 并查集主要是用来查找图中的节点是否连通。 思路:若想求两点是否连通,只用判断两点所在的树的根节点是否相同。若相同则连通,否则不连通。 写法就比如说若编号为1的结点能连到2,2能连到3,那么1和2就都连到3。就是不断降低树的深度。像下图一样 主要代码 1 int p[1005]; //p[i]表示节点 阅读全文
posted @ 2017-12-30 19:02 mrclr 阅读(239) 评论(0) 推荐(0) 编辑
摘要: 最长公共子序列 例:求两个字符串最长公共子序列长度。如a[] = {"abcedf"}, b[] = {"abtrenf},则最长公共子序列为abef,长度为4 伪代码: 代码 这是子序列的一个最基本的问题,从这个问题可以衍生出很多相关的子序列问题。 最长回文子序列例:有一个字符串,求最少删去几个字 阅读全文
posted @ 2017-12-26 20:14 mrclr 阅读(304) 评论(0) 推荐(0) 编辑
摘要: 01背包 这是最简单的一种背包,因为对于每一件物品都只有放和不放两种情况,故叫01背包。所以状态转换方程dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - c[i]] + v[i]);dp[i][j]指有i个物品,在j个空间中能存放的最大价值dp[i - 1][j] 阅读全文
posted @ 2017-12-26 20:07 mrclr 阅读(256) 评论(0) 推荐(0) 编辑
摘要: 【问题描述】上体育课的时候,小蛮的老师经常带着同学们一起做游戏。这次,老师带着同学们一起做传球游戏。游戏规则是这样的:n 个同学站成一个圆圈,其中的一个同学手里拿着一个球,当老师吹哨子时开始传球,每个同学可以把球传给自己左右的两个同学中的一个(左右任意),当老师再次吹哨子时,传球停止,此时,拿着球没 阅读全文
posted @ 2017-12-25 22:17 mrclr 阅读(551) 评论(0) 推荐(1) 编辑
上一页 1 ··· 79 80 81 82 83