自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 问答 (5)
  • 收藏
  • 关注

原创 天天写算法之Dota all stars

#include <iostream>#include <string>using namespace std;int n,sum;class dynamicArray{private: int num;public: dynamicArray *next; // 构造函数 dynamicArray():num(0),...

2018-03-31 22:24:51 134

原创 天天写算法之Sequence two

地址点击打开链接哇,这两个题,写的我头皮发麻。这个和上一个的区别就是这个要求输出按字典序,也就是1 3  2  在上题目中是1 3  和 1 2而这一题输出顺序为1 2 和 1 3.理论上这个题比上一个题目要简单。这个题的限制其实就两个,一个是排完序后,你需要记录原来的位置,不但要数值上不递减,还要求index索引上递增。因此只有当前索引大于上一索引时,才可以通过。另一个限制,就是比如 2 3 3...

2018-03-31 20:32:37 164

原创 天天写算法之Sequence one

这个题,我发现了不是所有的dfs都必须要用到vis[i]= 1   ~dfs~ vis[i]=0,这样的结构。这个题技巧好多,膜拜了一波大神代码,按着思路摸了一遍。主要是注意整体的解题思路以及减枝操作:技巧一:重判,这里有两个重判,第一个重判是判断如果搜索的是子序列的第一个元素,那么判断从原始序列开始到当前位置是否已经出现过该元素,若出现过则之前肯定搜索过该元素,则放弃该元素的搜索。第二个重判,当...

2018-03-31 16:21:33 226

原创 天天写算法之N皇后问题

点击打开链接存储的话用一个一维数组,用下标当作x或者y的位置,数值等于另一个(x或y)这个题的主要问题就是如何判断对角线。这个就有一个小技巧了,如何判断,那就是如果在一个对角线上,那么y1-y2 = x1-x2代码如下#include<iostream>#include<cstring>#include<cstdio>#include<cmath&g...

2018-03-30 19:45:25 151

原创 天天写算法之Sudoku Killer

点击打开链接这个题就是一个DFS,这里注意的是,搜索条件是,满足同一行,同一列,没有相同元素,且组成的小正方体内也没有相同元素。另外一点,就是完成条件,即所有的?的个数都被记录下来,解决的step等于?的个数。#include<iostream>#include<cstring>#include<cstdio>#include<cmath>#...

2018-03-30 16:48:02 244

原创 天天写算法之蜘蛛牌

点击打开链接连接这个题我完全没懂是什么意思,我看了很多代码,我也模仿了一遍,然后回想了一下,于是就想不通了,先看一个例子这是AC代码的结果:我以为是按照从大到小排列起来,但是这俩的结果竟然一摸一样,忽然我就不知道这是在做啥了。求大神解释一波。这个题到底是要干什么?到现在为止,我重新回来审了一遍题,发现了这个题的意思,同时也理解了代码的操作。AC代码:#include<iostream>...

2018-03-30 14:26:52 773

原创 天天写算法之Prime Ring Problem

点击打开链接一个纯粹的DFS的题,主要是看用什么写法会简单,并且一次写对。用一个num,存储数列,并且因为要输出所有满足要求的数据,因此需要判断何时输出这个数据,并且还需要考虑如何考虑最后一个数据与开头数据加和仍然为质数的问题。因此需要两个数组,一个记录访问,一个记录每个位置的数据。#include<iostream>#include<cstring>#include&...

2018-03-29 23:10:47 399

原创 天天写算法之Tempter of the Bone

地址:点击打开链接如我所想,跨过了BFS,就是DFS,然而上来的这个题和我想得不大一样,还难了一些。用的是递归的方法。而且里面还有许多小trick#include<iostream>#include<cstring>#include<cstdio>#include<cmath>#include<queue>#define inf...

2018-03-29 21:55:07 178

原创 天天写算法之Catch him

地址:点击打开链接这个题就是判断边界的时候需要判断一个整体,其他的时候没什么区别。主要区别在于判断越界,判断是否访问过。依旧是BFS#include<iostream>#include<cstring>#include<cstdio>#include<queue>#define inf 0x3f3f3f3f#define MAX 110#...

2018-03-29 17:24:22 242

原创 天天写算法之Waiting ten thousand years for Love

