自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 CF630K Indivisibility题解

开发电脑游戏的IT City公司,准备改善员工奖励机制。奖励机制是这样的,当游戏的注册用户开始花钱购买产品时,公司会精确的跟踪每笔交易。每次当交易次数不能被2~10之间的任何数字整除时,这个游戏的每个开发者都会得到一个小奖励。

2022-12-10 10:56:35 213

原创 洛谷P2802 回家 题解

发现错了将近一半的点。最后在认(xia)真(zai)思(shu)考(ju)之后我发现必须是原来好好走(不绕圈吃血包)到不了终点才去绕圈(绕圈步数肯定比好好走多嘛),最后加了一个终点的判断才总算是A了。✿✿ヽ(°▽°)ノ✿。首先乍一看是一道裸的广搜,于是快乐的开了时间和血量两个二维数组,之后写了个pair的队列,之后快乐的提交,然后。

2022-10-12 22:31:28 337

转载 线段树 从入门到进阶

朴素的做法是for(i=4;因为如果对于1~4这个区间,你把1~3区间+1,相当于把节点1~2和3标记,但是如果你查询2~4时,你会发现你加的时没有标记的2节点和没有标记的3~4节点加上去,结果当然是错的。区间修改和单点查询,我们的思路就变为如果把这个区间加上k,相当于把这个区间涂上一个k的标记,然后单点查询的时候,就从上跑道下,把沿路的标记加起来就好。你会想到,我们只需要在查询的时候,如果我们要查的2节点在1~2区间的里面,那我们就可以把1~2区间标记的那个+1给推下去这样就能顺利地加上了。...

2022-07-21 11:21:20 190

原创 小明与春娇叠积木---题解

题意: 最长公共上升子序列。思路: 这道题可以用DP做,比较麻烦的是两个人要一块搞,可以用两个数组,一个是小明的DP,另一个是春娇的DP,转移方程大概就是dp[i]=dp[i-1]+1,dp[i]指以i结尾的最长上升子序列的长度是多少,dp[i]要不断取max,而ans是取小明和春娇的dp数组的min的最大值max。代码:#include<bits/stdc++.h>using namespace std;int n,a[200001],...

2021-10-16 21:31:49 276

转载 倍增法求lca(最近公共祖先)

思路:大致上算法的思路是这样发展来的。想到求两个结点的最小公共祖先,我们可以先把两个的深度提到同一水平,在一步一步往上跳,直到两个结点有了一个公共祖先,依照算法流程,这就是least common ancestor。但是如果这样一步步地往上未免太让人着急,为了提高一下效率,便不再每次只跳一步,而跳2i步。一般的,先这样蹦蹦跳跳跳上去直到两个结点相平,在两个一起这样蹦上去。怎么确定这个i该是多少合适呢?这里我们需要预处理一个数组f,f[u] [i]来表示结点u的第i代祖先,f[u] [

2021-10-04 13:16:51 214

原创 跳房子(单调队列优化DP)

题目重点for(int i=1;i<=n;i++){ while(x[i]-x[j]>=l&&j<i) { if(f[j]!=-0x7fffffff) { while(h<=t&&f[q[t]]<=f[j]) t--; q[++t]=j; } j++; } while(h<=t&&x[i]-x[q[h]]>r) h++

2021-08-17 16:53:55 156

原创 [USACO 2.4.4] Bessie Come Home

题目描述现在是晚餐时间,而母牛们在外面分散的牧场中。农民约翰按响了电铃,所以她们开始向谷仓走去。你的工作是要指出哪只母牛会最先到达谷仓(在给出的测试数据中,总会有且只有一只速度最快的母牛)。在挤奶的时候(晚餐前),每只母牛都在她自己的牧场上,一些牧场上可能没有母牛。每个牧场由一条条道路和一个或多个牧场连接(可能包括自己)。有时,两个牧场(可能是自我相同的)之间会有超过一条道路相连。至少有一个牧场和谷仓之间有道路连接。因此,所有的母牛最后都能到达谷仓,并且母牛总是走最短的路径。当然,母牛能向着任意

2021-07-22 21:12:43 178

原创 【华山论剑题解】

题目描述话说数年一度的武林盛事“华山论剑”将至,东邪、西毒、南帝、北丐,老顽童等高手云集华山之巅,誓要分出究竟谁是武林至尊……如此武林盛世,当然求围观。据统计,有n-1位同学想去华山看热闹,他们分别住在编号为1-n(除华山所在地x)的地方,华山编号为x(1<=x<=n)。现在有M(1<=m<=100000)条有向道路,每条路长为ti(1<=ti<=100)。由于每位同学看完打架后还要回家吃饭,所以要选择最短路径,求这n-1位同学的最短路径(一个来回)中最长的一

2021-07-20 20:56:06 577

原创 SPFA模板

#include<bits/stdc++.h>using namespace std;int n,m,cnt,dis[1000001],head[1000001],v[1000001];queue<int> q;struct hhh{ int nxt,to,w;}a[1000001];void add(int x,int y,int z){ a[++cnt].nxt=head[x],a[cnt].to=y,a[cnt].w=z,head[x]=cnt;}vo.

2021-07-19 21:09:54 102

原创 Bellman-Ford算法模板

#include<bits/stdc++.h>using namespace std;int n,m,cnt,dis[1000001],head[1000001];struct hhh{ int nxt,to,w;}a[1000001];void add(int x,int y,int z){ a[++cnt].nxt=head[x],a[cnt].to=y,a[cnt].w=z,head[x]=cnt;}void BF(int s){ memset(dis,0x3f.

2021-07-19 20:58:22 85

原创 并查集模板

#include<bits/stdc++.h>using namespace std;int m,n,a[100001],ans;int find(int x){ if(a[x]==x) return x; return a[x]=find(a[x]);}int main(){ scanf("%d%d",&n,&m); for(int i=1;i<=n;i++) a[i]=i; for(int i=1;i<=m;i++) { i.

2021-07-19 20:28:06 79

原创 Dijkstra算法模板

#include<bits/stdc++.h>using namespace std;priority_queue<pair<int,int> >q;int n,m,dis[20005],cnt,head[20005];bool v[20005];struct hhh{ int to,nxt,w;}a[20005];void add(int x,int y){ a[++cnt].nxt=head[x],a[cnt].to=y,head[x]=cnt.

2021-07-19 20:21:26 139

原创 连通分量定义

百度百科定义:无向图G的极大连通子图称为G的连通分量( Connected Component)。任何连通图的连通分量只有一个,即是其自身,非连通的无向图有多个连通分量。我の理解:连通分量其实就是一个图里面并查集集合数量的多少,相当于一个图中有多少个连通图。 就相当于是一个森林里有多少棵树。比如上面这个图里就有两个连通分量。...

2021-07-18 21:01:05 16598 4

坦克大战的exe版本(适合在上课的时候玩)

显示窗口就是exe的黑色样子,不容易被教练发现

2021-07-31

空空如也

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

TA关注的人

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