- 博客(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 1120
原创 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 1125
原创 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 942
原创 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 895
原创 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 1034
转载 日志结构的合并树 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 1108
原创 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 982
原创 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 906
原创 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 971
原创 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 843
原创 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 878
原创 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 958
原创 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 954
转载 应届生如何写好简历
昨天写了些应届毕业生简历的常见问题,很多人觉得我太苛刻,觉得对应届生要求有点高;有的觉得看了后还是不会写。那么今天我们就来看看怎么才能做好。需要声明的是我帮不了太多人,只有那些对计算机科学真的有点兴趣的人可能觉得我说的有点用。这里写的东西仅仅是我们的观点,不代表别的公司也这么做或者应该这么做。* 没有必要撒谎写简历最差的策略就是撒谎了。这种欺骗本身就自相矛盾。你到底希望
2014-04-09 17:14:14 1507
原创 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 1174
转载 Linux下/proc目录简介
1. /proc目录Linux 内核提供了一种通过 /proc 文件系统,在运行时访问内核内部数据结构、改变内核设置的机制。proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。用户和应用程序可以通过proc得到系统的信息,并可以改变内核的某些参数。由于系统的信息,如进程,是动态改变的,所以用户或应用程序读取proc文
2014-04-02 23:16:39 841
原创 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 807
原创 LeetCode Question Difficulty Distribution
转自:LeetCode Question Difficulty Distribution : Sheet1 IDQuestionDiffFreqData StructureAlgorithms
2014-03-05 16:19:31 1282
原创 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 894
原创 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 1113
原创 利用运算符重载将结构体排序--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 2000
原创 servlet中的乱码问题
场合:页面本身有中文的时候解决办法:servlet:resp.setContentType("text/html;charset=gbk");Jsp: 注意:一定要写在PrintWriter out = resp.getWriter();之前场合:解决get方式乱码问题:解决办法:修改server.xmlàURIEncoding="GBK"
2013-10-21 18:33:33 860
原创 单调队列-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 1179
原创 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 915
原创 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 814
原创 Markdown 语法说明
概述宗旨Markdown 的目标是实现「易读易写」。可读性,无论如何,都是最重要的。一份使用 Markdown 格式撰写的文件应该可以直接以纯文本发布,并且看起来不会像是由许多标签或是格式指令所构成。Markdown 语法受到一些既有 text-to-HTML 格式的影响,包括Setext、atx、Textile、reStructuredText、Grutatext 和 EtT
2013-09-28 20:27:59 1575
原创 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 2934
原创 彻底理解各种排序算法
有个小小的强迫症,总感觉写上转载,使得标题前面是黑色很让人讨厌,但还是要分享过来!转自:排序1、冒泡排序(Bubbler Sort)前面刚说了冒泡排序的坏话,但冒泡排序也有其优点,那就是好理解,稳定,再就是空间复杂度低,不需要额外开辟数组元素的临时保存控件,当然了,编写起来也容易。其算法很简单,就是比较数组相邻的两个值,把大的像泡泡一样“冒”到数组后面去,一共要执行N的平方除以
2013-09-26 22:20:17 1234
原创 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 1264
原创 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 2042
原创 阿里巴巴招聘研发工程师
岗位描述: 如果你对基础技术感兴趣,你可以参与基础软件的设计、开发和维护,如分布式文件系统、缓存系统、Key/Value存储系统、数据库、Linux操作系统和Java优化等;如果你热衷于高性能分布式技术,你可以参与高性能分布式服务端程序的系统设计,为阿里巴巴的产品提供强有力的后台支持,在海量的网络访问和数据处理中,设计并设施最强大的解决方案;如果你喜欢研究搜索技术,
2013-09-09 18:55:46 1433
原创 浅析最长上升子序列问题
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 976
原创 动态规划算法求最大子段和问题
给定由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 4249 3
原创 zoj 1730 / poj 1455 Crazy Tea Party
这阵子都没怎么写代码,由于开学,忙于各种琐碎的事情,现在静下来了开始跟着暑假的节奏刷题了。 这道题一开是没看清题目~在寝室刷题就是效率不高。。。 后来才知道,题目意思是,一个环形序列,1minute可以交换相邻的两个位置,问逆序所需的最小时间是多少。 如果不是环形的话那就好办了,就是个冒泡。 非环形时:
2013-09-03 12:37:33 1165
原创 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 3799
原创 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 1141
原创 poj 3984 迷宫问题 bfs
学会这道水题之后我懂得了不少哈,首先水题也能学到不少知识,尤其像我这样刚入门的小菜鸟,能学到一些小技巧。 然后就是可以从别人的代码里学到不一样的思路和想法。 这题就是求最短的路径,首先想到就是用bfs,但是求到最短之后不知道怎么输出了咋办?很着急有木有??? 基本的广搜题已经做的挺熟练的,但是这个记录路径还是
2013-08-09 09:54:12 2447
原创 并查集及其应用
并查集是一种树型的数据结构,用于处理一些不相交集合(Disjoint Sets)的合并及查询问题。常常在使用中以森林来表示。 并查集的操作: 1、查找某元素x所在集合 首先定义x的父节点为f(x),则查找x所在集合的操作即为查找x节点的祖先。
2013-08-08 15:48:43 1203
原创 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 1192
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人