首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
希胤
获赞
14
粉丝
2
关注
13
看过 TA
24
门头沟学院
2023
Java
IP属地:江西
暂未填写个人简介
私信
关注
拉黑
举报
举报
确定要拉黑希胤吗?
发布(195)
评论
刷题
收藏
希胤
关注TA,不错过内容更新
关注
2020-10-23 20:40
门头沟学院 Java
P1889 士兵站队
纵坐标:易知是中位数到各点距离之和最短 横坐标:设最终x1的位置为k+1,所以x2的位置为k+2 ... xn的位置为k+n 则各点的横向移动距离为 |x1-(k+1)|+|x2-(k+2)|+...+|xn-(k+n)| 变形 ==> |(x1-1)-k|+|(x2-2)-k|+...+|(xn-n)-n| 通项为 ==> | (xi-i) - k | 则要使其和最小,取其(xi-i)的中位数即可 #include<bits/stdc++.h> using namespace std; in...
0
点赞
评论
收藏
分享
2020-10-23 17:25
门头沟学院 Java
中心点(中位点)到其各个点的距离之和最短
题目: 输油管道问题(洛谷) 这道题是简单的中位数,经典的输油管道问题 此题是中位线到各个点的距离之和最短 #include<bits/stdc++.h> using namespace std; int const N=1e4+7; struct L{ int x,y; friend bool operator<(L a,L b){ return a.y < b.y ; } }a[N]; int n,ans; int main(){ cin >> n; for(int i=1;i<=n;++i){ cin >...
0
点赞
评论
收藏
分享
2020-10-21 23:29
门头沟学院 Java
最短路和最小生成树(dijkstra和prim)(prim模板)
题目:P3366 【模板】最小生成树题目: P4779 【模板】单源最短路径(标准版) 最小生成树: 边权之和最小 每次加入(染)最短的边 优先队列放的是边长(即边权)(以该点为终点的边的边长) 最短路: 从原点到任意一点的距离最小 每次加入(染)离原点最短的边 优先队列放的是原点到该点的距离以下是最小生成树(prim)#include<bits/stdc++.h>using namespace std;#define ll long longint const N=5e3+7;int const M=2e5+7;int cnt,a...
0
点赞
评论
收藏
分享
2020-10-14 23:03
门头沟学院 Java
蓝桥20年(第十一届)6月
E、矩阵 #include<bits/stdc++.h> using namespace std; #define ll long long ll f[1017][1017]; //f[i][j]表示第一行i个数,第二行j个数的方案数 int main(){ f[0][0]=1; for(int i=1;i<=1010;++i){ for(int j=0;j<=i;++j){ //因为第一行一定先放,所以 j<=i //未操作时的f[i][j]表示 第(第一行i个数,第二行j个数)时的数 if(i-...
蓝桥真题
0
点赞
评论
收藏
分享
2020-10-11 13:52
门头沟学院 Java
map,第一个为关键字,第二个为键值
#include<bits/stdc++.h> using namespace std; int n; map<string,string>mp; //第一个为关键字,第二个为键值 int main(){ cin >> n; for(int i=1;i<=n;++i){ string str1,str2; cin >> str1 >> str2; if(mp.find(str1)==mp.end()){ mp[str2]=str1; ...
0
点赞
评论
收藏
分享
2020-10-10 23:40
门头沟学院 Java
字符串存大数
参考博客 #include<bits/stdc++.h> using namespace std; int k,len; string str; int main(){ cin >> str; cin >> k; len=str.size(); while(k){ for(int i=0;i<len&&k;++i){ if(str[i]>str[i+1]){ for(int j=i;j<len;++j){ str[j...
0
点赞
评论
收藏
分享
2020-10-10 20:33
门头沟学院 Java
STL(list)(双向链表)
参考博客 #include<bits/stdc++.h> using namespace std; int n,m; int const N=1e5+7; list<int>s; list<int>::iterator pos[N]; //用find会超时,所以用数组记录位置 int vis[N]; int main(){ cin >> n; s.push_back(1); pos[1]=s.begin(); for(int i=2;i<=n;++i){ int k,p; ...
0
点赞
评论
收藏
分享
2021-09-23 17:21
已编辑
门头沟学院 Java
分组背包(模板)
//考验心境的时候到了 //和人比惨,痛苦减半 #include<bits/stdc++.h> using namespace std; namespace{ template<typename T> inline void read(T &s){ T f=1;s=0;char ch=getchar(); for(;!isdigit(ch);ch=getchar()) if(ch=='-') f=-1; for(;isdigit(ch);ch=getchar()) s=(s<<1)+...
0
点赞
评论
收藏
分享
2020-10-06 23:46
已编辑
门头沟学院 Java
dp求最少不增子序列的划分数(覆盖数) 等于 最长递增子序列的长度
dilworth定理:最长链长度=最小反链覆盖数 (默认反链尽可能长 )最长反链长度=最小链覆盖数 (默认链尽可能长 ) 链指任意两个元素可比较反链任意两个元素不可比较 解释:离散数学中有一个知识点叫作二元关系,所谓二元关系通俗的理解就是某一个元素有两个键值,用以下的代码来简单的理解一下 struct node{ int a,b; }; bool operator<(node n1,node n2){ return n1.a < n2.a && n1.b < n2.b; }在以上例子中,只有一个对象的a,b均小于另一个对象,两者才可比。...
0
点赞
评论
收藏
分享
2020-10-06 16:14
门头沟学院 Java
严格不相交的两条路径,要保证一个人一定在另一个人的右边
题目: P1006 传纸条 这题虽然跟方格取数很像,但是这题要求两个人的路径严格不相交减了两条枝,复杂度已经够优秀了 include<bits/stdc++.h> using namespace std;#define low(x) x&(-x)#define ll long longint m,n;int mp[55][55];int f[55][55][55][55];int main(){ cin >> n >> m; for(int i=1;i<=n;++i){ for(int j=1;j<=m;++j...
0
点赞
评论
收藏
分享
2020-10-06 15:18
门头沟学院 Java
树状数组区间修改——树状数组存差分数组即可
题目: P3368 【模板】树状数组 2 #include<bits/stdc++.h> using namespace std; #define low(x) x&(-x) #define ll long long int const N=5e5+7; int n,m; ll a[N]; void add(int pos,int val){ for(;pos<=n;pos+=low(pos)){ a[pos]+=val; } } ll ask(int x){ ll z=0; for(;x;x-=low(x)){ ...
0
点赞
评论
收藏
分享
2021-03-23 21:32
已编辑
门头沟学院 Java
树状数组(模板)
参考博客题目: P3374 【模板】树状数组 1 lowbit:二进制最低位1的大小,也是其能管辖到的数的范围 树状数组记得开long long 单次操作的时间复杂度是O(lgn) 只需开N的空间 比线段树的常数小 按值建树( add(a[i],1) ):ask可以求比当前数小(或大)的数的数量 按位置建树( add(pos,1) ):ask可以求当前点左(或右)边的点数 树状数组:求前面或后面有多少个数 求某区间特定性质点的数量 可用于单点修改,区间查询 区间修改,单点查询等等// #include<bits/stdc++.h> using na...
0
点赞
评论
收藏
分享
2021-05-08 11:31
已编辑
门头沟学院 Java
树形dp之强行二叉树(树上背包)(模板)
题目: 二叉苹果树 f[x][j]表示以x为根的树保留j条边(除x外j个结点)得到的最多苹果数f[x][j]=max(f[x][i],f[x][k]+f[u][j-k-1]+w;u是x的儿子 此题是树上背包(多叉树),树上背包可以看成二叉树的合并,将左边的森林(可以为空)看成左子树,将右边依次枚举的单边看成右子树其过程看成左子树不停向右拓展即合并右子树 #include<bits/stdc++.h> using namespace std; int const INF=0x3f3f3f3f; int const N=1e2+7; int n,cnt; int head[N]; s...
0
点赞
评论
收藏
分享
2022-10-18 21:34
已编辑
门头沟学院 Java
树形dp之最小支配集(树形dp模板)
题目: CellPhoneNetwork 最小支配集:一个点可以覆盖其周围所有的点包括自己 f[i][0]被其儿子覆盖 f[i][1]被自己覆盖 f[i][2]被其父亲覆盖 设j为i的儿子 f[i][0]= min(f[j][0],f[j][1])+tmp; //tmp表示维护至少有一个儿子覆盖的最小差值 f[i][1]= min(f[j][0],f[j][1],f[j][2])+1; f[i][2]= min(f[j][0],f[j][1]); 注意:根没有父亲,所以不能被父亲覆盖 #include<bits/stdc++.h> using namespace std; int...
0
点赞
评论
收藏
分享
2020-10-04 23:09
已编辑
门头沟学院 Java
树形dp之最小点覆盖(模板)
最小点覆盖:一条边至少要选一个点 这题测评姬的编译器只能选c++,不能选c++11和c++14,很古老,不能用万能头,不能用string 注意这题有0号结点,所以(前向星和平常不一样的地方(以后就用下面这种,防止0号结点)): 1、for(int i=head[x];i!=-1;i=edge[i].next) 2、memset(edge,-1,sizeof(edge)); //3、memset(head,-1,sizeof(head)); //这个不需要转移方程:f[x][0]= f[i][1];f[x][1...
0
点赞
评论
收藏
分享
1
8
9
10
11
12
13
创作者周榜
更多
关注他的用户也关注了:
牛客网
牛客企业服务