自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

WeberXie

勤思,慎勉

  • 博客(55)
  • 收藏
  • 关注

原创 Divide Two Integers

用减法可能会超时,但可以用二分class Solution {public:    int divide(int d1, int d2) {//       d1/d2        if(d1==0)            return 0;        if(d2==1)            return d1;        if(d2==-1)   

2014-06-03 23:04:30 1071

原创 leetcode Reverse Nodes in k-Group

递归一下/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: Li

2014-06-01 12:46:46 1083

原创 leetcode Remove Nth Node From End of List

题目说:Try to do this in one pass只用一遍遍历的话,p1先走n节点,p2再走,等到p1到达链表尾的时候p2正好在倒数第n+1个上面鸟/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode

2014-05-22 00:20:55 899

原创 leetcode 3Sum 3Sum Closest 4Sum

这几个题很典型也是国外一些知名公司经常会问到的题3Sum:排序,避免重复,时间复杂度O(n^2)class Solution {public: vector > threeSum(vector &num) { int len=num.size(); sort(num.begin(),num.begin()+len);

2014-05-21 22:50:48 854

原创 leetcode Longest Common Prefix

找出单词的最长公共前缀class Solution {public: string longestCommonPrefix(vector &strs) { int len=strs.size(); if(len==0) return ""; int length=strs[0].size(),j;

2014-05-19 12:39:54 989

转载 日志结构的合并树 The Log-Structured Merge-Tree

日志结构的合并树 The Log-Structured Merge-Tree近年来,随着互联网数据的日益增长,管理分布式数据需求的日益增加,Bigtable[1]等一系列NoSQL数据库开始涌现。Bigtable是一个分布式的结构化数据存储系统,它被设计用来处理海量数据,其在提供Tablet服务时使用内存中的memtable和GFS[2]中的SSTable来相互配合着来存储数据

2014-05-18 22:28:25 1079

原创 leetcode Integer to Roman

把阿拉伯数字转换成罗马数字

2014-05-15 11:50:38 775

原创 poj 2431 Expedition 贪心+最大堆

当油量不够时从走过的油站中选最大加油量的#include#include#include#includeusing namespace std;#define MAX_N 10005struct node{ int dist,fuel;}t[MAX_N];bool cmp(const node &a,const node &b){ return a.dist<b.dis

2014-04-27 23:39:04 943

原创 poj 1664 放苹果

动态规划解DP问题考虑n的m划分a1+...am=n对于每个ai都有ai>0,那么{ai-1}就对应了n-m的m划分,如果存在ai=0那么就对应了n的m-1划分。综上可得出如下递推关系dp[i][j]=dp[i][j-i]+dp[i-1][j]#include#include#includeusing namespace std;int dp[12][12];int main

2014-04-18 20:13:02 870

原创 poj 1742 Coins

动态规划,多重部分和问题,,数组得要重复利用,不然会MLE。。#include#include#includeusing namespace std;int dp[100000+2];int a[100+2];int c[100+2];int main(){ int n,m; while(scanf("%d %d",&n,&m)&&(n+m)!=0) { for(in

2014-04-18 19:02:07 922

原创 poj Common Subsequence 最长公共子序列

真的很水,,原谅我吧#include#include#include#includeusing namespace std;const int N=1002;int dp[N][N];char a[N],b[N];int main(){ while(scanf("%s %s",a,b)!=EOF) { int n=strlen(a); int m=strlen(b

2014-04-17 19:45:11 798

原创 poj 3624 Charm Bracelet

标准的01背包#include#includeusing namespace std;#define MAX_N 3405int w[MAX_N],d[MAX_N];int dp[12881];int main(){ int n,m; cin>>n>>m; memset(dp,0,sizeof(dp)); for(int i=0;i<n;i++) cin>>w[i]>

2014-04-17 16:46:42 835

原创 poj 3253 Fence Repair

类似Huffman编码,越短的板在二叉树中深度越大如排序后的序列:L1、L2、L3、L4、L5....LN(L1+L2)为最短的两个之后,插入L3、L4、L5....LN中重复上述步骤直至只剩一块板为止#include#include#includeusing namespace std;#define MAX_N 20002typedef long long ll;i

2014-04-17 00:35:29 903

原创 poj 3069Saruman's Army 贪心

#include#include#includeusing namespace std;#define MAX_N 1002int x[MAX_N];int r,n;int main(){ while(cin>>r>>n && r+n != -2) { for(int i=0;i<n;i++) cin>>x[i]; sort(x,x+n); int i=0,a

2014-04-16 23:19:15 909

转载 应届生如何写好简历

昨天写了些应届毕业生简历的常见问题,很多人觉得我太苛刻,觉得对应届生要求有点高;有的觉得看了后还是不会写。那么今天我们就来看看怎么才能做好。需要声明的是我帮不了太多人,只有那些对计算机科学真的有点兴趣的人可能觉得我说的有点用。这里写的东西仅仅是我们的观点,不代表别的公司也这么做或者应该这么做。* 没有必要撒谎写简历最差的策略就是撒谎了。这种欺骗本身就自相矛盾。你到底希望

2014-04-09 17:14:14 1465

原创 zoj2136 最长上升子序列LIS O(NlgN)解法

题目链接:zoj2136讲当前最长上升子序列建一个数组,利用二分查找#includeusing namespace std;const int maxn = 1002;int a[maxn];int find(int *a,int len,int n){ int left = 0,right=len,mid=(left+right)/2; while(left<=rig

2014-04-03 09:59:33 1133

转载 Linux下/proc目录简介

1. /proc目录Linux 内核提供了一种通过 /proc 文件系统,在运行时访问内核内部数据结构、改变内核设置的机制。proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。用户和应用程序可以通过proc得到系统的信息,并可以改变内核的某些参数。由于系统的信息,如进程,是动态改变的,所以用户或应用程序读取proc文

2014-04-02 23:16:39 808

原创 KMP算法

int KMPMatch(char *s,char *p){ int next[100]; int i,j; i=0; j=0; getNext(p,next); while(i<strlen(s)) { if(j==-1||s[i]==p[j]) { i++;

2014-03-06 18:27:20 769

原创 LeetCode Question Difficulty Distribution

转自:LeetCode Question Difficulty Distribution : Sheet1       IDQuestionDiffFreqData StructureAlgorithms  

2014-03-05 16:19:31 1231

原创 linux grep命令

转自:http://www.cnblogs.com/end/archive/2012/02/21/2360965.html1.作用Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。2.格式gre

2014-02-24 20:16:15 858

原创 Topcoder TriviaGame 动态规划

题目“:Problem Statement You and your friends have gotten together for a Trivia night at the local pub. Each question is worth a number of points; the i-th element of poin

2013-11-09 21:22:47 1058

原创 利用运算符重载将结构体排序--uva11729

在国内上uva很慢,还好bnuoj有uva的题,很有爱(⊙o⊙)哦,代码参考自刘汝佳的训练指南题目链接:点击打开链接#include#include#includeusing namespace std;#define N 1002struct Job{ int j,b; bool operator < (const Job& x) const{//运算符重载! re

2013-11-06 19:54:21 1959

原创 servlet中的乱码问题

场合:页面本身有中文的时候解决办法:servlet:resp.setContentType("text/html;charset=gbk");Jsp: 注意:一定要写在PrintWriter out = resp.getWriter();之前场合:解决get方式乱码问题:解决办法:修改server.xmlàURIEncoding="GBK"

2013-10-21 18:33:33 823

原创 单调队列-poj2823

一下对单调队列的讲解来自:http://xuyemin520.is-programmer.com/posts/25964给定一个长度为N的整数数列a(i),i=0,1,...,N-1和窗长度k.要求:      f(i) = max{a(i-k+1),a(i-k+2),..., a(i)},i = 0,1,...,N-1问题的另一种描述就是用一个长度为k的窗在整数数

2013-10-20 18:23:49 1142

原创 Codeforces Round #207 (Div. 2) - C

题目搞懂了,就是优化啊,在 test11 TLE两次,看人家的解法,优化的很精巧#include#includeusing namespace std;#define MN 300005int ans[MN],p[MN];int getl(int x){ int i = x,j; while(x != p[x]){ x = p[x]; } while(i != p

2013-10-16 21:42:31 871

原创 Codeforces Round #206 (Div. 2) - b

题目链接:http://codeforces.com/contest/355/problem/B很水的题,直接计算比大小就行,一开是纠结在分析4种票怎么分配了。。。汗~~~~#include#includeusing namespace std;#define N 300002int a[N],b[N],l[N],r[N],x[N];int main(void){

2013-10-15 22:39:07 772

原创 Markdown 语法说明

概述宗旨Markdown 的目标是实现「易读易写」。可读性,无论如何,都是最重要的。一份使用 Markdown 格式撰写的文件应该可以直接以纯文本发布,并且看起来不会像是由许多标签或是格式指令所构成。Markdown 语法受到一些既有 text-to-HTML 格式的影响,包括Setext、atx、Textile、reStructuredText、Grutatext 和 EtT

2013-09-28 20:27:59 1406

原创 Linux下Markdown的安装及常用语法

安装及使用:在Linux系统中,编辑markdown可以用retext工具:# Debian/Ubuntusudo apt-get install retextretext Release-Notes.md要将markdown文件转换成html文件,可以用discount或python-markdown软件包提供的markdown:# Debian/Ubun

2013-09-28 19:53:42 2846

原创 彻底理解各种排序算法

有个小小的强迫症,总感觉写上转载,使得标题前面是黑色很让人讨厌,但还是要分享过来!转自:排序1、冒泡排序(Bubbler Sort)前面刚说了冒泡排序的坏话,但冒泡排序也有其优点,那就是好理解,稳定,再就是空间复杂度低,不需要额外开辟数组元素的临时保存控件,当然了,编写起来也容易。其算法很简单,就是比较数组相邻的两个值,把大的像泡泡一样“冒”到数组后面去,一共要执行N的平方除以

2013-09-26 22:20:17 1166

原创 Strassen's Subcubic Matrix Multiplication Algorithm

Consider multiplying two 2x2 matrices, as follows:A B * E F = AE+BG AF+BHC D G H CE+DG CF+DHThe obvious way to compute the right side is just to do the 8 multiplies and 4 additions.

2013-09-24 09:00:55 1212

原创 poj 3624 Charm Bracelet 01背包问题

题目链接:poj 3624            这是最基础的背包问题,特点是:每种物品仅有一件,可以选择放或不放。            用子问题定义状态:即F [i, v]表示前i件物品恰放入一个容量为v 的背包可以            获得的最大价值。则其状态转移方程便是:            F [i, v] = max{F [i − 1, v], F [i − 1,

2013-09-15 19:41:14 1990

原创 阿里巴巴招聘研发工程师

岗位描述:       如果你对基础技术感兴趣,你可以参与基础软件的设计、开发和维护,如分布式文件系统、缓存系统、Key/Value存储系统、数据库、Linux操作系统和Java优化等;如果你热衷于高性能分布式技术,你可以参与高性能分布式服务端程序的系统设计,为阿里巴巴的产品提供强有力的后台支持,在海量的网络访问和数据处理中,设计并设施最强大的解决方案;如果你喜欢研究搜索技术,

2013-09-09 18:55:46 1381

原创 浅析最长上升子序列问题

DP算法解最长上升子序列问题,这里介绍两种算法O(n*n)和O(nlgn)    以poj 2533为例。    O(n*n):      令a[i]为序列的第i个元素,d[i]为以元素a[i]结尾的LIS长度      当0      if(a[j] >= a[i])    then d[i] = 1;      if(a[j]       #include#inc

2013-09-08 19:49:08 939

原创 动态规划算法求最大子段和问题

给定由N个整数(可能有负整数)组成的序列a1,a2,...,an ,求该序列形如ai+ai+1+...+aj的子段和的最大值。             当所有整数均为负整数时,定义其最大子段和为0        int MaxSum(int *a, int n){ int sum=0,b=0;for( j=1; j<=n; j++)O(n){ if ( b>

2013-09-08 10:30:20 4139 3

原创 zoj 1730 / poj 1455 Crazy Tea Party

这阵子都没怎么写代码,由于开学,忙于各种琐碎的事情,现在静下来了开始跟着暑假的节奏刷题了。        这道题一开是没看清题目~在寝室刷题就是效率不高。。。        后来才知道,题目意思是,一个环形序列,1minute可以交换相邻的两个位置,问逆序所需的最小时间是多少。        如果不是环形的话那就好办了,就是个冒泡。        非环形时:

2013-09-03 12:37:33 1115

原创 qsort 与 sort 对结构体排序

struct circle{ int begin,end;}circle[10002];typedef struct circle CIR;//qsort的比较函数int cmp( const void *a,const void *b){ return ((CIR*)a)->end - ((CIR*)b)->end;}//sort的比较函数bool cmp1(CIR a,

2013-08-28 20:58:39 3750

原创 zoj 2277 The Gate to Freedom

N^N = X  --->    Nlog10(N) = log10( X ) ---->    X的最高位为 10^( Nlog10(N) - (long long int )Nlog10(N) )的第一个非0位       #include#includeint main(void){ double n; while(scanf("%lf",&n) != EOF

2013-08-16 17:07:56 1096

原创 poj 3984 迷宫问题 bfs

学会这道水题之后我懂得了不少哈,首先水题也能学到不少知识,尤其像我这样刚入门的小菜鸟,能学到一些小技巧。              然后就是可以从别人的代码里学到不一样的思路和想法。       这题就是求最短的路径,首先想到就是用bfs,但是求到最短之后不知道怎么输出了咋办?很着急有木有???       基本的广搜题已经做的挺熟练的,但是这个记录路径还是

2013-08-09 09:54:12 2405

原创 并查集及其应用

并查集是一种树型的数据结构,用于处理一些不相交集合(Disjoint Sets)的合并及查询问题。常常在使用中以森林来表示。           并查集的操作:                 1、查找某元素x所在集合                         首先定义x的父节点为f(x),则查找x所在集合的操作即为查找x节点的祖先。

2013-08-08 15:48:43 1153

原创 ZOJ 1092 Arbitrage Floyd算法

简单的Floyd算法的使用,初始时map对角线上置为1,使用floyd算法处理后只需检查对角线上有没有大于1的,有则赚到了(*^__^*) !   #include#includeint main(void){ int n,t,i,j,k,x,y,count = 1; char c[32][35],temp1[35],temp2[35]; double map[32][32],p

2013-08-06 09:17:40 1152

空空如也

空空如也

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

TA关注的人

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