03 2017 档案

摘要:题目链接:http://poj.org/problem?id=2376 题目大意:选择一些区间使得能够覆盖1-T中的每一个点,并且区间数最少 题目分析:这道题目很明显可以用贪心法来解决。但题目没有看起来那么简单,有许多的坑。 我的贪心策略如下: 1.将区间按照起点排序,并且保证起点相同的,终点大的排 阅读全文
posted @ 2017-03-31 17:55 deepwzh 阅读(391) 评论(0) 推荐(0) 编辑
摘要:题目链接:http://poj.org/problem?id=3258 题目大意是求删除哪M块石头之后似的石头之间的最短距离最大。 这道题目感觉大致代码写起来不算困难,难点在于边界处理上。我思考边界思考许久,还是没有弄明白为什么这样写正确,另外的写法就不对。 已知的问题数据是: 阅读全文
posted @ 2017-03-30 16:56 deepwzh 阅读(228) 评论(0) 推荐(0) 编辑
摘要:题目链接:http://poj.org/problem?id=2484 这道题目大意是这样的,有n个硬币围成一圈,两个人轮流开始取硬币(假设他们编号从1到n),可以选择取一枚或者取相邻的两枚(相邻是指他们的编号相邻)。在双方都采取最优策略取硬币的情况下,问谁最后会赢。 这道题目我一开始没有什么好的办 阅读全文
posted @ 2017-03-25 21:09 deepwzh 阅读(391) 评论(0) 推荐(0) 编辑
摘要:作者:uuspider链接:https://www.zhihu.com/question/23374078/answer/65352538来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 举一个例子:It's 知乎日报 你看到的unicode字符集是这样的编码表: I 阅读全文
posted @ 2017-03-25 20:44 deepwzh 阅读(289) 评论(0) 推荐(0) 编辑
摘要:在日常的编程中,有这么几种操作还是比较常见的: 把一组数据都赋值成一个数,在一组数据中查找一个数,统计一组数据中符合条件的数等等。 一般的写法可以用循环,没有什么是循环不能搞定的。假如在这里怎么用介绍循环写,估计要被说骗点击率了。。。 首先,对于批量赋值,我们有这样的几个函数可以用 1.memset 阅读全文
posted @ 2017-03-25 17:19 deepwzh 阅读(642) 评论(0) 推荐(0) 编辑
摘要:问题描述 给定一个n*n的棋盘,棋盘中有一些位置不能放皇后。现在要向棋盘中放入n个黑皇后和n个白皇后,使任意的两个黑皇后都不在同一行、同一列或同一条对角线上,任意的两个白皇后都不在同一行、同一列或同一条对角线上。问总共有多少种放法?n小于等于8。 输入格式 输入的第一行为一个整数n,表示棋盘的大小。 阅读全文
posted @ 2017-03-24 21:56 deepwzh 阅读(448) 评论(0) 推荐(0) 编辑
摘要:问题描述 Huffman树在编码中有着广泛的应用。在这里,我们只关心Huffman树的构造过程。 给出一列数{pi}={p0, p1, …, pn-1},用这列数构造Huffman树的过程如下: 1. 找到{pi}中最小的两个数,设为pa和pb,将pa和pb从{pi}中删除掉,然后将它们的和加入到{ 阅读全文
posted @ 2017-03-24 20:21 deepwzh 阅读(654) 评论(0) 推荐(0) 编辑
摘要:首先分析一段代码: #include <bits/c++config.h> #include <ostream> #include <iostream> #include <cstdio> using namespace std; class Node{ int x; public: Node(in 阅读全文
posted @ 2017-03-23 18:28 deepwzh 阅读(324) 评论(0) 推荐(0) 编辑
摘要:Problem F: 时间类的加、减法赋值运算 Time Limit: 3 Sec Memory Limit: 128 MBSubmit: 3801 Solved: 2210[Submit][Status][Web Board] Description 封装一个时间类Time,在类上重载以下运算符, 阅读全文
posted @ 2017-03-14 21:58 deepwzh 阅读(510) 评论(0) 推荐(1) 编辑
摘要:这道题最容易想到的是用朴素的做法,即 每滑动一次,就遍历一次窗口找出最大最小值,这样时间复杂度为O(n*k),由于题目数据比较大,这种做法肯定是超时的。 另外,根据书上的讲解,还可以采用优先队列来求解。用优先队列存储元素下标,根据元素下标找到元素值并进行排序作为优先队列的排序规则。 优先队列的队列首 阅读全文
posted @ 2017-03-13 18:30 deepwzh 阅读(1428) 评论(0) 推荐(0) 编辑
摘要:dp[i]代表是数字i的最多组合数如果i是一个奇数,i的任意一个组合都包含1,所以dp[i] = dp[i-1] 如果i是一个偶数,分两种情况讨论,一种是序列中包含1,因此dp[i]=dp[i-1]一种是序列不包含1,那么序列中的数都是2的倍数,把他们都除以2,序列与i/2序列相同,得到dp[i]=dp[i-1]+dp[i>>1] 1 #include 2 using namespace ... 阅读全文
posted @ 2017-03-12 11:27 deepwzh 阅读(192) 评论(0) 推荐(0) 编辑
摘要:这道题普通做法会发生溢出且会超时,应当用快速幂来求解。 快速幂讲解 阅读全文
posted @ 2017-03-05 21:59 deepwzh 阅读(223) 评论(0) 推荐(0) 编辑
摘要:题目大意就是求在特定规则下的最短路,这个规则包含了消除障碍的操作。用BFS感觉选择消除障碍的时候不同路径会有影响,用DFS比较方便状态的还原(虽然效率比较低),因此这道题目采用DFS来写。 写的第一次提交代码是TLE,原因是忘记总步数>10就应该剪枝的条件。AC代码如下: 阅读全文
posted @ 2017-03-05 08:25 deepwzh 阅读(448) 评论(0) 推荐(0) 编辑
摘要:一. 引言 在算法以及数据结构的实现中,很多地方我们都需要队列(遵循FIFO,先进先出原则)。 为了使用队列,我们可以自己用数组来实现队列,但自己写太麻烦不说,并且还很容易出错。 好在C++的STL(标准模板库)为我们实现了一个强大的队列,它包含在头文件<queue>中。 二. queue a) 构 阅读全文
posted @ 2017-03-03 20:41 deepwzh 阅读(3170) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示