自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

jkchen's Haven

尽身为莲,花开佛现

  • 博客(30)
  • 资源 (2)
  • 收藏
  • 关注

原创 躲雨

原题:zjnu 1516BFS,把终点都加入队列,第一次走到的人的位置一定是对于这个人来说最近的躲雨点,就ans[step]++代码:#include<iostream>#include<string>#include<stdio.h>#include<queue>using namespace std;str

2018-03-29 21:58:36 2371

原创 邮局问题

原题:POJ 1160题意:一些村庄被建立在一条笔直的高速公路边上,我们用一条坐标轴来描述这条高速公路,每一个村庄的坐标都是整数,没有两个村庄坐标相同。两个村庄间的距离,定义为它们的坐标值差的绝对值。我们需要在一些村庄建立邮局——当然,并不是每一个村庄都必须建立邮局,邮局必须被建立在村庄里,因此它的坐标和它所在的村庄坐标相同。每个村庄使用离它最近的那个 邮局,建立这些邮局的原则是:所有村...

2018-03-29 21:12:38 4810 2

原创 并查集

代码:#include<iostream>#include<stdio.h>#include<algorithm>#include<set>using namespace std;int fa[10090];int minn[10090];int nump[10090];int numh[10090];

2018-03-29 19:22:05 198

原创 最小堆 (小顶堆)

最小堆:父结点小于子结点的完全二叉树操作:每次插入数据都插在层序的下一个空位,插入后如果比父结点小就上浮代码#include<iostream>#include<stdio.h>#include<algorithm>using namespace std;int n;int tree[2009];//树 int pos[20...

2018-03-29 11:10:52 2233

原创 二叉树前序中序 推层序

当然,前序中序不知道的可以自己百度。。。我们可以知道,知道了一棵二叉树的前序与中序,那么我们便可以推出这棵树的结构(当然,需要保证每个结点的数值不相同)思路:假设有前序:4 1 3 2 6 5 7 ,中序:1 2 3 4 5 6 7 那么具体思路为,对于4 1 3 2 6 5 7这棵树,第一个数4是root,那么我们在这棵树的中序1 2 3 4 5 6 7中找到root 4,那么可...

2018-03-29 10:41:14 786

原创 加分二叉树

原题:zjnu1185题意:给出一棵二叉树的中序遍历,求怎么样的树的前序遍历才能使数的得分最大root的分数=root结点的值+lson分数*rson分数叶子分数=结点值只要一个儿子的分数=root结点的值+son分数*1解析:因为数组为中序遍历,所以假设3~10代表一棵树,6为3~10的root,那么3~5为lson,7~10为rson,所以就可以按照区间dp做代...

2018-03-22 08:45:56 1448

原创 求最短路——迪杰斯特拉算法的优化

原题:最短路题意:给定M条边,N个点的带权无向图,求1到N的最短路解析:按照以前的链式前向星加disjktra模板,居然T了#include<iostream>#include<stdio.h>#include<string.h>#include<queue&am

2018-03-22 08:45:45 777

原创 素数距离

原题:1223题意:求区间内最近和最远的两个素数解析:范围1~MAX,所以不能一次性用素数筛筛完所有可能数,因为即使你是MAX,也只需要判断到sqrt(MAX)是不是MAX的因数,所以我们可以筛1到sqrt(MAX)的素数,然后用这些数再来筛除给定区间的非素数。代码:#include<stdio.h>#include<math.h>#incl...

2018-03-22 08:45:28 428

原创 bitset

bitset用于存储二进制数位。bitset就像一个bool类型的数组,一个元素一般只占1 bit,相当于一个char元素所占空间的八分之一。bitset中的每个元素都能单独被访问,例如对于一个叫做foo的bitset,表达式foo[3]访问了它的第4个元素,就像数组一样。特性:整数类型和布尔数组都能转化成bitset。bitset的大小在编译时就需要确定。如果你想要不确定长度的bits...

2018-03-22 08:45:13 352

原创 Suspects

原题:CodeForces - 156B题意:一个人犯罪,n个人m个说了真话,+n:n是罪犯,-n:n不是 判断每个人说的话的真假解析:枚举每个人是罪犯的情况有以下要求才能实现:判断i为罪犯时怎么求说真话人数 用d数组存说i为罪犯的人数,nd存说i不是的人数,sum_no存所有说不是的人数,那么真话人数==d[i]+(sum-nd[i])判断每个人说的话 存下每个...

2018-03-22 08:44:59 401

原创 矩阵快速幂

矩阵应用线性代数的内容,应该是学计算机的必修课,就不多讲内容了,主要是在编程时的用法。单项递推有数列A[n]=4*A[n-1]+2,我们可以写出两个矩阵项矩阵:{A[1],1}乘积矩阵:{4,0} {2,1}把项矩阵乘一次乘积矩阵,得到了{4*A[1]+2,1}也就是{A[2],1},所以A[n]只要项矩阵乘n-1次就可以得到。多项递推举个例子,斐波那契数...

2018-03-22 08:44:29 1059

