自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Pure White

若我许你锦绣年华,可愿陪我浪迹天涯?若你相约定共华发,我愿为你倾尽天下。

  • 博客(47)
  • 资源 (3)
  • 收藏
  • 关注

原创 maximum-depth-of-binary-tree

http://www.lintcode.com/zh-cn/problem/maximum-depth-of-binary-tree/http://www.jiuzhang.com/solutions/maximum-depth-of-binary-tree/描述:给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的距离。样例给出一棵如下的二叉树

2016-11-05 02:54:06 307

原创 search-for-a-range

http://www.lintcode.com/zh-cn/problem/search-for-a-range/http://www.jiuzhang.com/solutions/search-for-a-range/描述:给定一个包含 n 个整数的排序数组,找出给定目标值 target 的起始和结束位置。如果目标值不在数组中,则返回[-1, -1]样例给出[

2016-11-05 02:53:14 431

原创 search-in-rotated-sorted-array

http://www.lintcode.com/zh-cn/problem/search-in-rotated-sorted-array/http://www.jiuzhang.com/solutions/search-in-rotated-sorted-array/描述:假设有一个排序的按未知的旋转轴旋转的数组(比如,0 1 2 4 5 6 7 可能成为4 5 6 7 0 1 2

2016-11-05 02:52:37 312

原创 first-bad-version

http://www.lintcode.com/zh-cn/problem/first-bad-version/http://www.jiuzhang.com/solutions/first-bad-version/描述:代码库的版本号是从 1 到 n 的整数。某一天,有人提交了错误版本的代码,因此造成自身及之后版本的代码在单元测试中均出错。请找出第一个错误的版本号。你可以

2016-11-05 02:51:59 201

原创 find-peak-element

http://www.lintcode.com/zh-cn/problem/find-peak-element/http://www.jiuzhang.com/solutions/find-peak-element/描述:你给出一个整数数组(size为n),其具有以下特点:相邻位置的数字是不同的A[0] A[n - 1]假定P是峰值的位置则满足A[P] > A[P

2016-11-05 02:51:19 225

原创 find-minimum-in-rotated-sorted-array

http://www.lintcode.com/zh-cn/problem/find-minimum-in-rotated-sorted-array/http://www.jiuzhang.com/solutions/find-minimum-in-rotated-sorted-array/描述:假设一个旋转排序的数组其起始位置是未知的(比如0 1 2 4 5 6 7 可能变成是4

2016-11-05 02:50:44 218

原创 wood-cut

http://www.lintcode.com/zh-cn/problem/wood-cut/http://www.jiuzhang.com/solutions/wood-cut/描述:有一些原木,现在想把这些木头切割成一些长度相同的小段木头,需要得到的小段的数目至少为 k。当然,我们希望得到的小段越长越好,你需要计算能够得到的小段木头的最大长度。 注意事项木头长度的单位是

2016-11-05 02:49:56 360

原创 search-in-a-big-sorted-array

http://www.lintcode.com/zh-cn/problem/search-in-a-big-sorted-array/http://www.jiuzhang.com/solutions/search-in-a-big-sorted-array/描述:给一个按照升序排序的正整数数组。这个数组很大以至于你只能通过固定的接口 ArrayReader.get(k) 来访问第

2016-11-05 02:49:01 285

原创 first-position-of-target

http://www.lintcode.com/zh-cn/problem/first-position-of-target/http://www.jiuzhang.com/solutions/first-position-of-target/描述:给定一个排序的整数数组(升序)和一个要查找的整数target,用O(logn)的时间查找到target第一次出现的下标(从0开始),如

2016-11-05 02:48:15 341

原创 search-a-2d-matrix

http://www.lintcode.com/zh-cn/problem/search-a-2d-matrix/http://www.jiuzhang.com/solutions/search-a-2d-matrix/描述:写出一个高效的算法来搜索 m × n矩阵中的值。这个矩阵具有以下特性:每行中的整数从左到右是排序的。每行的第一个数大于上一行的最后一个整数

2016-11-05 02:47:44 186

原创 search-insert-position

