自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

luoyang

永不放弃,,,,AC永不止

  • 博客(39)
  • 收藏
  • 关注

原创 链表的建立之类

#include <stdio.h>#include <string.h>#include <iostream>#include <vector>#include <stdlib.h>using namespace std; typedef struct Node {      int val;  //    TreeNode *left...

2018-03-02 11:12:09 126

原创 根据前序序列和中序求二叉树

#include <stdio.h>#include <string.h>#include <iostream>#include <vector>#include <stdlib.h>using namespace std;  struct TreeNode {      int val;      TreeNode *left;    ...

2018-03-01 22:43:08 309

原创 uva 1608

分治法的应用,,在使用分治法之前进行数据的挖掘,,,想到分治法了,,但是对于分治后面的应用还是不会,,如何在题目上进行递归,如何完成分治,,在分治的条件的判断都是我需要处理的,在分治时,,非常重要的是如何对分块进行处理,,重要的还有关于map函数的应用,目前都是需要掌握的,,#include #include #include #include #include using namesp

2015-09-04 14:02:05 859 1

原创 uva12222

##uva12222有一个山路每次只能一辆车通过,两个方向都会来车,,沿一个方向的车过去时后面同方向的车过去需要等10s,为最后一辆车的最早时刻是多少。#include #include #include #include using namespace std;#define inf 0x3f3f3fint dp[205][205][2];int a_be[205];int a_

2015-08-28 16:06:38 523

原创 hdu1443

给你n个数,,让你将其分解成m-1连续的偶数段,,每段的一半为半段重,,求解最重的的半段的最小的值,看到这个题意不难想到要用二分法,,但是在用二分法的时候我们却很难想到DP也可以用在其中,,#include #include #include #include using namespace std;#define maxn 40005#define inf 0x3f3f3fin

2015-08-28 10:53:58 363

原创 hdu5418

这是一个简单的状态压缩问题,但是题目本身存在一定的陷进,,,题意是,给你n个点,遍历n个点的最短距离后回到起始点,就是这样。。但是输入可能有多种情况。。可能存在重复的边#include #include #include #include using namespace std;#define inf 0x3f3f3fint mp[20][20];int d[20][20];i

2015-08-27 09:21:26 411

原创 uvalive 4975

这个题目意思是找到最长的w(wr)w(wr),(wr)与w是对称的,说白了就是回文串。这个题目是经典的回文串用法,感觉还是不会,,弱弱的感觉#include #include #include #include using namespace std;#define maxn 1000005char s[maxn];char p[maxn];int b[maxn];void

2015-08-26 19:20:52 331

原创 uva1379

##uva1379这个题目主要是考察在进行状态转移过程中如何节省时间和空间的开销,在这个题目里面运用了滚动数组,使得空间节省,利用贪心节省时间和空间,在求解之前,要分析在这个dp中的状态转移,dp【date】【i】【j】【k】【l】分别表示第date天,前四天分别对应的队伍,,,在进行状态转移贪心主要运用在其休息4天方可再进行比赛,,那么我们只需要取前五名的即可#include #include

2015-08-24 22:22:22 359

原创 uva10271

出看这个题目居然没有思路,,,还是我的水平不够啊,,还需要多加练习,,,,#include #include #include #include using namespace std;#define inf 0x7fffffff#define maxn 5005int dp[maxn][1005];int a[maxn];int solve(int k,int n){

2015-08-24 19:05:37 321

原创 uva1543

几何里面加入DP,一下子提高了难度,,,感觉还是不会,,需要不断努力才行啊,。。。。首先初始化进行一个准备,储存初始化的内容,,在进行DP#include #include #include #include #include using namespace std;#define pi acos(-1)double a[50];double d[50][50];doubl

2015-08-24 11:09:01 391

原创 uva3363

uva3363题意是:压缩字符串,,abababa可以压缩为a3(ab),,要是压缩后的字符串尽量短,, 此题是一个简易的区间DP还是很简单的,,,做完这个题目,,感觉自己的能力上升了不少,,对于区间Dp有了新的理解,, Dp[l][r]=min(dp[i][r]+dp[i+1][r],自身压缩后的长度);#include #include #include #inclu

2015-08-11 16:23:43 250

原创 hdu2993

这个题目是斜率dp,,,,,,在杭电oj一直都过不了,,,为嘛呢,,,我也不知道,,依稀大神的代码也都不能过,,,所以建议看看就好,,不做了做这个题目的心得,,,这是一道很久以前就已经开发出来的题目奈何我的AC能力不够,只能看看大神的代码,,然后自己再写一下,,主要是维护下凸性,,这是这个题目提高效率的最好方法,,由于是单调的然后就可以用二分法求解出最大的斜率,其余细节自己还是要多多注意,,

2015-08-09 16:29:38 422

原创 hdu1698