地址点击打开链接这个题,我一开始忘记了一个点,那就是每个点,加入它是'.',那么我既可以飞,又可以走,那么我到底是飞还是走呢?这个时候不但要在二位空间上,也就是xy上进行广搜,还需要在第三维度,也就是用飞和不用飞两种,每个格子,只要不是‘@’和‘#’,那么就既可以飞又可以走。然后我们用一个优先队列(优先时间),那么我们就可以同步时间了,也就是保证一个时间刻度的先进行。#include<ios...

2018-03-29 09:17:32 250

原创 天天写算法之push box

点击打开链接地址。这个题的痛点在于思路问题,而且如何标记已经走过的路线,这里的标记是标记人与三个箱子之间的相对位置,并不是说,你走过了以后,就不能再走了,只要其中一个箱子的位置发生了变化,那么就可以继续走。代码是模的。也拓宽一下自己的思路。BFS用的还不是得心应手 #include<iostream>#include<cstring>#include<cstdio...

2018-03-28 20:19:54 328

原创 天天写算法之Knight Moves

连接:点击打开链接这个题和前面的一个思路,8*8的棋盘,然后给出起点终点,然后走日字,问最少走多少步骤。 #include <iostream> #include<stdio.h> #include<queue> #include<string.h> using namespace std; #defin...

2018-03-28 19:00:04 420

原创 天天写算法之A strange lift

地址:点击打开链接这个题,我wa了一次,后来检查了好久,才发现必须考虑一个情况,就是他自己一开始就在目标楼层,因此需要稍微调整一下以前写bfs的判断结束的位置。代码如下#include <iostream>#include<stdio.h>#include<queue>#include<string.h>using namespace std...

2018-03-28 16:51:29 219

原创 天天写算法之Rescue

地址点击打开链接注意这个题可以有多个天使的朋友,也就是多个出发点,因此要倒过来想,就是从天使出发,找到最近的朋友即可。然后用到了优先队列,这样的话,优先时间,这样第一次访问到目的地时,即可返回结果。代码如下#include <iostream>#include<stdio.h>#include<queue>#include<string.h>...

2018-03-28 14:16:57 180

原创 天天写算法之诡异的楼梯

地址:点击打开链接这个题有两种思路,我注释在代码里了,但是这两种思路只是同一种方法的不同实现,都是DFS。#include <iostream>#include <iomanip>#include<queue>#include<math.h>#include<algorithm>#include<string.h>...

2018-03-27 22:28:27 195

原创 天天写算法之Turn the corner

题目地址:点击打开链接百思不得其解。看了网上的解题,为什么只算了一个边的最大值小于x或者小于y,而不一起算呢???求问

2018-03-26 16:19:25 240

原创 天天写算法之

地址点击打开链接下面是最好的解释了。没有用到二分法。理论上应该用二分。代码解释的很清楚了#include <iostream>#include <iomanip>#include<queue>#include<math.h>#include<algorithm>#include<string.h>#include&...

2018-03-25 22:28:51 97

原创 天天写算法之Toxophily

#include<cstdio> #include<cmath> #define PI acos(-1.0) double x,y,v; inline double calculate(double angle)//已知角度计算所能达到高度的函数 { double time; time=x/( v*cos(angle) ); ...

2018-03-25 21:47:57 182

原创 天天写算法之Can you find it?

#include<cstdio> #include<algorithm> using namespace std; int a[505],b[505],c[505],f[250010]; int binary(int x,int M,int k) { for(int i=0; i<M; i++) { ...

2018-03-25 17:23:54 335

原创 天天写算法之pie

题目太长了,意思是,有n个蛋糕,分给f个人,要求蛋糕不能拼接。因此就是分成f份,因此需要从最大的那个蛋糕走,还是二分的问题。#include <iostream>#include <iomanip>#include<queue>#include<math.h>#include<algorithm>#include<stri...

2018-03-25 16:39:37 640

原创 天天写算法之Strange fuction

地址:点击打开链接这个主要是药算斜率为0的点。如下代码#include <iostream>#include <iomanip>#include<queue>#include<math.h>#include<algorithm>#include<string.h>#include<stdlib.h>#

