首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
在线笔面试、雇主品牌宣传
登录
/
注册
生之、如舟
获赞
78
粉丝
28
关注
21
看过 TA
80
男
河南理工大学
2025
golang
IP属地:湖南
在校大学生一枚
私信
关注
拉黑
举报
举报
确定要拉黑生之、如舟吗?
发布(181)
评论
刷题
生之、如舟
关注TA,不错过内容更新
关注
2020-03-19 19:07
已编辑
河南理工大学 golang
背包模板
01,多重,完全,分组均采用的是滚动数组的方式写的代码注意: 如果要改成二维存储形式,当装不下第i个物品时,要去继承上一轮的结果,比如下面的完全背包二维形式 01背包 对于物品而言只能选择1个或者0个两种情况;dp[j] : 体积为j能获得的最大价值 int V,N; int w[maxn],v[maxn]; ll dp[maxn]; for(int i = 1;i<=N;i++){ for(int j = V;j>=w[i];j--){ //因为采用滚动数组,故倒着循环,这样才能保证只选一次 dp[j] = max(dp[j],dp[j-w...
0
点赞
评论
收藏
分享
2020-04-26 16:11
已编辑
河南理工大学 golang
数据结构模板
堆 struct Heap{ priority_queue<ll>q1,q2; inline void push(ll x){q1.push(x);} inline void erase(ll x){q2.push(x);} inline void updata(){while(!q1.empty()&&!q2.empty()&&q1.top()==q2.top())q1.pop(),q2.pop();} inline ll top(){updata();return q1.top();} }Q;ST表 静态求...
Ryuichi的算法分享
0
点赞
评论
收藏
分享
2020-05-10 14:14
已编辑
河南理工大学 golang
HPU19级算法训练赛第七场【题解】
A - 程序设计:合并数字 #include <iostream> #include <algorithm> #include <string> #include <cstring> #include <map> #include <set> #include <deque> #include <queue> #include <vector> #include <cstring> #include <cstdio> #include <cstdlib>...
0
点赞
评论
收藏
分享
2021-05-03 22:28
已编辑
河南理工大学 golang
图论模板
图 最短路径 堆优化版dij using namespace std; typedef long long ll; typedef unsigned long long ull; typedef pair<int,int> pii; const int maxn = 1e6+10; int N,M,a,b,c; int h[maxn],e[maxn],w[maxn],ne[maxn],idx;//头节点表,编号表,权值表,链表 bool vis[maxn];int dis[maxn];//访问标记数组,距离数组 priority_queue<pii,vector<pi...
Ryuichi的算法分享
0
点赞
评论
收藏
分享
2020-03-06 21:17
已编辑
河南理工大学 golang
HPU2020蓝桥杯省赛训练(一) 题解
A.算法提高 找素数 用到的算法:素数筛选注意数据范围,L和R的选取范围在之间。说明普通的素数筛选暴力求解肯定是不行的。但是题目中给了,我们就可以根据这个关键来打表。一个左右的合数,它的某个因子必定,所以我们可以先素数筛选出前的质数。然后给定的L和R,如果R在之前,就直接在之前打好的素数表直接计数复杂度O(),然后如果,我们就用前的质数去把后面的合数给筛掉,打个表。注意表需要进行坐标映射,也就是本来是[L,R]区间,然后映射到[0,R-L],这样打表就不会超内存了。打表完了之后,计个数就可以了,复杂度 总时间复杂度 #include <iostream> #include <...
0
点赞
评论
收藏
分享
2020-03-02 20:08
已编辑
河南理工大学 golang
Atcoder ABC155 题解
Atcoder ABC155 A 题 其实不用排序,我沙壁了 #include <iostream> #include <algorithm> using namespace std; int arr[3]; int main(){ for(int i = 0;i<3;i++) scanf("%d",&arr[i]); sort(arr,arr+3); if(arr[0] == arr[1] && arr[1] != arr[2]){ puts("Yes");...
0
点赞
评论
收藏
分享
2020-03-02 18:21
河南理工大学 golang
Atcoder ABC155F Perils in Parallel 【构造图】【差分】【离散化】
Perils in Parallel 题目 意思就是有N个分布在不同点的炸弹,其状态有激活和未激活两种,我们可以有M个区间可供选择,对选择区间内的炸弹状态反转。问,是否可以将所有的炸弹置为未激活状态。若可以,请输出从小到大输出选择了那些区间。 分析 首先进行离散化,以题目样例1举例: 3 4 5 1 10 1 8 0 1 10 4 5 6 7 8 9原数据:离散化之后的数据,在最后加入一个虚拟的炸弹,便于之后差分操作:因为对[l,r]操作,差分就是对l,和r+1操作,所以多加一个。还有这里的差分是用的异或来代替之后进行差分:对应坐标压缩之后,所以原M个区间就变成如下对l,和r+1进行反转操作...
0
点赞
评论
收藏
分享
2020-03-01 20:11
河南理工大学 golang
CF624div3-F. Moving Points 【线段树】【离散化】
CF624div3-F. Moving Points 题目 意思很简单,就是在一个x轴上,有N个有速度的点,他们可以向左向右的速度,问在之后的移动过程中,两两点点距离差之和最小是多少。 分析 因为这是一个匀速运动,我们不妨把两个匀速运动方程做差,做差之后的运动方程就是就是两个点运动过程中的距离之差方程。 我们可以发现,只有和 同号两个点才不会相撞,因为他们的距离差是越来越大,所以我们可以通过排序固定为.所以只存在下面这种情况,当t = 0时,他们的距离差最小。 现在就遍历,每遍历一个就看在它之前有多少个(设为t)速度是小于等于它的,以及速度小于等于它的所有点离x = 0的距离和是多少(设为y...
0
点赞
评论
收藏
分享
2020-03-01 17:31
河南理工大学 golang
CF624div3-C. Perform the Combo 【差分】
CF624div3-C. Perform the Combo 题目 AC代码 #include <iostream> #include <algorithm> #include <stdio.h> #include <set> #include <cstring> #include <string> #include <cmath> using namespace std; typedef unsigned long long ll; ll T,N,M; int cnt[256]; int pos[100...
0
点赞
评论
收藏
分享
2020-03-01 17:32
已编辑
河南理工大学 golang
CF624div3-B. WeirdSort
WeirdSort 题目 AC代码 #include <iostream> #include <algorithm> #include <stdio.h> #include <set> #include <cstring> #include <cmath> using namespace std; typedef unsigned long long ll; ll T,N,M; ll arr[111],pos[111]; bool fun(){ sort(pos+1,pos+M+1); int ta...
0
点赞
评论
收藏
分享
2020-03-01 18:02
已编辑
河南理工大学 golang
CF624div3-A. Add Odd or Subtract Even
A. Add Odd or Subtract Even 题目 AC代码 #include <iostream> #include <algorithm> #include <stdio.h> #include <set> #include <cmath> using namespace std; typedef unsigned long long ll; ll T; ll a,b; int main(){ cin>>T; while(T--){ scanf("%lld %l...
0
点赞
评论
收藏
分享
2020-03-01 17:12
已编辑
河南理工大学 golang
CF624div3-E Construct the Binary Tree 【构造】【模拟】
Construct the Binary Tree 题意 给你n个结点,问是否可以构造成一个各结点深度之和为d的二叉树,如果可以输出YES和每个结点的父结点编号,如果不可以输出NO。根结点的编号固定为1 分析 这题很明显是个构造题,一向构造题弱项的我,写了3个小时也没有写出来,不过在参考了别人的博客之后,知道了怎么样能够更好的实现。这题的思路,如果让用手模拟的话很简单,但是要用代码来描述就比较困难了,所以也可以算是模拟算法题目。 我参考了这篇博客:传送门我们知道n个结点,构成深度之和最小的是完全二叉树,构成深度最大的是一条链。如果给定的d小于完全二叉树,或大于一条链的深度之和,则无法构成一个树...
0
点赞
评论
收藏
分享
2020-03-02 20:09
已编辑
河南理工大学 golang
CF 624#div3 【比赛题解】
比赛vj链接:https://vjudge.net/contest/360050#overview题解目录CF624div3-A. Add Odd or Subtract Even 简单题CF624div3-B. WeirdSort 简单题CF624div3-C. Perform the Combo 差分CF624div3-D. Three Integers 暴力枚举CF624div3-E Construct the Binary Tree 构造+模拟CF624div3-F. Moving Points 线段树+离散化
0
点赞
评论
收藏
分享
2020-02-29 20:03
河南理工大学 golang
CF624div3-D. Three Integers 【暴力枚举】
D. Three Integers 题目 给你三个数a,b,c,可以把a,b,c,进行+1.或者-1操作,最多减到1,问最少多少次操作能让a能整除b,b能整除c,并输出任意一组满足要求的a,b,c. 分析 这题我从一开始就想到枚举b,因为好多三个数的题,中间的数因为是和前后关联着,所以枚举他比较好。我的大致思路是,枚举从1到20000枚举b,a必定是b的一个因子,所以我们枚举因子,至于c,要能整除,c必定要变成(c/b)*b或者(c/b+1)*b,所以就这样枚举就可以了。复杂度,650ms过的,1e8的复杂度2s也是能过的。因为最极端的情况下,整除关系也不会超过这样10000 20000 40...
0
点赞
评论
收藏
分享
2020-04-10 18:07
已编辑
河南理工大学 golang
题目导航
数论&数学 Atcoder_ABC156_F - Modularness 模运算,稍微有点推公式HDU2050 折线分割平面 推公式P2789 直线交点数 推递推式Atcoder ABC156_E - Roaming 组合数学P2822 组合数问题 组合数+二维前缀和 基本算法 暴力枚举 CF624div3-D. Three Integers 简单枚举 构造 CF624div3-E Construct the Binary Tree 构造二叉树 图论 BFS P2853 [USACO06DEC]Cow Picnic S BFS DFS P4715 【深基16.例1】淘汰赛 线段树思想o...
0
点赞
评论
收藏
分享
1
6
7
8
9
10
13
关注他的用户也关注了:
牛客网
牛客企业服务