自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 问答 (2)
  • 收藏
  • 关注

原创 [LeetCode] Find Minimum in Rotated Sorted Array

Suppose a sorted array is rotated at some pivot unknown to you beforehand.(i.e., 0 1 2 4 5 6 7 might become 4 5 6 7 0 1 2).Find the minimum element.You may assume no duplicate exists in the arr...

2014-10-17 17:19:44 124

原创 [LeetCode]Maximum Product Subarray

 这题如果没有负数和0,答案就很简单了,所有数的乘积。有负数和0就要复杂一些。先考虑只有正数和负数而没有 0 的情况:负数是偶数个。答案也很简单,所有数的乘积。负数是奇数个。那就要枚举这个负数位置,将序列分成两部分,取乘积大的那部分。然后再考虑数据中有 0 的情况,这时我们可以将整个序列以 0 进行分割成多个子序列,每个子序列的处理和情况 1 一样。...

2014-09-24 13:53:15 127

使用MethodInterceptor实现AOP

1. 先写出业务对象接口及实现业务对象。 public interface Interface { public void hello();}   这里写俩个实现。public class InterfaceImpl implements Interface { /** * @see com.alipay.aop.Business...

2011-08-25 11:13:06 273

原创 菜单级联简单例子

<%@ page contentType="text/html; charset=GBK"%><html><head><title>下拉列表联动</title></head><body bgcolor="#ffffff"> <tab

2011-05-06 18:19:11 137

linux下读取日志文件上传到服务器

日志文件会不断的增加,这个程序能上传这不断增加的日志文件到服务器,以便服务器分析。#include <sys/socket.h>#include <netinet/in.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include &lt...

2011-04-28 14:19:34 388

原创 [ZJU/ZOJ][2859][Matrix Searching][二维fRMQ]

#include <stdio.h>#include <stdlib.h>#include <string.h>#define min(a,b) ((a)<(b)?(a):(b))#define max(a,b) ((a)>(b)?(a):(b))int const N= 302;int mat[N][N], n, q...

2010-09-17 13:10:05 93

原创 [HNOI2008][玩具装箱toy][斜率优化]

#include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>using namespace std;int const N= 50010;int n, L;typedef long long LL;LL dp[N], sum[...

2010-08-06 13:55:59 115

原创 [HDU][3045][Picnic Cows][斜率优化]

#include <cstdio>#include <cstdlib>#include <algorithm>using namespace std;#define min(a,b) ( (a)< (b)? (a): (b) )int n, m;int const N= 400100;typedef long long LL...

2010-08-05 10:42:23 107

Kingsoft西山居笔试试题

一.填空题:1.      Char szTest[]=”12345\t\n\0abcd\0”;则 strlen(szTest)值为____, sizeof(szTest)值为___2.      Int anTest[5][10]; int n1=&anTest[4]- &anTest[10], n2= &anTest[3][1]- &amp...

2010-06-21 11:53:18 727

原创 [HDU][3415][Max Sum of Max-K-sub-sequence][线段树]

原题意思是求一个不超过 k 的连续序列的和的最大值。枚举连续序列的起点 i, 然后在 [i, i+k] 区间找一个最大值,更新答案。 #include <stdio.h>#include <stdlib.h>#include <string.h>#define max(a,b) ( (a)> (b)? (a): (b) )#...

2010-06-05 17:03:40 75

原创 [HDU][3416][Marriage Match IV][网络流]

先求出最短路径,然后用最短路径上的边构建一个新图,在新图上求最小割。#include <iostream>#include <queue>#include <cstdio>#include <cstdlib>#include <cstring>#include <vector>using n...

2010-06-05 17:00:27 93

原创 [ZOJ/ZJU][3190][Resource Archiver][AC自动机]

给你 n 个串,和 m 个病毒串。要把这 n 个串连起来来,可以重叠,但不能包含 m 个病毒串中的任意一个。求把 n 个串连起来的最小长度。#include <iostream>#include <bitset>#include <cstdio>#include <cstdlib>#include <queue>...

2010-05-28 23:07:06 120

原创 [ZJOI2010]network 网络扩容

给定一张有向图,每条边都有一个容量C和一个扩容费用W。这里扩容费用是指将容量扩大1所需的费用。求: 1、 在不扩容的情况下,1到N的最大流; 2、 将1到N的最大流增加K所需的最小扩容费用。  求出最大流后,残余网络的流量不变,费用改为 0. 对原图的每一条边,对应增加一条流量为 k,费用为 w 的边,再增加一个源,源到 1 的流量为 k,费用为 0。求最小费用最大流,即为第二问答案。...

2010-05-27 17:36:08 98

原创 [AHOI2009][Mincut 最小割]

判断边是否在某个最小割集中 以及 判断边是否为最小割的必需边。在残余网络中求出强连通分量,对于不在同一强连通分量且满流的边,必然在某一最小割中。题目链接 #include <stdio.h>#include <stdlib.h>#include <string.h>#define min(a,b) ( (a)< (b)? (...

2010-05-27 14:25:17 100

原创 [XTU][1485][Beautiful Tree][树形DP + 背包 + 二分]

题目意思为有一棵树,对每个结点有两个值 v[i] 和 w[i],让你在这树上找一棵子树,使得 sum{ v[i] }/ sum { w[i] } 最大。二分这个答案 r ,对每个结点,重新计算一个值  t[i]= v[i]- r* w[i]。问题变成判定是否存大一棵子树,使得 t[i] 权值和大于0。#include <iostream>#include <vect...

2010-05-24 22:49:54 132

[XTU][1489][Fat Man][网络流]

题意为给定一个矩形,矩形中有一些点,要使一个半径为 r 的圆穿过这个矩形而不经过这些点,至少得去掉这些点的几个点。 将上边界看成源,下边界看成汇,点到源距离小于直径,则边一条无穷大边,同样,点到下边界距离小于直径,连一条无穷大边,将点拆成两点,权值为 cost, 对任意两点,距离小于直径则连无穷边,问题就转化成求新图的最小割。具体建图见代码:#include <stdio.h>...

2010-05-22 23:45:47 108

[HDU][2243][单词情结][AC自动机 + 矩阵乘法]

题意:给你 n 个单词,求出满足以下条件的单词个数:长度不大于 L 且单词中至少包含一个子串为前面 n 个单词中任意一个。先求出所有单词的数量 26^1+ 26^2+ ... + 26^L,可以用矩阵乘法求出,也可用逆元的方法。然后求出所有不包含 n 个单词的串的数量,这个求法和 pku 2778 相同,只是这里要求出所有长度不大于 L 的字符串数量和,方法参考 pku 3233。两者相减就是答案...

2010-05-06 15:34:31 92

[PKU/POJ][1741][Tree][树的分治]

LTC 男人八题之一,解题报告见09看论文。#include <iostream>#include <algorithm>#include <cstdio>#include <cstdlib>#include <cstring>using namespace std;int const N= 10010, ...

2010-05-05 14:01:17 90

[HDU][3397][Sequence operation][线段树]

这题杯具的写了一下午,真是太菜了。。#include <iostream>#include <algorithm>#include <cstdio>#include <cstdlib>using namespace std;int const N= 100010;int n, m;struct Node{...

2010-05-01 20:40:52 64

[PKU/POJ][3691][DNA repair][AC自动机+DP]

先用AC自动机构建一个不含有任何病毒串的 DFA , dp[i][j] 表示到目标串的第 i 个字符,DFA 状态为 j 时的最小修改数量。则 dp[i][ son[j] ]= min{ dp[i][ son[j] ], dp[i-1][j]+ (tran[j][ son[j] ]!= str[i] ) }  tran[j][ son[j] ]表示从 j 到 son[j] 经过的字母边。代码:...

2010-05-01 11:06:06 87

[PKU/POJ][2778][DNA Sequence][AC自动机]

利用AC自动机构建一个 DFA, 该 DFA 不经过任何模式串。然后问题转化为在一个图上找经过 n 条边的路径条数。代码:#include <stdio.h>#include <stdlib.h>#include <string.h>typedef long long LL;int n, m, cnt= 0;LL mat[20...

2010-04-30 16:32:18 138

[HDU][2896][病毒侵袭][AC自动机]

查找多个串是否在目标串中出现,简单的AC自动机应用。。。代码:#include <iostream>using namespace std;struct Node{ int next[100]; int fail, flag; void init(){ for( int i= 0; i< 100; ++i ) next[i]= 0;...

2010-04-30 13:48:58 158

[codeforces][ball][线段树]

原题链接:http://codeforces.com/contest/12/problem/D给一系列三维点(x,y,z)。求出满足以下条件的点个数: 对点 (x1,y1,z1 ) ,  存在一个点 (x2,y2,z2)  使得 x2> x1, y2> y1, z2> z1。先按 x 从大到小排序,再将 y 离散化。从前到向扫描,对于点(x,y,z), 在大于 y 的...

2010-04-30 00:33:03 96

[FZU/FOJ][1872][A New Sequence Problem][后缀数组]

问题最终转化为,求出 height 数组后,求 max{ (j- i+ 1)* ( min( height[i..j] ) ) },相当于找一个最大的矩形。求F(a^b)% c  因为 c 比较小,可求出其循环节。代码:#include <stdio.h>#include <stdlib.h>#include <string.h>ty...

2010-04-29 13:21:36 730

[PKU/POJ][3294][Life Forms][后缀数组]

给你 n 个字符串,求出最长的子串,使得子串在大于一半的字符串中都出现。先将 n 个字符串用 n 个不同的字符连接起来。求出 height 数组后,二分子串长度 k, 查找是否存在连续的大于 n/ 2+ 1 个后缀的 height 值都大于 k。这里要求这 n/ 2+ 1 都属于不同串,可以用一数组进行标记,具体做法详见代码。代码:#include <cstdio>...

2010-04-28 14:06:24 179

[PKU/POJ][2392][Space Elevator][多重背包]

先将数据按 a_i 从小到大排序,然后直接背包。。#include <iostream>#include <algorithm>#include <cstdio>#include <cstdlib>#include <cstring>struct Node{ int h_i, a_i, c_i;}...

2010-04-28 00:00:38 84

[PKU/POJ][3261][Milk Patterns][后缀数组]

题目意思可以归结为给一个字符串,求可重叠的 k 次最长重复子串。二分 k ,然后在 height 数组中找是否存大连续 k 个数都大于  k。代码:#include <stdio.h>#include <stdlib.h>#include <string.h>int const N= 1000100;int wa[N], wb[N...

2010-04-27 15:58:43 103

[HUST][1022][K-diff subsequence][线段树+DP]

题意在一个整数序列中求出相邻元素相差不超过 m 的最长子序列。易得到 dp 方程。 dp[i]= max{ dp[j]+ 1,  1<= j < i 且 d[i] 与 d[j] 相差不超过 m }  方程复杂度为  o(n^2) 。用线段树对方程进行优化,先将数据离散化,使得数据范围变成 [1,n]。在上述方程求 dp[i] 的值时,对 i 前面的数遍历找出最优值相当于在区间 ...

2010-04-26 17:53:13 82

[PKU/POJ][3162][Walking Race][线段树+树形DP]

1.给你一棵边带权的树,求出树中每一个点到其它点的最大距离。2.在一个整数序列中找一个最大的连续序列,使得该序列中最大数和最小数之差不超过 m 。问题 1 可用树形 DP 解决。对树进行 DFS,DFS 过程中,对根 R,记录他的孩子结点到他是最大距离和次大距离以及相应的结点。然后用一次 BFS 更新。问题 2 用两个指针 head, tail分别指向连续序列的首尾,如果区间 [hea...

2010-04-26 17:33:40 85

[PKU/POJ][2892][Tunnel Warfare][线段树]

题目意思为有一系列村庄,然后对一些村庄进行破坏或修复。让你求与某村庄直接或间接相连且都没有破坏的村庄数量。 对于每一个区间,用线段树维护从区间左端点开始的最大连续没破坏的村庄数量 Lx 以及以区间右端点结点的最大连续没破坏的村庄数 Rx,很容易更新这两个值及求出要求的数量。 代码:#include <iostream>#include <algorithm...

2010-04-26 16:06:20 78

[PKU/POJ][3667][Hotel][线段树]

题目意思大概就是有一连串的房子。客人来时会要求订其中连续的 k 个房子,要你给出连续 k 个房子的最小编号。同时也会退订房间的操作。用线段树来维护房子的订阅情况。线段树记录 4 个域。struct Node{ int Lx; // 区间从左端点起连续的最大长度 int Rx; // 区间以右端点结束的最大连续长度 int Ax; // 区间全局...

2010-04-26 14:00:36 93

空空如也

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

TA关注的人

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