题目大意是:给定一个初始长度为n的钩子。。。由一节一节构成。。。有三种不同的类型。。。长度分别为1,2,3,现在改变其中x,y区间的长度,,要你最后求出总长度的大小。。。。学了线段树做这个题目还是非常简单的 ,,,,这次自己手撸一个线段树,,,,所谓的模板只是别人想的。。自己理解并加以运用才是最棒的。#include #include #include #include #includ

2015-08-09 10:42:55 326

原创 zoj3644

题意大概是,,在一个图中有n个点,,每个点有个值Pi,要你从一出发是的每次都到一个点,,然后你获得改点的与之前你已经有的点的最小公倍数,,然后不能去已经是最小公倍数不改变的点,最后使得获得的为k问有多少种路径,,错了很多次。。。让我很心痛这个题目是DP,,记忆化搜索,,但是其中的哈希法让我很心痛啊,,,已经接触了一些哈希让我开始有了一定的了解,,,我相信我下次一定可以做的更好。#include

2015-08-08 17:19:45 310

原创 hdu1754

话说题目不是只有一组数据吗?这个题目我改了好久,,,,后来发下错在,,查询的时候错了,,,但还是很爽啊。AC。#include #include #include #include #include using namespace std;#define maxn 200005#define inf 0x3f3f3fint a[maxn*8];int b[maxn*4]

2015-08-07 22:56:55 244

原创 hdu4403

题目意思是:给你一串1~9的数字在中间加+和=号看看能不能相等,,,问如果相等,,有几种加法,,,由于数据比较小我是直接枚举过的,,,暴力了点,,但是写的时候还是会有错,,,#include #include #include #include #include using namespace std;#define ll long longchar s[20];int p[2

2015-08-07 18:46:37 264

原创 hdu4536

搜索题目,,,本身不难,,结果,,用了两个小时,,好坑啊,,,,自己不小心把程序写错了。。。。粗心要人命啊。。。题目就是枚举是三个被攻击的国家,,,然后DFS就完了,,,很简单吧,,#include #include #include #include #include #include using namespace std;struct node {int u[20];

2015-08-06 22:52:40 268

原创 hdu4277

这个题目的意思是将长度为li,,,分成三组,一组和为一边,,,使得其成为一个三角形,问共有多少种三角形,,,,一开始没有想到要用vector容器,,,,还是有点伤啊,,,,,自己还是不会用这种容器,,,以后多多学习#include #include #include #include #include #include using namespace std;#define

2015-08-06 19:26:52 545

原创 hdu1599

题目求的是最大矩阵,,,如果直接暴力肯定会超时,但是用了树状数组就一定不会超时的,,,,我算了的,,,,在这个题目我们要知道的是,直接手撸一个二维树状数组,,#include #include #include #include using namespace std;#define maxn 1005int c[maxn][maxn];int lowbit(int x){

2015-08-06 18:46:36 441

转载 hdu(1074)

题目说的是:做作业的问题,一共有少于15门的课程,每门课都有一个名称不长于100,然后有一个交作业最后的期限,超过期限了,则要超过一天扣一分,问最后扣分最少,这个题目是个典型的状态压缩,还要按字典序打印出来,但是题目按字典序给出输入所以就当字典序不存在,典型输入:23Computer 3 3English 20 1Math 3 23Computer 3 3Engli

2015-05-18 15:15:45 354

原创 hdu树形DP2196

ComputerTime Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 3972    Accepted Submission(s): 1989Problem DescriptionA school bought t

2015-05-04 21:28:01 284

原创 CFD. Handshakes

On February, 30th n students came in the Center for Training Olympiad Programmers (CTOP) of the Berland State University. They came one by one, one after another. Each of them went in, and before sitt

2015-04-21 22:44:56 322

原创 搜索中的转弯问题

逃离迷宫Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 17976    Accepted Submission(s): 4345Problem Description  给定一个m × n (m行, n列)的迷宫,迷宫中有两个位置

2015-04-20 20:21:20 330

转载 hdu1421(线性DP)搬寝室

//这个题目难度就在于边界的控制。#include #include #include #include #include using namespace std;#define Max 2010#define MAX 10000int dp[Max/2][Max];int w[Max];int min(int x,int y){ return x>y?y:x;

2015-03-14 12:14:49 312

原创 hdu1257(DP)

//这个题目还是很简单的 网上有很多其他的方法,自己还有多练练#include #include #include using namespace std;#define Max 1000010int dp[Max];int f[Max];int main(){ int n; while(scanf("%d",&n)!=EOF) { f

2015-03-13 13:43:48 301

原创 hdu1024(动态规划)——求解最大m字段和

//#include #include #include #define MAX 1000005#define INF -99999999__int64 s[MAX];__int64 f[MAX];__int64 g[MAX];__int64 min(__int64 x,__int64 y){ if(x<y) return x; else

2015-03-07 12:01:04 465

原创 HDU4001(动态规划)