2018-03-25 15:13:08 265

原创 天天写算法之Can you solve this equation?

写这段代码的时候遇到一个问题,在下面注释着,就是迭代的过程中,我写成了下面的样子,一直返回nan,后来才发现,每次迭代都返回给上一层,因此这一层,但是上一层却没有返回,因此就w了double getRes(double left ,double right ,double target ){    if(getTemp(left)>target||getTemp(right)<t...

2018-03-25 14:44:58 113

原创 天天写算法之

点击打开链接这个题,诶~~~,转变一下思路,当时一心想着用背包解决,把正确思路给淹没了。#include <iostream>#include <iomanip>#include<queue>#include<math.h>#include<algorithm>#include<string.h>#include&...

2018-03-25 13:16:17 127

原创 天天写算法之I NEED A OFFER!

点击打开链接这个题目,我只有一个问题,那就是为什么dp初始化的时候都必须为1???这代表一开始都必然不会录取?有谁能解释一下吗?代码如下:百思不得其解。我把dp初始化为2,结果就全错了。#include <iostream>#include <iomanip>#include<queue>#include<math.h>#include&lt...

2018-03-24 23:40:04 246

原创 天天写算法之Watch The Movie

地址:点击打开链接此题有问题,有大佬,可以帮忙解释一下。没想通越来越多了,现在是二维背包问题了。一维已经解决不了3个里选2个的需求了dp[i][j],其中i代表能买的东西的件数,j代表总看的时间。这里初始化的时候使用了如下代码repfe(i,0,shop_sale) { repfe(j,0,sum_time) { if(i=...

2018-03-24 23:05:07 163

原创 天天写算法之Robberies

点击打开链接这个题,一开始做的时候,我竟然天真的按着案例相加,竟然全对上了,于是就上了贼船,用possible作为了容器。但后来看了一些资料以后,发现应该用总的value作为容器,求得是价值,以价值为消耗来做。不可以用possible的原因是,初始化的时候都为0,显然是不合理的。最后还被一个地方卡了半天,那就是可能一分钱都没偷到,百分之百不被抓~。   ~#include <iostream...

2018-03-24 22:03:04 172

原创 天天写算法之ACboy needs your help

题目点击打开链接这个题,是我做的第三个背包问题吧。背包问题总是以一个变量为容器,这个题明显是天数。做题少,所以也没见过大的01背包问题。一开始想把数据存成更基础的形式,但是发现天数有前后关系。于是只能硬写。代码如下,简单易懂#include <iostream>#include <iomanip>#include<queue>#include<mat...

2018-03-23 14:09:57 192

原创 天天写算法之Bone Collector

哇,本以为逃出了dp问题,结果转身又掉了进去。我的脑子哇。这次是0 1背包问题,感觉和我之前遇到的不太一样,还没有切实的编过程序。来看看哇。我一开始的思路是找单位体积价值最大的,进行填充,发现WA了,想了老一会,哦~~~原来是有可能一个单位体积价值最大的,导致空间剩余,使其在空间上变小。如果是可以分割的话,估计就正确了。上一波错的代码:#include <iostream>#incl...

2018-03-22 23:40:06 401

原创 天天写算法之丑数Humble Numbers

题目点击打开链接emmm,这个题其实可以用动态规划做,但是我觉得完全没必要,而且动态规划显得高端一些,我觉得如果真的在考场上也很暗想的出来。。因此用了一个新的方法。这个方法用到了优先队列,也算是学了一个新的容器。很好用。思路是每次从队列弹出一个数据,分别*2 *3 *5 *7,然后在弹出一个来,直到满足题目要求。但是我当时想的是,有可能出现重叠,比如第一次弹出的数据处理完压栈以后,有可能出现比上次...

2018-03-22 21:57:31 184

原创 天天写算法之Monkey and Banana

地址:点击打开链接emmmm,需要总结一波了,看到这个题第一眼的确有思路,但是码代码的时候还是犹豫了好一会。就是最佳状态的递推。dy【这次状态】 = dy【上一状态】+data【跳到这一状态的增加值】感觉和前面几篇加起来已经快把动态规划的简单问题都涵盖了吧。这个是动态规划严格递增序列的最大和,与之前求最长之类的不同。因此也mark一下。总结整理一下。#include <iostream&gt...

2018-03-22 20:23:13 304

原创 天天写算法之免费馅饼

点击打开链接原题链接这个题坑真的很多,先说的确是dp问题,为什么会想到dp呢,因为这一个chapter都是dp。设a[i][j]为第i秒的j位置掉下的馅饼数量,f[i][j]为第i秒在j位置接馅饼最多可以接到的最多馅饼数量。由于每秒只能移动一个位置:f[i][j] = max(f[i - 1][j - 1], f[i - 1][j], f[i - 1][j + 1]) + a[i][j];得到了这...

2018-03-22 10:06:23 267

原创 天天写算法之命运

发现自己对动态规划还是不能了然于掌。大概的思想就是:假设知道上一次最佳的路线,计算这一次的。而上一次最佳的路线不一定就能算出这一次最佳的路线,因此需要对上一次所有的路线进行一个处理。点击打开链接动态规划的递推公式p[i][j] = max(dp[i-1][j],dp[i][j-1],dp[i][k]) + data[i][j]。其中dp[i][j]表示男主角到达第i行第j列所能达到的幸运值的最大值...

2018-03-21 23:15:44 198

原创 天天写算法之FatMouse's Speed

智商欠费系列,记录路径点击打开链接#include <iostream>#include <iomanip>#include<queue>#include<math.h>#include<algorithm>#include<string.h>#include<stdlib.h>#include&a

2018-03-21 20:29:49 241

原创 天天写算法之Super Jumping! Jumping! Jumping!

不得不承认自己头脑的思维存在一些bug,有的时候就是转不过来。动态规划这一节体现的太明显了。地址:点击打开链接这个题是求最大和,并且要求递增。我在一开始做的时候没理解清楚,以为要求是最长,并且最大和。这里要搞清楚,最长序列不一定最大。例如1  19  2  3  4 ,明显 1  19组成的递增序列要比1 2 3 4 组成的序列大得多。用A数组记录所有的数据。用一个sum数组记录到当前这个节点之前...

2018-03-21 17:20:35 316

原创 天天写算法之Common subsequence

不是很明白在自己的电脑上开1000*1000的数组,直接就炸了,但是却能AC。emmmm,于是改写了递归,很荣幸的超时了。递归程序:int Lcs(string a , string b , int aindex , int bindex,int num){ int res = num; if(aindex==0||bindex==0) { return ...

2018-03-21 14:51:51 330 1

原创 天天写算法之Max Sum

题目地址点击打开链接贴代码,需要一个临时存储最大值的,一个最终存储最大值的。遍历所有的情况,复杂度线性。动态规划的思想#include <iostream>#include <iomanip>#include<queue>#include<math.h>#include<algorithm>#include<string....

2018-03-21 12:35:48 1761

转载 天天写算法之HDU 2604 Queuing

膜拜一波大神代码分析:矩阵快速幂题目地址:HDU 2604 Queuing题意: n个人排队,f表示女,m表示男,包含子串‘fmf’和‘fff’的序列为O队列,否则为E队列,有多少个序列为E队列: 矩阵快速幂入门题。 用f(n)表示n个人满足条件的结果,那么如果最后一个人是m的话,那么前n-1个满足条件即可,就是f(n-1); 如果最后一个是f那么这个还无法推出结果,那么往前再考虑一位:那么后三...

2018-03-21 11:52:55 145

转载 杭电ACM 1297 Children’s Queue

http://blog.csdn.net/xujinsmile/article/details/7364307

2018-03-20 21:15:57 212

原创 天天写算法之HDU how many trees

Catalan序列的应用原题地址点击打开链接整个这一个章节都是围绕着大数以及Catalan和第一斯特林数来的总结一下Catalan的用处:1.括号化问题:矩阵链乘: P=a1×a2×a3×……×an,依据乘法结合律,不改变其顺序,只用括号表示成对的乘积,试问有几种括号化的方案?(h(n-1)种)2.出栈次序问题:一个栈(无穷大)的进栈序列为1,2,3,..n,有多少个不同的出栈序列?类似:有2n个...

2018-03-19 15:47:53 246

空空如也

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

TA关注的人

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