07 2017 档案
摘要:题意: 给定n个立方体的一个顶点坐标和3边长度, 问这些立方体组成的雕塑的表面积和体积, 坐标都是整数,n最大为50, 最大为500, 边长最大也是500。 分析: 继UVa221后又一道离散化 首先先深入理解一下离散化: (转自 http://www.cnblogs.com/jerryRey/p/
阅读全文
摘要:题意: 给定n个圆的 坐标 和半径, 求第一个圆与其他圆相交的面积占第一个圆的面积的多大。 分析: 如果从局部去想, 处理每个圆之间的关系, 求出他们与第一个圆的交集, 这样可能就会十分复杂了。 不妨从总体去想, 因为答案要求的数字并不是十分精确(保留两位小数), 那么我们可以试试随机算法, 想象在
阅读全文
摘要:题意: 给定n个队伍, 然后A房间有a个气球, B房间有b个气球, 然后给出每个队伍所需要的气球数量和到A B房间的距离, 求把气球全部送到每个队伍的最短距离. 分析: 在气球充足的情况下, 那么我们对于每个队伍, 肯定是哪个房间近就取哪个房间的气球。 但是题目中气球的数目有限, 所以很有可能出现某
阅读全文
摘要:题意: 就是裸的最小生成树(MST), 完全图, 边长是实数。 分析: 算是复习一下MST把 方法一: prim 复杂度(n^2) 方法二: kruskal 复杂度(MlogM)
阅读全文
摘要:题意: 给定一篇文章, 文章中有段落, 段落中有句子。 句子只会以'!' , '.' , '?' 结尾, 求出每段中含有与他下面同样是该段落中相同单词数最多的句子, 注意, 单词忽略大小写, 重复的单词只算一个。 题目中关键段: A topic sentence for a paragraph is
阅读全文
摘要:题意: 给定一个固定长度的字符串, 字符串是一个含有前导0的数字, 问这个数字加上多少能构成一个回文字符串。 分析: 其实这题有很多种方法, 方法12是我做完后看别人代码总结的, 方法3是我当时想的一种方法。 方法一: 最直观的想法,从这个数字开始枚举, 知道找到回文字符串为止。 注意 %0'len
阅读全文
摘要:题意: 给定一个n*m的图, 有一个机器人需要从左上角(1,1)到右下角(n,m), 网格中一些格子是空地, 一些格子是障碍, 机器人每次能走4个方向, 但不能连续穿越k(0<= k <= 20)个障碍物, 求最短路径, 如无法到达输出 -1。 分析: 对于空地, 建一个vis数组记录走过的空地,
阅读全文
摘要:题意: 给定一颗n层的二叉树的叶子, 然后给定每层走的方向, 0代表左边, 1代表右边, 求到达的是那一个叶子。 每层有一个编号, 然后n层的编号是打乱的, 但是给的顺序是从1到n。 分析: 先用一个f数组把一开始打乱的顺序存起来, 将他变为有序, 然后之后读取走的方法, 把他先转化为给定的层次顺序
阅读全文
摘要:在vector删除指定元素可用以下语句 : v.erase(remove(v.begin(), v.end(), element), installed.end()); 可将vector中所有值为element的元素删除。 以上转自:http://blog.csdn.net/ozwarld/arti
阅读全文
摘要:题意: 给定一个有重边有自环的无向图,n个点(2 <= n <= 100000), m条边(1 <= m <= 200000), 每条边有一个权值, 求从第一个点到n的最少步数, 如果最少步数相同有多条路径, 那么输出权值字典序最小的一条。 分析: 用BFS解决最短路问题, 可以先从终点BFS, 求
阅读全文
摘要:题意: 输入n(n≤100000)个单词,是否可以把所有这些单词排成一个序列,使得每个单词的第一个字母和上一个单词的最后一个字母相同(例如acm、malform、mouse)。每个单词最 多包含1000个小写字母。输入中可以有重复单词。 分析: 可以看出, 把字母看成顶点(最多26个), 然后单词就
阅读全文
摘要:题意: 给定n个点,与m条边, 给出他们的拓扑排序。 分析: 拓扑排序可以有两种做法, 第一种是dfs, 每次都找到某一个点的终点, 然后加入序列末尾, 正在访问的标记为-1, 访问过的标记为1, 未访问的标记为0 1 #include <bits/stdc++.h> 2 using namespa
阅读全文
摘要:题意: 你有一行盒子,从左到右依次编号为1, 2, 3,…, n。可以执行以下4种指令:1 X Y表示把盒子X移动到盒子Y左边(如果X已经在Y的左边则忽略此指令)。2 X Y表示把盒子X移动到盒子Y右边(如果X已经在Y的右边则忽略此指令)。3 X Y表示交换盒子X和Y的位置。4 表示反转整条链。 分
阅读全文
摘要:题意: 给出后序遍历和先序遍历, 还原一棵树, 然后求出从根节点到叶子的最小路劲和。 分析: 已知后序遍历, 那么后序的最后一个节点就是根节点, 然后在中序中找到这个节点, 它的左边就是左子树, 它的右边就是右子树, 然后递归下去。 技巧是不断的变动[r1,l1] [r2,l2] r1 l1是中序的
阅读全文
摘要:题意: 给定一个天平长度 输入格式为 wl dl wr dr 分别代表天平左边长度,左边重量, 右边长度, 右边重量。 如果重量为0, 说明下面还有一个天平, 递归给出。 样例输入:10 2 0 40 3 0 11 1 1 12 4 4 21 6 3 2 如果天平是左右重量相等的 输出YES 否则输
阅读全文
摘要:题意: 有一个大小为32*32的图像, 它可以描述为一颗四分树, 如下图 注意描述顺序为 2 1 3 4 给出两棵四分树的先序遍历, 求两者合并后, 黑色像素的个数。 分析: 因为本题给的树是一颗完全的树, 所以只需要给出先序遍历, 就能确定整棵树。 我们可以建一个32*32的数组模拟涂色的过程,
阅读全文
摘要:题意: 给定一个H行W列的字符矩阵(H<200, W < 50), 输入的是一个十六进制字符, 代表一行四个相邻的二进制, 1代表像素, 0代表没有像素。 然后要求判断输入的是以下哪些图形,注意图形可以伸缩变换, 但不能拉断。 分析: 因为图形可以伸缩变换, 所以只要关注每个图形的特征, 题目表中的
阅读全文
摘要:题意: 有一个最多9*9个点的迷宫, 给定起点坐标(r0,c0)和终点坐标(rf,cf), 求出最短路径并输出。 分析: 因为多了朝向这个元素, 所以我们bfs的队列元素就是一个三元组(r,c,dir),然后做好输入处理的细节, 这题的关键在于bfs中的路径还原。 其实bfs的过程就是一棵树,如下图
阅读全文
摘要:题意: 给定一颗树, 按层次遍历输出。 分析: 用数组模拟二叉树, bfs即可实现层次遍历
阅读全文
摘要:题意: 输入一行字符,其中包含'[' 和 ‘]’, 意思为键盘上的home 和 end 键, 然后模拟字符在键盘上输入。 输入一行最终的结果 分析: 用数组模拟一个链表, 在链表的头尾插入字母然后输出即可, 方法需要多加练习才能练熟, 其实跟邻接表有点像。 为了方便起见,常常在链表的第一个元素之前放
阅读全文
摘要:题意: 模拟n个程序运行 格式一共有5种:var = constant(赋值);print var(打印);lock;unlock;end, 上述5种语句分别需要t1、t2、t3、t4、t5单位时间 运行态的程序每次最多运行Q个单位时间(称为配额) 一个程序的配额用完之后,把当前语句(如果存在)执行
阅读全文
摘要:题意: 给定一个n个结点的图G和一个结点的排列, 定义结点i的带宽b(i)为i和相邻结点在排列中的最远距离, 所有b(i)的最大值就是这个图的带宽, 给定G, 求让带宽最小的结点排列。 给定的图 n <=8, 字母包含A~Z 上图是两种排列, 图1 各个b(i) 为 6 6 1 4 1 1 6 6
阅读全文
摘要:题意: 给定一个n*n的棋盘, 皇后只能攻击他所在那一列, 左对角线, 右对角线, 求一个所有皇后的不能互相攻击的 solution。 分析: 可以从第一行开始枚举, 然后标记该列和主副对角线, 注意点(i,j)左对角线可以标记为 i+j, 右对角线是 i +(n-j), 用3个标记数组标记即可,
阅读全文
摘要:给出一个有重复元素的数组, 生成他的全排列 解释一下刘汝佳的代码 : 就是这个递归只会考虑相同元素的第一个, 所以与前一个相同的元素应当被忽略, 第一个元素由于没有前面的元素, 所以应当取走。 注意这一行代码: 观察用例 3 1 1 1 有了这行代码 只会输出一个 1 1 1 但没有这行代码 就会输
阅读全文
摘要:题意: 给定正整数k(1<=k <= 10000),找出所有正整数 x>= y, 使得1/k = 1/x + 1/y 分析: 因为 x >= y 所以 1/x <= 1/y 因为 1/x + 1/y = 1/k 所以 1/k <= 2/y 即 y <= 2k 且 y >= k + 1 枚举y算出x即
阅读全文
摘要:题意: 每个学生有一个“睡眠-清醒” 周期, 第i个学生醒Ai分钟睡 Bi分钟, 初始处在他的周期的第Ci分钟, 临睡时会查看全班睡眠人数是否>清醒人数, 是则进入睡眠周期, 不然保持清醒Ai分钟, 问多久后全部学生都清醒 分析: 题目求的是清醒人数, 那么我们可以把清醒人数设为一个变量, 设一个足
阅读全文
摘要:题意: 给出一个黑方的将, 然后 红方有 2 ~ 7 个棋子, 给出摆放位置,问是否已经把黑将将死, 红方已经将军。 分析: 分情况处理, 车 马 炮, 红将情况跟车是一样的。 建一个数组board保存棋局, 然后建一个数组moveable用来算出黑将当前位置能走的格子(1可走, 0不可走, 一开始
阅读全文
摘要:题意: 按如图的顺序给定2个骰子的颜色(只有r、b、g三种颜色) 问2个骰子是否一模一样 如 可表示为“rbgggr” 和 “rggbgr”, 第二个就是绕着Z轴顺时针旋转90度与第一个相同的骰子. 分析: 记录一个错误的做法:并不是只要两面两面互相映射, 如rbrggb 与 rgrgbb, 即使
阅读全文
浙公网安备 33010602011771号