http://www.lintcode.com/zh-cn/problem/search-insert-position/http://www.jiuzhang.com/solutions/search-insert-position/描述:给定一个排序数组和一个目标值,如果在数组中找到目标值则返回索引。如果没有,返回到它将会被按顺序插入的位置。你可以假设在数组中无重复元素

2016-11-05 02:47:01 217

原创 last-position-of-target

http://www.jiuzhang.com/solutions/last-position-of-target/http://www.lintcode.com/zh-cn/problem/last-position-of-target/描述:给一个升序数组,找到target最后一次出现的位置,如果没出现过返回-1样例给出 [1, 2, 2, 4, 5, 5].t

2016-11-05 02:46:04 397

原创 strStr

这道题首先要判断非空,因为如果为空直接调用的话会报错。class Solution: def strStr(self, source, target): if source is None or target is None: # 这里首先要判断source和target是否为空,如果为空的话就直接返回-1 return -1 r

2016-11-05 02:44:56 246

原创 NOI第一天感想&小结

嘛。。。中午总算是到了深圳了……在虹桥机场和飞机上和市队大神们一起讨论各种各样奇(sang)葩(bing)的算(ren)法(lei)还是很开心的,在此再各种膜拜一下虽然没来比赛的FFT大神@陈中瑞 orz orz orz ……    飞机起飞得很准时,而且飞机上的面包好好吃(好吧当时我早饭没吃)!在飞机上讨论起@朱宏祺 立了AC所有计算几何题目的flag之后果断开始YY各种计算几何题目给他

2014-07-25 23:21:01 1156

原创 USACO 2007 Dec Gourmet Grazers 挑剔的美食家

挑剔的美食家约翰的奶牛对食物越来越挑剔了。现在,商店有M 份牧草可供出售,奶牛食量很大,每份牧草仅能供一头奶牛食用。第i 份牧草的价格为Pi,口感为Qi。约翰一共有N 头奶牛,他要为每头奶牛订购一份牧草,第i 头奶牛要求它的牧草价格不低于Ai,口感不低于Bi。请问,约翰应该如何为每头奶牛选择牧草,才能让他花的钱最少?输入格式• 第一行:两个整数N 和M,1 ≤ N ≤

2014-04-04 23:09:24 772

原创 USACO 2009 Mar Look Up 向右看齐

#include#includeint h[1000001];int high[1000001];int cout[1000001];int main(){ int n; freopen("lookup.out","w",stdout); freopen("lookup.in","r",stdin); scanf("%d\n",&n); for(int i=1;i<=n;i+

2014-03-02 14:29:20 1263

原创 USACO 2011 Feb Best Parenthesis 括号序列

#include#includeusing namespace std;int main(void){ ifstream fin("paren.in"); ofstream fou("paren.out"); int n; long long int xulie[100001]={0}; long long int score=0; fin>>n; int i; int c

2014-03-02 14:28:00 1241

原创 USACO 2005 Nov Cow Acrobats 奶牛杂技

#include#include#includeint n,s[50001],w[50001],sw[50001];void swap(int *a,int *b){ int temp; temp=*a; *a=*b; *b=temp;}void sort(int l,int r){ int key=sw[rand()%(r-l+1)+l]; int i=l,j=r;

2014-03-02 14:26:32 1599

原创 USACO 2009 Dec Bobsledding 滑雪比赛

#include#includeconst int maxn=100003;int n,l;int t[maxn],s[maxn];long long int f[maxn],max;int min(int a,int b){ return a<b?a:b;}void swap(int *a,int *b){ int tmp=*a; *a=*b; *b=tmp;

2014-03-02 14:23:31 1322

原创 USACO 1997 FALL Big Barn 方形牛棚

#includeint n,m,x,y,f[1001][1001];bool a[1001][1001];int check(int x,int y,int k){ if(x+k>n||y+k>n) return k-1; for(int i=x;i<=x+k;i++) { if(a[i][y+k]) return k-1; } for(int i=y;i<=y+k

2014-03-02 14:21:50 793

原创 wikioi 3143 二叉树的序遍历