原创 Mike and distribution(取数组一半大于另一半)

原题:CodeForces - 798D题意:给你两个序列 从中选出n/2+1个相同下标的数 使得两个序列的和 大于各自序列和的一半 题目保证有解解析:如果n是奇数 ,就先把第一个选进去 然后两个两个的for 对于相邻的两个 选取B大的那个,然后就能保证a的和大于序列和的一半 因为a1>max(a2,a3) min(a2,a3)>max(a4,a5)…...

2018-03-14 22:37:39 398

原创 整数划分相乘

原题:1186 乘积最大题意:整数划分成多部分相乘解析:根据区间dp的思想,我们定义dp [ i ] [ j ]为从开始到 i 中加入 j 个乘号得到的最大值。 那么我们可以依次计算加入1—-m-1个乘号的结果 而每次放入x个乘号的最大值只需枚举第x个乘号的放的位置即可 dp [ i ] [ j ] = MAX (dp [ i ] [ j ] , dp [ k ] [ j-...

2018-03-14 22:32:40 509

原创 大数运用

原题:矩阵取数游戏题意:对每一列,每次操作取左端或右端的数,第i次得分为所取数*2^i,求取完后的最大得分解析:首先是题目,本来是从外往内取,每次选左或右的最大值,乘2的当前次数次方。其实我们用dp[2][4]表示最后(4-2+1)此取2~4的最大值,从内往外取,对于以前的乘2再加上选择加的那个,第一个取的乘的2不就是2的这么多次方吗?dp[l][r]=max(dp[l][r-...

2018-03-14 22:27:17 494

原创 大数(高精度)

大数的简介及应用在c中,最大的整形为long long,大于1e18左右,但是在很多时候,long long还是鞭长莫及,这个时候,我们就要用到大数来储存了。对于每个数,我们用这个int[]来储存,第一位为符号位,1代表正,-1代表负,为了方便,后面的位是按照原数的低位到高位储存 例如246存为 1 6 4 2。这样,管你多大的数我们都可以存下来了。定义好了之后,就自己重载一遍所需...

2018-03-14 22:13:54 531

原创 线段树

原题:Manipulate Dwarfs 题意:up为交换两个位置上的人,query为询问以这两个位置为左右边界的区域上的人的编号是不是连在一起,354就是在一起。解析:因为所以人编号不同,所以只要求出区域内的最大值减去最小值+1是不是等于区域长度即可。用线段树维护最大值和最小值。代码:#include<stdio.h>#include<iostre...

2018-03-13 08:51:42 326

原创 逆元在阶乘上的运用

what’s 逆元原题:xiaoxin juju needs help题意:给一字符串,问用这个字符串里面的字符可以拼成多少个不同的回文串解析:把回文串分成左右两边,即字母x出现次数除2,求排列C假设左半边有x个字母a,y个字母b,z个字母c,C==(x+y+z)! / x! / y! / z!普通的做法有个bug,(x+y+z)!当然可以做,但是%mod后再除x!呢?...

2018-03-12 21:19:24 821

原创 模拟栈

原题:Joint Stacks题意:三种操作,pop,push和merge,merge时按照元素的进栈先后排序解析:用set存下元素出现的时间,开始的时候set[0]A,set[1]为B,posa为0,!posa为1,在merge的时候如果元素多的往元素少的堆转移的时候,我们还是把少的加入多的堆,然后posa=!posa即可。代码:#include<stdio.h...

2018-03-12 19:52:17 273

原创 灯塔

原题:1269题意:有n个灯塔m条关系,每条关系a,b代表a她可以往b塔传消息,问你告诉几个塔就可以传遍所有塔。解析:首先把所有塔分为两种:有通向此塔的其他塔的塔——子塔,和必须由你来告诉的塔——母塔。对于第二种,我们做一遍dfs,删去下面可以延伸的子塔,剩下的只有两种塔了:原先的母塔,和自成环路的子塔群。我们再对所有的塔删一遍,同时记录dfs的次数就是ans。代码:...

2018-03-12 16:49:58 584

原创 多人背包

原题:1337题意:n样物品,k个背包,背包大小为v,每个物品无限数量,但是每个包里不能出现相同物品,且每两个包放的东西不能完全一样,求k个包所能装下的最大价值量。思路:说白了,01包求的是最大值,现在求的是前k种最大方法。我们在dp[i]表示i大小背包所能装的最大值的基础上加一维dp[i][j]表示i大小装的第j大的装法。01包每次装下一个物品的时候,我们就维护dp[i]...

2018-03-08 14:40:33 636

原创 求一棵树两个点的最远距离

原题:1361 树的最远距离题意:给一棵树,求两个点这间的距离的最大值解析:想了很久,发现两个点a,b也就只有几种情况a为b的父结点a与b属于同一父结点的两条不同分支看到题目,很多人当然会想到离root最远的那个结点。我们现在就利用这个结点来设计算法。证明:最远路一点以最远结点为端点如果是第一种情况,a,b为同一分支,那么a和b同时往相反方向走到极限,便是一个...

2018-03-08 10:03:09 1628

原创 J - The Meeting Place Cannot Be Changed(走到一点花费时间最少)

原题:codeforces 780题意:给n个人的在数轴上的位置,已经他们移动的速度,求他们汇聚到一点的最小时间,eps为1e-6。解析:二分时间,对于每个时间,求出所有人,向左走这个时间后所在位置的最右值,向右走的最左值,看看是不是相交,不如不相交就说明不能在这个时间内汇聚到一点。注意精度为1e-6,我开始的时候设成1e-12,在 3 \n 1 10000000...

2018-03-07 22:16:34 371

原创 二分删字符串

原题:String Game题意:给字符串a,b,给出删a中字符串的顺序,求最多删多少次后,b还是a是子序列解析:一个一个删就T了,所以二分一下删的个数代码:string a,b;int s[200009];int sub[200009];int judge(int t){ mmm(sub,0);for1(i,1,t)sub[s[i]]=1; i...

2018-03-07 21:31:25 419

原创 牛宫 单调栈

原题:牛宫——中级题意:在给定矩阵中取一个面积最大的要求矩阵(所有格子数之和大于等于0)解析:首先不能暴力遍历所有矩阵,n^4会T,我们可以先定矩阵的左右边界,时间最坏为n^2。对于每次情况,我们从上往下把边界内一行的数据加到变量sum里面(前缀和),假设我们加到了第k行,首先考虑从第一行到第k行所以能不能满足大于等于0,如果不行,我们再考虑从第一行开始删除几行,使最后得到的矩...

2018-03-07 20:54:20 527

原创 H - Hacker, pack your bags!

原题:822C题意:给你n段线段,每段线段有一个花费,例如2~5花费为3,找两段不重复的线段,长度加起来为k的,使这两段的花费之和最小。注意2~5和5~6算重复。思路:L,R<2*10^5,那么我们可以遍历时间点。用num[i]表示当前时间点前的长度为i的线段的最小花费。每次循环先求出左端点在这个点的旅券的长度len,那么花费就是num[x-len]+cost。再求右...

2018-03-07 13:17:23 374

原创 最小生成树——取水

原题:zjnu 1213题意:给n个地方的凿井花费,每个地方和其他地方的造水管花费,求把所有地方都通水的最小花费解析:对于凿井花费,我们看成和0结点(不存在)的通水花费即可,然后用最小生成树的模板求连接所有结点的最小花费(因为所有结点包括0结点,所以不会出现没有水的错误)。代码:#include<iostream>#include<cstdio&gt...

2018-03-06 09:14:19 506

原创 裂点建图求最短路

原题:游戏机器人【模拟题】——高级题意:每个格子有一个命令, “Straight”: 保持机器人当前的方向,并前进一格。 “Right”: 右转90度,并前进一格 “Back”: 转180度,并前进一格 “Left”: 左转90度,并前进一格 “Halt”: 停在原地,并结束游戏。 机器人初始朝向东(右),如果按照格子的命令走,花费为0,如果需要按照主人的命令走,4个...

2018-03-05 21:06:37 437

原创 可上升字符串

原题:1176题意:给出一个按字典序排序好的字符串序列,从中按顺序选出多个字符串,组成一个句子,每个字符串都可以通过改变一个字符,删除,添加一个字符得到相邻的字符串Sample Inputcat dig * dog fig * fin * fine * fog log wine *Sample Output5思路:对于每个输入的字符串,我们可以枚举这个...

2018-03-05 18:56:19 434

原创 田忌赛马

原题:1342–赛马–中级题意:如田忌赛马,求田忌通过这n匹马可以赢的场数的最大值解析:sort一遍,先比较最小的,如果最小的马之间田忌可以赢一场,那么就比掉;然后同样的道理比最大的;如果还不行的话,再拿田忌的弱鸡马消耗掉王的宝马(当然排除掉相同的情况才能消耗)。其实这道题有很多其他的方法也可以求,但是要小心别错在了相同的情况。当然了,这个方法应该是最优的,不管是时间还是空...

2018-03-05 18:32:17 1055

原创 数位dp

数位dp,就是用一个dp[i][j]代表第i位为j中的符合条件的数的个数,例如dp[2][3]就代表了30~39中的数。而状态转移方程是dp[i][j]+=dp[i-1][k](k属于0~9),例如dp[2][3]+=dp[1][0~9],30~39的数可以通过0~9转移。而在求到从0到一个数范围内的时候,我们对于这个数的每一位都设置一个上界,213的上界为2,1,3。通过dp数组把213分为...

2018-03-05 09:02:33 355 1

VA_X 相关资源 内含Trial-Reset和安装程序

VA_X 相关资源 内含Trial-Reset和安装程序

2022-02-25

mnist手写数字数字集

5000个mnist手写数字数字集,4500个训练集(Xtrain,ytrain),500个测试集(Xtest,ytest)。 每个样本X有400个特征,10种答案(1~10,10表示0)

2019-12-11

空空如也

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

TA关注的人

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