#include #include #include #include #include using namespace std;struct block{ __int64 a,b,c,d;} bl[1005];bool cmp(block x,block y){ if(x.a!=y.a) return x.a<y.a; if(x.b!

2015-03-07 09:50:56 416

原创 hdu1099

//面对这样一个恶心的 题目 我实在是无语了,输出格式实在是恶心#include #include #include __int64 gcd(__int64 b,__int64 a){ __int64 r,temp; r=b; if(a<b) { temp=b; b=a; a=temp; } while(a%b!=0) { r=a%b;

2015-01-22 16:17:06 282

原创 hdu1253(胜利大逃亡)

//本题的难度不大大、、只需要用BFS就好了,但是要注意的是,题目给的数据还是很坑的,在做的时候应该多多注意,比如最后一个出口也可以是墙(好坑啊),虽然第一个也可以是墙但是第一个可以忽略,我刚刚开始就是这样错了 以为不可以忽略,错了半个小时,后来才知道,一个字坑啊,,,这个题目还是很具有BFS的代表性的,不可以用优先队列哦 否则会超时#include #include #include

2015-01-22 11:16:43 323

原创 hdu1015

//暴力法 就是这么猛,还害我想了半天,我整个人都醉了。直接暴力就可以一遍过#include #include #include #include using namespace std;int cmp(int a,int b){ return a>b; }int main(){ char s[16]; int b[15]; int c[5]; int n,i,j,k,

2015-01-22 09:42:44 269

原创 hdu1171

//又是一个背包题目啊,这个题目并不难,自己还是要多想想,把F【】数组的数据开大点 开小了容易wa#include #include int max(int a,int b){ if(a>b) return a; else return b;}int f[500005];int main(){ int n,m,v[5005],i,j,k,cnt,a,sum; whi

2015-01-20 19:39:06 294

原创 hdu1087(Super Jumping! Jumping! Jumping!)

//我发现DP真的好难,一步错,一直wa,,,,虽然别人都说这道题目很水,但是作为一个很菜的人我还是把他贴出来 ,与大家共享#include #include #include __int64 max(__int64 a,__int64 b){ if(a>b) return a; else return b;}int main(){ __int64 a[10

2015-01-20 16:49:54 309

原创 hdu1203(I NEED A OFFER!)

//这个事裸背包的题目,虽然很简单 我还是要贴出来的,这个题目做的时候要换个角度,先求出不能获得OFFER最大的概率,这样就会简单很多#include #include #include #include struct node { double p; int val;}f[10005];double min(double a,double b){ if(a>b

2015-01-20 15:35:04 231

原创 hdu2084

// 虽然别人都说这个很简单 但是我还是要拿出来纪念下,我的DP之路从此开始了 #include #include int max(int a,int b){ if(a>b) return a; return b;}int main(){ int a[105][105],n,m,b,c,t; scanf("%d",&t)

2015-01-19 22:44:00 452

原创 hdu1010

//这个题目还是很经典的#include #include #include using namespace std;char a[100][100];int v[100][100];int m,n;int p,q,k,time;int d[4][2]={{1,0},{-1,0},{0,1},{0,-1}};void DFS(int x,int y,int u){ int

2015-01-19 12:54:46 235

原创 hdu1023(广度优先搜索)

//这个题目的难度我感觉还是蛮大的,做完这个题目了,感觉一下子轻松多了,整个人都舒服很多,那么来说说这个题目吧,//这个题目里面有优先队列,广度搜索,还有栈,回溯,整个题目的意思很简单,就是在最短的时间内到达最角落的地方,(0.0)-》(n-1,m-1)//这里面感觉最难的就是回溯,感觉在这里如何把路径找到才是最重要的。#include #include #include #include

2015-01-16 16:15:17 376

原创 hdu1023

//这个题目是卡塔兰数列的经典题目可以直接用卡塔兰公式,然后大数相乘,因为数据不大,所以还是比较好用的,注意在做的过程中感觉打表你法比较方便//卡塔兰数列,在很多问题都是非常实用的#include #include int c[102][1000],Y[102];void multy(int a[1000],int b[1000],int n,int la,int lb){ int

2015-01-16 10:10:59 312

原创 hdu1242

整个题目没有太大的难度,就是搜索计时,求最小的时间的问题,但是在做的的时候用到了优先队列,在这种优先队列,优先队列对于像这种广度搜索还是非常不错的。在以后做题的时候要多多考虑这些方法。#include #include #include #include #include#include using namespace std;struct node{ friend bool

2015-01-15 10:52:53 264

原创 hdu1016

//这是一道很水的搜索题目,在这个题目面,我用的是栈 这种题目应该是非常简单的搜索 但是还是花了 我一些时间代码也写得不好 效率估计还挺低的#include #include int b[1000];int a[1000];int top;void pushstack(int i){ b[++top]=i;}int popstack(){ int k=

2015-01-12 14:58:53 213

空空如也

空空如也

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

TA关注的人

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