- 博客(154)
- 资源 (1)
- 收藏
- 关注

原创 POJ题目分类
献给有志于认真学习算法的同学!!!POJ上的一些水题(可用来练手和增加自信)(poj3299,poj2159,poj2739,poj1083,poj2262,poj1503,poj3006,poj2255,poj3094)初期:一.基本算法: (1)枚举. (poj1753,poj2965) (2)贪心(poj1328,poj2109,poj2586)
2012-01-22 19:01:24
698
原创 LeetCode Sum Root to Leaf Numbers
Given a binary tree containing digits from 0-9 only, each root-to-leaf path could represent a number.An example is the root-to-leaf path 1->2->3 which represents the number 123.Find the tota
2014-07-21 14:19:07
759
原创 LeetCode Palindrome Partitioning
Given a string s, partition s such that every substring of the partition is a palindrome.Return all possible palindrome partitioning of s.For example, given s = "aab",Return[ ["aa"
2014-07-21 14:16:51
643
原创 LeetCode Combinations
Given two integers n and k, return all possible combinations of k numbers out of 1 ... n.For example,If n = 4 and k = 2, a solution is:[ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4],]
2014-07-21 14:14:21
694
原创 LeetCode Single Number
Given an array of integers, every element appears twice except for one. Find that single one.Note:Your algorithm should have a linear runtime complexity. Could you implement it without using e
2014-07-21 11:09:48
579
原创 LeetCode Same Tree
Given two binary trees, write a function to check if they are equal or not.Two binary trees are considered equal if they are structurally identical and the nodes have the same value.判断
2014-07-21 11:02:49
590
原创 LeetCode Sort List
Sort a linked list in O(n log n) time using constant space complexity.对链表进行排序,要求时间复杂度为
2014-07-21 10:47:03
553
原创 LeetCode Convert Sorted List to Binary Search Tree
Given a singly linked list where elements are sorted in ascending order, convert it to a height balanced BST.把有序链表转换为
2014-07-21 10:40:04
622
原创 LeetCode Linked List Cycle II
Given a linked list, return the node where the cycle begins. If there is no cycle, return null.Follow up:Can you solve it without using extra space?
2014-07-21 10:38:00
582
原创 uva 270 Lining Up
给出一系列二位坐标上的点,统计最多有多少个点在同一条直线上,暴力枚举n^3#include #include struct Line { int no_slope; double k; double i_x; double i_y; //b};struct Point { double x; double y;};const double E = 1e-6;bool
2013-11-25 16:24:58
808
原创 uva 231 Testing the CATCHER
题目很长,其实就是个最长单调子序列的问题。#include int data[1000];int dp[1000];int get_max(int a, int b) { if (a>b) return a; else return b;}int main() { int n; int i,j,tmp; int case_ctr=0; int flag=0; w
2013-11-25 16:22:33
833
原创 uva 190 Circle Through Three Points
计算几何的题目,三点确定一个圆。#include #include struct Line { int no_slope; double k; double i_x; double i_y;};struct Point { double x; double y;};const double E = 1e-5;bool double_cmp(double a, doub
2013-11-25 16:20:58
991
原创 uva 147 Dollars
完全背包问题,输出为方案总数。#include #include const int SIZE=11;int items[SIZE]={2000,1000,400,200,100,40,20,10,4,2,1};int total = 6010;long long dp[6010];int main() { double m; int i,j; memset
2013-11-25 15:31:22
703
原创 uva 122 Trees on the level
题目要求按层次输出数的各个节点,其实只要对输入的数据做个排序就可以了。#include using namespace std;#include #include #include struct Node { string v; string path;};Node nodes[300];set v_set;set p_set;int get_(string s) {
2013-11-22 13:19:27
1667
原创 uva 120 Stacks of Flapjacks
模拟题#include #include #include using namespace std;int ori[40];int sorted[40];int data[40];int n;vector result;bool is_sorted() { int i; for (i=0;i<n-1;i++) { if (data[i]>data[i+1]) r
2013-11-22 13:17:25
708
原创 UVA 111 History Grading
最长公共子序列#include #include int correct[30];int stu[30];int dp[30][30]; int get_max(int a, int b) { if (a>b) return a; else return b;}int main() { int n,i,j; int tmp; scanf("%d",&n);
2013-11-22 13:14:40
785
原创 UVA 108 Maximum Sum
最大子矩阵和,转化为一维最大字串和解决#include #include int n;int data[120][120];int column_sum[120];int max_sum[120];void set_column_sum(int r1, int r2) { memset(column_sum,0,sizeof(column_sum)); int i,
2013-11-22 13:12:58
828
原创 UVA 103 Stacking Boxes
记忆化搜索#include #include #include #include using namespace std;struct Box { int index; vector dimensions;}; // 判断b2是否可以包含b1 bool cmp(const Box& b1, const Box& b2) { int i; for (i=0;i<b1.di
2013-11-22 13:07:02
784
原创 UVA 101 The Blocks Problem
直接模拟四个操作#include using namespace std;#include #include vector data[30];int n;void move_onto(int a, int b) { int row_a, row_b; int i, j; if (a==b) return; for (i=0;i<n;i++) { for (j=0;j
2013-11-22 13:05:21
760
原创 URAL 1022 Genealogical Tree
拓扑排序#include using namespace std;#include #include int n;int topology[120][120];vector result;bool zoro_out_degree(int index) {// bool flag = true; for (int i = 1;i <= n; i++) { if (topol
2013-11-22 13:04:06
791
原创 URAL 1014 Product of Digits
给定一个整数N,找出最小的正整数Q,使得Q的各位数的积等于N。直接深搜#include using namespace std;#include #include int flag;vector result;void dfs(int num) { if (flag==1) return; if (num < 10) { result.push_back(num);
2013-11-22 13:02:29
1059
原创 URAL 1005 Stone Pile
给出一堆石头,要求将石头分成两堆,是得两堆石头的和的差值最小。转化为01背包问题求解,设sum为所有石头的权值和,则背包容量为sum/2。#include #include int w[30];int dp[1000020];int get_max(int a, int b) { if(a>=b) return a; else return b;}int main
2013-11-22 12:59:41
1813
原创 Sicily 1211 商人的宣传
Floyd算法#include #include #include int road[120][120];long long result[120][120];int main() { int n,m,l; int x,y,q; int i,j,k; while (scanf("%d",&n)!=EOF) { scanf("%d%d",
2013-11-22 12:52:35
1568
原创 Sicily 1034 Forest
广搜找森林的深度和宽度#include #include #include #include using namespace std;int is_visited[110];int forest[110][110];int all_level_width[110];int flag;int n;int depth, width;vector roots;void add
2013-11-22 12:51:10
1813
原创 Sicily 1158 Pick numbers
广搜找权值最小的路径#include #include #include using namespace std;int matrix[12][12];int n,m;struct Node { int row, col; int num;};int BFS() { deque q; Node tmp; Node next; tm
2013-11-22 12:47:28
822
原创 Sicily 1346 金明的预算方案
依赖背包,转为01背包+分组背包#include #include #include using namespace std;int dp[3220];struct Item { int id; int v,p;};int n,m;Item items[70];vector add_items[70];int add_items_dp[70][3220];
2013-11-22 12:43:53
1673
原创 Sicily 1750 运动会
分组背包问题#include #include using namespace std;#include #include int p,n;int dp[120][1200];struct Item { int energy; int award;};int get_max(int a, int b) { if (a>b) return
2013-11-22 12:39:31
1182
原创 Sicily 1077 Cash Machine
多重背包问题#include #include #include using namespace std;int dp[100010];vector items;int get_max(int a, int b) { if (a>b) return a; else return b;}int main() { int to
2013-11-22 12:38:10
809
原创 Sicily 1099 Packing Passengers
欧几里得解线性方程#include #include long long Extended_Euclid(long long a,long long b,long long& x,long long& y) { if(b==0){ x=1; y=0; return a; } long long d=Extended_E
2013-11-22 11:34:00
869
原创 Sicily 1140 国王的遗产
贪心,主要卡在划分树的子树上。#include using namespace std;#include #include #include #include #include vector tree[30002];int node_ctr[30002];int n,k;vector result;int set_node_ctr(int root) { if (n
2013-11-22 11:32:00
1633
原创 Sicily 1048 Inverso
按照题意广搜,注意输入"wwwwwwwww"时输出11就可以了。#include using namespace std;#include #include #include #include deque q;int parent[512];int parent_step[512];int flip1(bitset b) { b.flip(9-1); b.fl
2013-11-22 11:30:09
1016
原创 Sicily 1135 飞越原野
广度优先搜索,三维数组判重#include #include #include using namespace std;struct Node { int x,y,p;};char matrix[120][120];//at (x,y) with z powerint visited[120][120][120];int n,m,d;int dir[4][2]={{
2013-11-22 11:19:36
1731
原创 Sicily 2014 Dairy Queen
完全背包#include #include int dp[320];int n,c;int coins[10];int main() { int i,j; while (scanf("%d",&n)!=EOF) { scanf("%d",&c); for (i=0;i<c;i++) scanf("%d"
2013-11-22 11:17:46
1298
原创 Sicily 1685 Missile
DP,最长单调子序列的变形。#include int dp[1010][2];int nums[1010];int get_max(int a, int b) { if (a>b) return a; else return b;}int main() { int i,j,n; int ans; scanf("%d",&n); while (n!=0) { f
2013-11-22 11:14:10
822
原创 More Effective C++
Item M1:指针和引用的区别引用必须总是指向某个对象,任何情况下都不能使用指向空值的引用,不存在指向空值的引用意味着使用引用的代码效率比使用指针高,因为使用引用之前不需要测试引用的合法性。指针可以被重新赋值指向另一个不同的对象,引用则一直指向初始化时指向的对象,以后都不能改变。string s1("nancy");string s2("clancy");string &rs =
2012-12-12 20:06:50
595
原创 ArchLinux上搭建Twitter Storm平台
主机上安装的是64位的Arch系统,相关的CPU信息和内存信息如下:4 Intel(R) Core(TM) i5-2500K CPU @ 3.30GHzMemTotal: 16322984 kBMemFree: 14513576 kBBuffers: 136332 kBCached: 1393720 kB基本依赖
2012-10-28 14:42:20
2370
转载 centos的twitter storm安装和storm-start的本地运行
这里介绍一下storm的基本安装和不用lein的storm-starter运行方法。一. Storm及相关软件安装1. 安装python2.7.2============================# wget http://www.python.org/ftp/python/2.7.2/Python-2.7.2.tgz# tar zxvf Python-2.7
2012-10-10 23:11:11
2420
转载 NoSQL:列存储数据库之HBase
Hbase是bigtable的开源山寨版本。是建立的hdfs之上,提供高可靠性、高性能、列存储、可伸缩、实时读写的数据库系统。 它介于nosql和RDBMS之间,仅能通过主键(row key)和主键的range来检索数据,仅支持单行事务(可通过hive支持来实现多表join等复杂操作)。主要用来存储非结构化和半结构化的松散数据。 与hadoop一样,Hbase目标主要依靠横向扩
2012-09-25 14:09:48
2468
转载 从Hadoop框架与MapReduce模式中谈海量数据处理(淘宝技术架构)
从hadoop框架与MapReduce模式中谈海量数据处理前言 几周前,当我最初听到,以致后来初次接触Hadoop与MapReduce这两个东西,我便稍显兴奋,觉得它们很是神秘,而神秘的东西常能勾起我的兴趣,在看过介绍它们的文章或论文之后,觉得Hadoop是一项富有趣味和挑战性的技术,且它还牵扯到了一个我更加感兴趣的话题:海量数据处理。 由此,最近凡是空
2012-09-22 00:02:29
1137
转载 动态规划时间规整简介入门
在日常的生活中我们最经常使用的距离毫无疑问应该是欧式距离,但是对于一些特殊情况,欧氏距离存在着其很明显的缺陷,比如说时间序列,举个比较简单的例子,序列A:1,1,1,10,2,3,序列B:1,1,1,2,10,3,如果用欧氏距离,也就是distance[i][j]=(b[j]-a[i])*(b[j]-a[i])来计算的话,总的距离和应该是128,应该说这个距离是非常大的,而实际上这个序列的图像是十
2012-09-17 11:16:40
9809
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人