自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 收藏
  • 关注

原创 bzoj1036[ZJOI2008]树的统计Count

这道题裸裸的树剖。。 求个和求个最大值即可。。 不写什么了,不会树剖的自己学。。#include<cstdio> #include<cstring> using namespace std; struct node{ int x,y,next; }a[2100000];int len,last[110000]; void ins(int x,int y) { len++; a[

2016-09-25 15:57:31 223

原创 bzoj1003: [ZJOI2006]物流运输

这道题一看就有点spfa的味道.. 但是想了半天还是没有想到spfa里面应该怎么搞。。 上网翻了一下发现这道题在spfa的基础上还要dp。。 f[i]表示前i天的最优运输路线。。 dp方程大概就是这样。。 f[i]=min(f[i],f[j]+spfa(j+1,i)+K) K就是修改一次路线所需要的额外费用。。 spfa(st,ed)表示从第st天到第ed天不修改路线的最优方案。。

2016-09-18 20:50:36 329

原创 poj 2796Feel Good

这道题师姐说用单调栈。。 所以顺便学了一下单调栈。。 建一个单调递增的队列。。 每个元素进来时在队尾t人,比他小就t。。然后插入。。 对于每一个队列里的元素,以他为最小值的一段区间,肯定是: 队列前面的一个数在原数组的位置+1 到 队列后面的一个数在原数组的位置-1 用结构体记录位置和值这道题就可以了#include<cstdio> #include<iostream> #inclu

2016-09-18 13:47:55 256

原创 noi 7627:鸡蛋的硬度

这道题有点水。。 只是一个动态规划。。 f[i][j]表示i个鸡蛋从第j层开始试需要几次。。 dp方程还是蛮好想的。。 只需相通,不论几个鸡蛋在第几层摔策略都是一样的就行了。。#include<cstdio> #include<iostream> #include<cstring> using namespace std; int f[110][110]; int main() {

2016-09-18 13:43:04 324

原创 codevs 3955 最长严格上升子序列(加强版)

这道题是一道最长上升子序列。。 但是数据范围有点大。。 所以O(n^2)的正常方法过不了。。 所以要用一个不知道叫什么的东西来做。。 建一个单调递增队列,表示最长上升子序列的结果。。 每进来一个元素,就问一下是否比队尾大,如果大过队尾那么就插入,否则用二分找一个大于等于他的最小的一个并更新,这样就会更有潜力。。#include<cstdio> #include<cstring> using

2016-09-18 13:39:15 198

原创 bzoj1019: [SHOI2008]汉诺塔

定义两个数组,f和p f[x][i]表示第x根柱子有i个盘移到另一个柱子上的最小步数。。 p[x][i]表示移到哪根柱子 一共两种情况。。 先把a柱上的n-1个盘移到b柱上。。 然后把最后一个盘移到c柱上。。 然后把b柱的盘移到c柱即可。。 第二种。。 先把a柱上的n-1个盘移到b柱上。。 然后把最后一个盘移到c柱上。。 然后把b柱的移到a柱上。。 把c柱的移到b柱上。。 最

2016-09-18 13:35:15 413

空空如也

空空如也

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

TA关注的人

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