自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

转载 逆序对问题的另一种经典解法:归并排序

逆序对问题: 在树状数组的应用中已经对逆序对问题进行了一次解答。 下面说明另一种经典解法:归并排序#include <iostream>#include <stdio.h>using namespace std;int num[1005];int temp[1005];int ans;int merge_sort(int s, int e){ if(s == e) // 返回

2016-05-30 10:18:40 396

转载 (学习笔记)从引用参数谈到左右值

关键点1: 非常量引用的初始值必须为左值! 什么是左值? 能放在等号左边的值? 关键点2: 左值是可以对其取地址的值!这是一个区分左值和右值的便捷方法。 这意味着,左值是一个存储在内存中的某个存储单元的数据,该数据的值是可以被改变的! 这也就是为什么“非常量的”引用值必须是左值的原因了!!!看下面的题目: 有下面一个类声明:class A{ public: i

2016-05-29 21:36:07 815

转载 树状数组及其应用(2)

上一篇Blog讲述了树状数组的基本性质以及最典型应用:单点更新与区间求职 本文将给出树状数组的另外两种应用: (1)区间更新与单点求值! (2)求逆序对!首先,来回顾一下什么是单点更新与区间求值:在该应用中,现状数组的值实际上是存储了简单数组中某一个区间范围内的所有元素的和:C[4] = A[4]+C[3]+ C[2] = A[1]+A[2]+A[3]+A[4]在这样的情况下,点更新和区

2016-05-27 20:45:18 540 1

原创 树状数组与其应用(Python实现)(1)

数组-树状数组如果程序需要维护一个数组的**前缀和**,S[i] = a[0]+ a[1] + …… + a[i-1]. 那么一旦数组中的一个元素 a[k]发生改变,则S[k+1] …… S[N] 都会发生变化(N是数组长度)。最坏情况下,前缀和的更新需要O(N)时间,当n很大而数组数据又经常变化时,程序的运行效率就会变得很低。对于该类问题,运用**树状数组**是一个不错的选择(另一种方法是**线段

2016-05-26 15:28:02 2770

转载 整理一下常用的Linux命令(1)(未完待续)

cat 和 morecat: 作用:连接并显示指定的一个或者多个文件的有关信息 使用方式:cat[选项]文件1 文件2 … -n:由第1行开始对所有输出的行号编号 -b:和-n一样不过对于空白行不编号 列子:cat -n hello.c hello1.cmore: 作用:类似cat,不过会以一页一页的显示方便使用者一页页阅读 使用方法:more [选项] 文件名 例子:more

2016-05-25 15:22:45 365

翻译 KMP算法,Next跳转表的应用(1)

题目: 定义一个字符串间的运算符 “*”: a=’abc’; b = “def” -> a*b = “abcdef”; a^0 = “” (空字符串) a^(n+1) = a*a^n 现输入一系列的字符串,求对于输入的字符串s,是否存在一个s的子串a,使得 s = a^n; 若存在,求出最小长度的a,以及对应的n的值,此时n应该达到最大值。分析: 首先,在最不理想的状态下: s = s

2016-05-24 10:38:52 723

原创 使用Python语言写一个简单的KMP模式匹配算法实现

KMP算法简介 KMP算法,是由Knuth,Morris,Pratt共同提出的模式匹配算法,其对于任何模式和目标序列,都可以在线性时间内(O(m+n):m和n分别为模式字符串与主串的长度)完成匹配查找,而不会发生退化,是一个非常优秀的模式匹配算法。 KMP模式匹配的关键点在于该算法会根据模式字符串生成一个Next跳转表。在进行匹配时,一旦发生不匹配,算法并是将模式串移动1位,再从头开始匹配,而是

2016-05-23 17:03:20 2226

转载 [转载]巧用二进制实现0/1状态的枚举

0/1枚举问题 假设有n个杯子,每个杯子里都装有不同的数量的钱,你可以任意的选择其中的任意数量个杯子带走,请问你有多少种不同收获结果? 思路 每一个杯子都有选择或者不选择两种状态,在不考虑复杂度的情况下,可以进行2^n次枚举,获取每一种情况下的结果! 那么如何实现对2^n中情况下的枚举呢???? 考虑,对于数 0 ~2^n-1,任意两个不同的数的二进制表示都是不同的,他们每一位的0或1可以

2016-05-04 19:40:45 778 1

转载 输入输出流

预定义流类的对象与通用的流运算符 (1)cin (2)cout (3)cerr是ostream类对象,在标准输出设备上显示错误信息(不带缓冲,立即显示)输入输出流 ostream 和 ofstream istream 和 ifstream fstream 定义文件输出流对象fstream outfile;//定义文件流并初始化//fs

2016-05-03 23:35:43 459

翻译 动态规划-问题示例与解题思路(采药问题 - nefu19)

题目: 有一个药圃中种了一些药材,采摘不同药材需要不同的时间,可以获得不同的收益,问在给定时间T内,采摘药材可以获得的最高的收益! * 输入: 第一行输入两个整数T和M,分别为给定时间和药材的数量;第2至第M+1行输入药材的采摘时间t和价值* eg: 70 3 71 100 69 1 1 2 输出: 3解题思路:设想在给定的时间t中,用了t1时间来采摘一定的药材

2016-05-03 20:02:47 666

转载 [编程题]确定两串乱序同构的几种解答方式

题干:给定两个字符串,请编写程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。这里规定大小写为不同字符,且考虑字符串重点空格。 给定一个string stringA和一个string stringB,请返回一个bool,代表两串是否重新排列后可相同。保证两串的长度都小于等于5000。 测试样例: “This is nowcoder”,”is This nowcoder” 返回:

2016-05-02 19:31:33 507

原创 First Blog!

c/c++中的输入输出getline() cin>> cin.ignore()字符串的比较_stricmp() #include

2016-05-02 18:43:48 317

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除