#include#define L 1#define R 2int son[17][3],n;void f(int n){ printf("%d ",n); if(son[n][L]) f(son[n][L]); if(son[n][R]) f(son[n][R]);}void m(int n){ if(son[n][L])

2014-02-18 14:54:06 1238 2

原创 wikioi 3145 汉诺塔游戏

#includeint f[11];int getint(){ int n; scanf("%d",&n); return n;}void move(int n,char s,char d,char m){ if(n==1) printf("%d from %c to %c\n",n,s,d); else { move(n-1,s,m,d); printf("%

2014-02-18 14:53:21 1043

原创 wikioi 3285 转圈游戏

哎,noipD1T1。记得开int64,用快速幂。这道题的数学结论就不推理了,相信大家都能通过找规律找出来。#include int n,m,k,x,ans;long long int t,tmp;int main(){ scanf("%d%d%d%d",&n,&m,&k,&x); t=1; tmp=10; int turn; if(n%m==0) { t

2014-02-18 14:52:21 830

原创 wikioi 3299 有序数组合并求第K大问题

不必开3个数组,两个够了。#includeint n,m,k;int a[1000001],b[1000001];int main(){ scanf("%d%d%d",&n,&m,&k); for(int i=1;i<=n;i++) scanf("%d",&a[i]); for(int i=1;i<=m;i++) scanf("%d

2014-02-18 14:49:48 585

原创 wikioi 2800 送外卖

其实就是TSP问题。用状态压缩型动态规划#includeconst int MAXN=15;const int INF=1<<30;int n;int d[MAXN+1][MAXN+1];int f[1<<(MAXN+1)][MAXN+1];int ans;int getint(void){ int a; scanf("%d",&a); return a;}

2014-02-15 14:25:19 932

原创 USACO 2008 Feb Hotel 预订旅馆

使用线段树的数据结构。每个节点存3个信息:pre->这个节点维护区间的左端点连续空的房间数suf->这个节点维护区间的右端点连续空的房间数len->这个节点维护区间的最长连续空的房间数update为更新父节点信息download为下标下放(flag更新)#includeconst int MAXN=50000;const int MAXM=50000;const i

2014-02-08 13:32:49 1433

转载 如何用各种编程语言杀死一条龙

这篇有趣的文章编译自一篇西班牙博客。  有一位美丽的公主,被关押在一个城堡中最高的塔上,一条凶恶的巨龙看守着她,需要有一位勇士营救她……  下面是各种语言如何想办法将公主从巨龙手中营救出来的。  Java - 赶到那里,找到巨龙,开发出一套由多个功能层组成的恶龙歼灭框架,写几篇关于这种框架的文章…但巨龙并没有被消灭掉。  .NET - 赶到哪里,看到

2014-02-05 23:08:07 646

原创 USACO 2004 Nov Apple Catching 接住苹果

f[i][j]表示第i个苹果掉下来时贝西一共移动了j次所接到的最多的苹果数。根据移动次数能判别贝西在哪个苹果树下。#includeint n,k,f[1001][31],t[1001],ans;int max(int a,int b){ return a>b?a:b;}int main(){ freopen("bcatch.in","r",stdin); freopen(

2014-02-05 00:24:34 1745

原创 USACO 2011 Jan Profits 公司利润

动态规划的水题,不多说了。#includeint n,p,f[100001],max;int main(){ freopen("profits.in","r",stdin); freopen("profits.out","w",stdout); scanf("%d",&n); for(int i=1;i<=n;i++) { scanf("%d",&p); f[i]=p>

2014-02-05 00:22:23 1031

原创 USACO 2004 OPEN Moofest 奶牛集会

先按照坐标x进行排序,随后用归并排序对v进行排序。用部分和去求总和。#include#includeconst int maxn=20002;int v[maxn],x[maxn],n;int b[maxn],c[maxn];long long int ans;void swap(int *a,int *b){ int tmp=*a; *a=*b; *b=tmp;}vo

2014-02-05 00:19:33 1213

原创 USACO 2012 Mar Haybale Restacking 重排干草

