自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 资源 (1)
  • 收藏
  • 关注

原创 LeetCode 834. 树中距离之和

一个简单的树形dp。两边dfs,第一遍统计出所有子节点到当前节点的距离。然后第二遍dfs用父节点更新子节点class Solution {public: const static int MAXN = 10005 ; int dp[MAXN][2], son[MAXN]; int from[MAXN*2], to[MAXN*2], next[MAXN*2], he...

2018-08-29 15:03:25 659

原创 LeetCode 57. 插入区间

几个注意点 1.原集合为空 2.插入在最开始的位置 3.插入在末尾位置 4.插入在中间与前区间重叠但不与后区间重叠不与前区间重叠但与后区间重叠前后区间都重叠前后区间都不重叠可以通过添加标志,没有添加就每次都去判断重叠情况进行添加vector<Interval> insert(vector<Interval>& intervals, In...

2018-08-29 11:08:24 346

原创 RF,GBDT,XgBoost的区别

Random Forest:主要运用到的方法是bagging,采用Bootstrap的随机有放回的抽样,抽样出N份数据集,训练出N个决策树。然后根据N个决策树输出的结果决定最终结果(离散型的输出:取最多的类别,连续型的输出:取平均数),是一种集成学习下面引用的是谢益辉博士关于Bootstrap (和 Jackknife)基本思想的论述 一般情况下,总体永远都无法知道,我们能利用的只...

2018-08-28 17:55:42 5146

原创 LeetCode 135. 分发糖果

分情况考虑一下就好了 1.递增前一个直接+1 2.值不变,直接变成1 3.值减少的时候要注意连续递减了多少个,是否要增加前一位的值class Solution {public: int candy(vector<int>& ratings) { int sum = 0 ; int pre = 0 ; int s...

2018-08-24 15:36:35 410

原创 HDU 5547 Sudoku ( 非DFS,利用数独思路来搞 )

原题连接:http://acm.hdu.edu.cn/showproblem.php?pid=5547题意:给出4*4的板,要求填入1-4的数字,每行,每列,4个2*2的方格内都要有1-4.思路:每找到一个数字,就把它所能影响的范围内,该数字标记为已经出现过,每个被更新位置的cnt减1,当cnt值为1的时候,表示这个位置答案唯一确定。代码:#include <iostream>#include <

2016-08-01 15:43:36 535 1

原创 HDU 1257 最少拦截系统

原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1257题目大意:《中文题》思路:这个问题中DP数组有些特别。它存放的是之前出现过的最小值。 每一次输入后。将其与DP中存放的值做比较。如果找到比输入的值更大的DP[i]的值。就修改。否则系统+1。代码如下:#include <iostream>#include <cstdio>#include <c

2015-08-28 17:32:09 338

原创 HDU 1203 I Need A Offer

原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1203题目大意:《中文题》思路:要求至少拿到一份Offer的概率。那么根据高中知识只需要用 1-P(都拿不到Offer)就是所要求的概率。 在状态转移方程中要注意。两个事件是都要发生所以概率是用乘算而不是加算。代码如下:#include <iostream>#include <cstdio>#inc

2015-08-28 17:22:06 277

原创 HDU 1978 How Many Ways

原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1978题目大意:<中文题>思路:二位的DP数组记录下某一位置有多少种走法。然后通过dfs的方法来深搜所有的点。每次将dp[i][j]加成dfs返回的值。最终dp[1][1]就是所求解代码如下:#include <iostream>#include <cstdio>#include <cstring>

2015-08-28 10:24:16 219

原创 HDU 1114 Piggy-Bank

原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1114题目大意:T组测试样例。接着给出空储蓄罐的质量和装满硬币储蓄罐的质量。接着是一个N。表示有多少种硬币。然后N行表示价值和质量。问储蓄罐中最少有多少钱思路:这个也是一道DP背包问题。但是这道题是求最少有多少硬币。只需改变初始化条件。和状态转移方程就可以了代码如下:#include <iostream>

2015-08-28 10:02:42 327

原创 HDU 1159 Common Subsequence

原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1159题目大意:给你两个字符串。找出他们的最大公共字串思路:逐个匹配。并用DP数组记录下。到这个位置最多有多少个字符匹配 具体想法看代码注释代码如下:#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>

2015-08-25 15:40:20 268

原创 POJ 3903 Stock Exchange

原题链接:http://poj.org/problem?id=3903题目大意:找一个最大递增子序列思路:由于这题数据量较大,如果按照递增子序列的一般写法,会超时。所以这里要在筛选dp的时候做出优化—二分查找代码如下:#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespac

2015-08-21 12:21:47 298

原创 HDU 2602 Bone Collector ( DP )

原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=2602 题目大意:有一个体积为V的背包。要装价值尽可能大的石头。问怎么装思路:简单背包问题。 每个石头都可以装或者不装。可以得到状态转移方程 dp[j] = max( dp[j] , dp[ j - bone[i].cost ] + bone[i].value ) 最后dp[V]中的值就是我们要的答

2015-08-21 10:53:40 280

原创 MCS 简单博弈

今天题解重点写思路!!博弈参考博客:http://blog.csdn.net/shahdza/article/details/7796775Problem A:原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1079 (HDU 1079 )思路:目标是 11.4。可以推出11.3和11.1一定会胜利 在向前推可以得出10.30 10.28 10

2015-08-17 17:49:26 641

原创 HDU 1087 Super Jumping! Jumping! Jumping!

原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1087题目大意:输入一个数N。然后给你N个数。起点最小。终点最大。要求计算最多的得分(每走到一个比你绝对大的数时。你的得分就加上那个数。同时你自己的数改成是那个数,从起点直接到终点为0分。) 思路:就是找和最大的子序列。代码如下:#include <iostream>#include <cstdio>

2015-08-14 10:30:00 233

原创 MCS 最小生成树#2 Kruskal

开头郑重声明:明天绝逼不写题解了!!!首先统一说明一下:1.今天的算法特别容易RE。我的解决办法就是:如果有100个点,那我就用2000的数组存。20000的数组存边。 2.今天的算法最好用结构体来存放Problem A:原题链接:http://poj.org/problem?id=1287(POJ 1287 题目大意:有P个点(0 < P <=50 )和R条边。然后有R行。每行 A B C。表示

2015-08-12 18:49:28 254

原创 HDU 1231 最大连续子序列( DP做法 + 水题做法)

原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1231感谢美辰学长的指导DP做法代码如下:#include <iostream>#include <cstring>#include <cstdio>using namespace std;int N;int a[10050]; //存放每一个输入数int b[10050]; //存放以i结尾的最

2015-08-12 18:00:18 333

原创 MCS 并查集#1

Problem A:原题链接:http://poj.org/problem?id=2236题目大意:输入N和d。表示有N台电脑,两个电脑可以直接连接的最大距离为d(这个只输入一次!!!)。电脑的编号为1~N。然后有多次询问。O X表示修复编号为X的电脑。S A B表示询问A和B是否连通(如果A和B连通,B和C连通。那么A和C也连通 )。如果连通输出“SUCCESS”。否则输出“FAIL”思路:因为之

2015-08-11 22:55:08 317

原创 HDU 1495 非常可乐(最笨办法版)

原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1495题目大意:略思路:3个杯子。有6种情况的道法。每种遍历就可以了 主要是比较复杂的原因是加法较多。 结构体只是为了方便一点。 退出时的判定比较坑。要两个相等的同时另一个等于0才满足条件代码如下:#include <iostream>#include <cstdio>#include <cst

2015-08-11 17:22:18 310

原创 HDU 1181 变形课

原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1181题目大意:略思路:用一个结构体来存放每个单词的首字母和尾子母就可以方便的解决这一问题 其余的和一般的BFS一样代码如下:#include <iostream>#include <cstring>#include <queue>#include <string>using namespace

2015-08-11 17:17:52 279

原创 POJ 3126 Prime Path

原题链接:http://poj.org/problem?id=3126题目大意:先输入一个n(n不超过100)。表示有n组的测试样例。然后输入两个素数。第一个表示起始数。第二个表示目标数。问要多少是操作才可以把第一个数变成第二个数。 操作要求: 1.每次操作后的数必须是素数 2.每次操作只能改动一个数字 如果可以输出需要多少次。不行输出“Impossible”思路:采用一种笨办法: 从-9

2015-08-11 17:09:05 181

原创 HDU 2717 Catch That Cow

原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=2717题目大意:输入一个N和K。表示你的起点是N。终点为K。每次有3中移动方式。 1.移动到X+1 的位置 2.移动到X-1的位置 3.移动到2X的位置 X为你当前的位置。问从N开始。最少走几步才能到K思路:这时一道简单的BFS水题。按一般做法来解决就可以了代码如下:#include <iostr

2015-08-11 17:00:39 261

原创 HDU 1548 A strange lift

原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1548题目大意:输入N,A,B。分别表示有N层楼,最初楼层为A。终点楼层为B。然后是N个数表示在第i层楼按上或者下可以移动多少层。楼层不能超过N也不能低于1. 例如: 5 1 5 3 3 1 2 5 表示有5层楼,起点为1.终点为5。在3楼时。按下按钮可以上1层楼,或者下1层楼。思路:采用一般的b

2015-08-11 16:53:04 223

原创 HDU 1241 Oil Deposits

原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1241题目大意:输入m和n,表示有m行n列。然后输入m*n的图。‘*‘表示没有油。’@‘表示有油。问一共有多少片油田。(一个油点可以和周围8个方向的油点连成一个油田)思路:遍历搜索每一个点。和此点属于同一油井的点改成“*” 每次搜索到不能在搜索的时候,把次数+1.然后搜索下一个点 根据题意。搜索方式为

2015-08-11 16:39:35 232

原创 HDU 1016 Prime Ring Problem

原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1016题目大意:给你n个数。这些数为(1,2,3….n)。然后放入一个环中。要求每个数都要放入。同时每个数的左右两边的和都要为素数。输出所有的摆法思路:因为说给数字小于20,所以最大的素数为37 只需每次逐个深搜判断既可 Check数组用于临时存放顺序。只用满足的时候才会赋值给Keep 最后把Kee

2015-08-11 15:42:40 213

原创 POJ 1426 Find The Multiple

原题链接:http://poj.org/problem?id=1426题目大意:输入一个十进制数n(1<= n <= 200 )。求一个数x。x只由0和1组成。同时x是n的倍数。输出这个x,如果有多个x,输出任何一个思路:暴力做法 用unsigned int来存放数据否则存不下 从1开始DFS。每次把前一次传过来的数*10或者*10+1 这样可以遍历出所有只含0和1的十进制数 逐个判断,满足

2015-08-11 15:29:14 197

原创 HDU 1010 Tempter of The Bone

原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1010题目大意:略思路:时间刚好的时候才可以逃离 如果当前位置和终点的位置的最短距离大于剩余时间也不可以 如果当前位置和终点的位置的最短距离和剩余时间的奇偶性不同也不可以(一块地砖只能走一次)代码如下:#include <iostream>#include <cstdio>char maze[10]

2015-08-11 15:23:34 238

原创 Poj 1321 棋盘问题

原题链接:http://poj.org/problem?id=1321题目大意:(中文题。不说)思路:每次DFS都只找下一行(前几行已经放过,不用搜索了) 用一个数组来存放列信息。用于判断能不能在这一列放棋子 dfs中循环遍历每一个可以放置的位置,可以顺便解决空行的问题 因为存在回头问题。所以check_row的值在dfs完之后要改回0 这样才保证其他点的搜索正常代码如下:#include

2015-08-11 15:17:35 246

原创 HDU 1312 Red and Black

原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1312题目大意:输入W和H表示有W列。H行。输入一个W * H的图。其中’#’表示此位置不能走,’.’表示此位置可以走。‘@’表示此处为起点。问最多可以走多少个‘.’思路:从记录的起点坐标开始,逐个遍历每个点。如果新的点满足条件就把值加一。不满足就继续搜索其他位置的点。代码如下:#include <ios

2015-08-11 15:13:27 217

原创 ACdream 1726

ACdream 1726原题链接:http://acdream.info/problem?pid=1726题目大意:输入一个n和H。接着给你n个数。问能不能取其中的一个或多个的数,使得它(们)的和为H思路:每个数都可以选择或者不选择,所以要分别做深搜。可以考虑开辟一个数组来存放前N项和(建议先排序)用于剪枝用途防止超时。用long long 来存放数据。防止数据过大int 或 long 存不下代码如

2015-08-11 15:05:07 427

原创 MCS BFS#1 2015年7月30日

BFS #1 题解 传送门 : [ http://acm.hust.edu.cn/vjudge/contest/view.action?cid=84857 ](第一次写这样的东西。如版面雷同。纯粹模仿二狗→_→)Problem A题目意思:有N层楼,要求从A楼层开始去B楼层。每按一次按钮可以上Ki层或者下Ki层。问到达B楼层最少要按钮.能到达输出最少次数。不能到达输出-1.思路:采

2015-07-30 16:19:08 367 1

Youtube推荐系统论文

youtube推荐系统改良的历程论文,从基础的item-based到graph random walk,到dnn

2018-08-29

空空如也

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

TA关注的人

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