- 博客(20)
- 资源 (20)
- 问答 (1)
- 收藏
- 关注
原创 POJ 2049
题目大意,在迷宫中找一条出口,题目的本质其实是 BFS+ 队列实现,不懂网上为什么说是 优先队列,我觉得符合条件的才入队,不符合的就不入队,哪来优先级之说。 还有,这道题在 构建图的模型中,对于xa,ya,在输入样例初始化的时候,我始终认为是 当d==1时,初始化xa . 可看了网上许多AC的代码,都是反过来的,好奇怪。 #include #include using namespace st
2016-02-28 14:59:33
1248
原创 POJ 1129
题目大意: 给定一些点,和它们之间的连通关系,要求相邻的点之间信号不同,求出最少需要多少信号? 这道题其实是染色问题,可以参照 图论里面的 四色定理(即只要四种颜色就可以将一幅地图染色,要求是相邻的各块面积颜色不同) 所以这道题最大值就是4 因为此题最多也就26个点,所以暴力搜索dfs,也可以accept #include #include #include using namespac
2016-02-27 15:54:26
702
原创 C++注意点(第二部分)
在C++中,sizeof运算符的作用是返回一个变量或数据类型在内存中所占用的字节数。 用法: sizeof变量名 sizeof(变量类型) 地址是内存单元的编号,而指针则用于存放内存地址。 & 1.表示引用 int &rt; 2.表示取地址运算符 int *pi = &i; 指针: 在引用指针之前一定要对其进行赋值; 赋值为NULL的指针虽然不指向任何
2016-02-25 21:00:07
673
原创 POJ 1033
这是一道关于磁盘管理的题目。 题目大意: 磁盘中有N块簇,F块文件,每个文件分别分布在不同的簇中。默认,顺序查找速度最快。 问的是,怎么调整顺序使得各个文件按照簇的逻辑顺序排列。 举例: 假设原始顺序为: 初始状态是这样的,0表示未占用: 簇号: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
2016-02-25 13:57:32
602
原创 C++注意点(第一部分)
传统的面向过程编程方式都是以具体实现过程为核心,以算法为驱动;而面向对象编程方式是以对象为核心,以消息为驱动。 面向对象程序设计几个基本特征: 封装、继承、多态 封装有利于隐藏对象内部的信息,提高程序的安全性 采用继承机制,便于实现代码重用 采用多态,便于隐藏代码细节,使得代码能够模块化 复合类:一个类的某些属性是某些类的对象
2016-02-24 21:54:41
617
原创 POJ 1011 (经典搜索)
这道题 是 比较经典的 搜索题。 题意: 给出一堆小木棍的长度,需要把它们拼成几根相同的大棍子,求 这些大棍子的最短长度 分析:这道题主要使用,深度搜索+递归,当然这里用到多次剪枝,这对于减小时间复杂度很有效。 #include #include using namespace std; int stick[64]; int used[64]; int len; int n; bool
2016-02-17 22:35:12
1398
原创 POJ 1042
题意: John去钓鱼,在一个单向的很多条湖的路边钓鱼,每条湖每5分钟能钓到的鱼的数量随着时间减少,每条湖之间的行走时间也是不同的,但是固定不变。问的是,给出总的时间h小时,编写算法,求出能钓到最多的鱼的解决方案。 输入:湖的数量,给定的总时间,每条湖头5分钟能钓到的数量,每条湖钓鱼的衰减速率,每两条湖之间的行走时间 输出:每条湖上 钓鱼的时间,以及最大的钓鱼的数量 分析:枚举算法
2016-02-14 22:09:52
552
原创 POJ 1141
题目: 定义合法的括号序列如下: 1 空序列是一个合法的序列 2 如果S是合法的序列,则(S)和[S]也是合法的序列 3 如果A和B是合法的序列,则AB也是合法的序列 例如:下面的都是合法的括号序列 (), [], (()), ([]), ()[], ()[()] 下面的都是非法的括号序列 (, [, ), )(, ([)], ([(] 给定一个由'
2016-02-14 10:28:32
624
原创 POJ 1015
这道题应该来说,比较难,特别是变量的下标 有点多 且比较复杂。 题目的意思是: 给出n组数,每组数有一个P[i],D[i], 求出其中的m组,使得sum(P[i])-sum(D[i])绝对值最大,如果有多个这样的值,取其中sum(P[i])+sum(D[i])最大的一组 分析:算法思想,动态规划 用 V(i) 表示第i组的辩控差 用S(i) 表示第i组的辩控和 用f(j,k)
2016-02-12 14:39:48
588
原创 POJ 2593
题目: 求一个序列中最大的两段不连续子串之和。 很明显,这道题是用动态规划 来解答,主要是 列出状态转移方程 tm[i]代表第i个数结尾的最大子串 sm[i]代表第i个数开头的最大子串 stm[i]代表后面n-i+1个元素的最大值 #include using namespace std; #define MAX 100001 #define max(a,b) a>b?a:b int
2016-02-09 23:12:13
844
原创 POJ 2479 (动态规划)
作为比较经典的算法思想,动态规划恐怕早已深入人心。今天在网上找了一个 题目来练练手。 题目大意: 给出一个 数字序列,求出最大的两个不连续子串之和 。 这道题 看似 就是 最大子序列和 的一个变种。本质都是用 DP 来解决。 首先,将 a[i] 表示第 i 个元素,再建立 三个数组 tm[num],sm[num],stm[num] 含义如下: tm[i] 表示 以第i个元素结尾的最大字
2016-02-09 22:28:18
1219
原创 HDU 1007 (分治递归)
之前做这题用了 讨巧的 方法,竟然也 accept 了,后来举出反例发现 那种解法有问题。 正确解法: 运用分治递归的思想,首先将 所有的点 按照x的大小顺序排好,相同的话,参照y的大小。 然后取中间的 一个点 作为分割线。 这时,结果可能有三种情况,第一,最短的点对 在 分割线 左边;第二,最短点对 在 分割线 右边; 第三,最短点对 跨越了 分割线,一左一右。 分别求出左边 和 右边
2016-02-07 14:33:40
754
原创 程序员必做60题
作为程序员,了解基本的数据结构和算法 是很有必要的。 如果要找题目练习一下自己的 编程能力,下面给出的练习题可以用来 练练手。 POJ 北京大学程序在线评测系统 1.动态规划 2479 2593 1015 1042 1141 2.搜索 1011 1033 1129 2049 205
2016-02-06 15:17:20
1475
原创 HDU 1007
题目大意是这样的: 在坐标轴上给定一些点,求出这些点中距离最近的两个点之间的距离。最后输出的结果是 距离的一半 分析: 只要将这些点按照横坐标从小到大排序,相同的话,按照纵坐标从小到大排序,求出每两点之间最小的距离len1; 然后按照纵坐标从小到大排序,相同的话,按照横坐标从小到大排序,求出每两点之间最小的距离len2; 最终的结果就是 min(l
2016-02-05 13:26:39
801
原创 文件打包和解压缩
*.rar rar程序压缩的文件 *.tar.gz tar打包,gzip程序压缩的文件 1.zip压缩打包程序 zip -r -q -o shiyanlou.zip /home/shiyanlou du -h shiyanlou.zip -r 表示递归打包包含子目录的全部内容 -q 表示安静模式,不向屏幕上输出信息 -o 表示输出文件 使用du命令查看
2016-02-03 13:34:09
981
原创 环境变量与文件查找
declare 可用于创建指定类型的变量(数组) 用”=“号进行赋值运算;使用echo命令和$符号读取变量 例如: declare tmp tmp=hello echo $tmp 环境变量: set 显示当前Shell所有环境变量 env 显示与当前用户相关的环境变量 export 显示从Shell中导出成环境变量的变量 补充:chmod可以为文
2016-02-03 12:37:54
596
原创 Linux目录结构及文件操作
Unix是以目录为主的,Linux也继承了这一优良特性。Linux是以树形目录结构的形式来构建整个系统,可以理解为一个用户可操作系统的骨架。 FHS文件系统层次结构标准 FHS定义了系统中每个 区域的用途、所需要的最小构成的文件和目录同时给出了例外处理和矛盾处理。 FHS定义了两层规范: 1./下面的各个目录应该要放什么文件数据。 /etc应该要放置 设置文件,/bin与/sbi
2016-02-02 16:25:36
700
原创 奇数变成最大的偶数
题目: 给定一个奇数,交换两个数的位置,使它变成最大的偶数 解析: 将奇数的个位数 与 它之前的所有偶数比较,碰到比它小的数替换即可。 如果个位数比所有偶数都小,则把它与 最低位的偶数交换。 #include using namespace std; void swap(int &a,int &b) { int tem
2016-02-01 20:42:09
1267
原创 Vim基本知识
1.普通模式 上下左右键 移动光标; 或者 h 左移、j 下移、k 上移、l 右移 w 移动到下一个单词 b 移动到上一个单词 2.插入模式,按Esc回到普通模式 3.可视模式 4.选择模式 5.命令行模式 执行命令(:)、搜索(/或者?)、过滤命令(!) 6.Ex模式 :visual 终端输入,vim 可以打开编
2016-02-01 19:43:24
885
原创 Linux基本的快捷键
shell 命令行解释器,用于用户交互 和 编写shell脚本(.bat文件) ctrl+c 结束当前进程 ctrl+d 退出终端 ctrl+s 暂停程序,按下任意键继续执行 ctrl+a 将光标移至行开头 ctrl+e 将光标移至行末 “上” 利用历史输入命令 space 翻页 Enter 下一行
2016-02-01 19:38:33
541
暴力音频检测VioAudio数据集.rar
2019-05-28
Voicebox语音处理包
2017-05-25
磁盘调度算法
2016-09-08
黑客与画家
2016-01-27
matlab 数据变量net,不显示内容
2016-01-30
TA创建的收藏夹 TA关注的收藏夹
TA关注的人