假设对于所有位置都只从其左边一个位置搬运干草过去,则可设ab[i]为i号位接收到的干草数量。ab[i]=a[i-1]-b[i-1]+ab[i-1];根据ab[i]排序。这里要采用快速排序,不然超时。ps:这个程序用不到long long int。不知道为啥当时也许是本博主脑抽了都写了long long int。#include#include#includelong long

2014-02-05 00:16:59 1602 1

原创 USACO 2009 Feb Cruel Math Teacher 数的幂次

快速幂,不多说了。#include#includeint a[15001],b[15001],c[15001],n,p;void copy(int c[],int a[]){ for(int i=0;i<=c[0];i++) a[i]=c[i];}void mutil(int a[],int b[],int c[]){ for(int i=0;i<=a[0]+b[0]

2014-02-05 00:02:56 1034

原创 USACO 2009 Feb Revamping Trails 道路翻新

这道题不妨借用一下动态规划的思路,把一个点拆成k+1(max是20)个点来做,对于所有的点ui分别和vi与vi+1相连。详见代码:#include const int maxn = 10000;const int maxm = 100000;const int INF = maxn * 100000;int n, m, k, s;int p[maxn+1], q[maxn+1

2014-02-05 00:00:19 1163

原创 USACO 2010 Feb Chocolate Giving 领取巧克力

这道题其实就是堆优化的Dijkstra。不用堆优化的话是会超时的。#include#include#define PROBNAME "cgiving"const int MAXN=50000;const int MAXM=100000;const int MAXB=25000;const int INF=2000*MAXN*2+1;int n,m,b;int k,firs

2014-02-04 23:57:22 846

原创 USACO 2007 OPEN Dining 奶牛晚宴

好吧,裸的网络流+拆点。#include#includeconst int MAX=405;int n,f,d,s,t;int map[MAX][MAX],e[MAX][MAX],q[MAX],head,tail,pre[MAX];long long int ans;bool bfs(){ for(int i=0;i<MAX;i++) { pre[i]=0; } he

2014-02-04 23:55:43 779

原创 USACO 2009 Mar Earthquake Damage 2 地震破坏

这道题其实就是网络流,难在建图。应该可以看出,这道题就是求一个最小割。超级源点和超级汇点这个不在赘述,主要的一个就是要把所有点都拆成流入点和流出点,并且权值设为1。而对于与超级源点相连的点,则再加一条流量为正无穷的边,不然在用dinic算法算的时候会直接选择把这几个点切断。#include#includeconst int MAXP=3000*2;const int MAX

2014-02-04 23:53:55 963

原创 USACO 2005 Nov Asteroids 小行星群

#include#includeconst int MAXN=500;const int MAXM=10000;const int MAX=MAXM*2+MAXN*4+10;const int INF=1;int n,m;int first[MAXN*2+3],k,next[MAX],head[MAX],tail[MAX],c[MAX],s,t;int q[MAXN*2+3],qh

2014-02-04 23:49:03 885

原创 wikioi 3297 木材加工

好吧其实就是基本的二分答案。#includeint n,k,a[100001];int ans,mid,l,r;void check(){ int num=0; for(int i=1;in;i++) { num+=a[i]/mid; } if(num>=k) { ans=mid; l=mi

2014-02-04 23:43:09 619

原创 wikioi 1166 矩阵取数游戏

#include#include#includetypedef structnode{ int a[40];}hugeint;hugeint f[81][81],k1,k2,a[81],max;int n, m;hugeint add(hugeint k,hugeint l){ hugeint j; //if (k.a[0] // return add(l, k)

2014-01-19 17:05:53 583

原创 wikioi 1115 开心的金明

#include#includeint f[30001],v[26],temp,n,vp[26],top,max,m;int main(){    f[0]=1;    scanf("%d%d",&n,&m);    for(int i=1;i    {        scanf("%d%d",&v[i],&temp);        vp[i]=v[i]*

2014-01-19 17:05:21 525

图论的ppt文件

图论学习使用的ppt,在学习图论的可以来借鉴一下

2014-01-19

职工信息管理系统

职工信息管理系统的class源文件,开发时可以使用。

2014-01-19

windows内核编程

windows内核编程以及信息安全相关的资料。

2013-11-05

空空如也

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

TA关注的人

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