自定义博客皮肤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)
  • 收藏
  • 关注

原创 PTA天梯赛

注意看此图tree数组的下标与读入的数的顺序,不是tree[1]=91,tree[2]=71.....

2023-03-12 10:26:00 47

原创 蓝桥--带分数(突破一个函数)!!!

说实话,看到这个题,我是懵逼的,因为我感觉不知道咱们入手,看了题解发现,有一个全排列函数,我是真不知道,有了这个函数之后,发现真的很奈斯!因为是a+b/c的形式,所以整数部分是除去分子分母,9-2=7,所以至多7位数表示,同理,除去一个分母,整数+分子至多8位。另外 next_permutation(x1+1,x1+10)函数真的没有见过!

2022-12-27 17:19:06 40

原创 2021ICPC江西省赛 部分个人题解

题解:显然,坐标y对结果不会产生影响,我们只需要对每块板子用前缀和记录即可知道长度,最后统计之后上方有板子的地面就是不会被淋到的地面。(但是数据好像挺弱的,有人写了n^2的暴力好像也过了)通过观察图可以发现,他们最后落到x轴上的范围就是合并区间后的,x2-x1的差值,所以我们只需要解决区间合并即可, 然后求出所有的x2中最大的横坐标减去所得区间即可。题目大意:给定n个板子,每个板子是从x1,y1伸展到x2,y2。刚开始使用的DFS,但是好像不太行,所以后想到了DP。首先,仔细观察图可以发现。

2022-11-04 21:38:00 79 1

原创 bellman算法和spfa算法和dijkstra和Floyd

A[0][1]=5,A[0][0]=0,A[0][1]=5,更新后和更新前没有变化,所以不用更新这些点。以下,当当前点分别为1,2,3的时候同理。例如:A[3][0]=∞,A[3][2]=1,A[2][0]=3,所以满足∞>3+1,所以将 A[3][0]更新为4,path[3][0]更新为2。若对当前点与点对里面的点有相同的(和中间点相同,则不用看这些点,v代表中间点,也就是path所存的点,剩下的两层循环就是顶点对。,这些点都不用遍历,直接遍历余下的点,因为,当0为中间点,堆优化版本 (用于稀疏图)

2022-09-18 21:14:36 69 1

原创 【时间复杂度和空间复杂度】

时间复杂度是时间增长的一个趋势

2022-08-03 10:50:17 23

原创 数位DP--

数位dp的题目一般会问,。

2022-07-30 11:36:28 90 1

原创 dfs的总结好题+BFS(后续补上)

250>100,这样做的目的是如果每一列相加对应大于所需的维他命数,那么他们加起来一定满足需要的维他命的含量。for(intj=1;for(inti=1;i++)//维他命种数同V。for(inti=1;boolcheck(intx,intug)//维他命的总种数。先是for(inti=1;因为i是从1~4,所以此时若i=1,那么对应100。即如果当前i=1,那么内层会打印两次,所以形成。就用样例,假设ug=2,v=样例中的4,就用样例,假设ug=2,v=样例中的4,............

2022-07-22 11:35:28 32 1

原创 2022“杭电杯”中国大学生算法设计超级联赛(1)题解

那么对于一个物品(v,w)(v,w)(v,w),转移为f[i][j][k]=f[i−1][j][k]∣f[i−1][jxorv][k−v]f[i][j][k]=f[i-1][j][k]|f[i-1][j\xor\v][k-v]f[i][j][k]=f[i−1][j][k]∣f[i−1][jxorv][k−v]②没有取第i件物品,f[i][j][k]=f[i-1][j][k]

2022-07-21 10:46:43 71 1

原创 AcWing 1064. 小国王【线性状压DP+滚动数组优化+目标状态优化】

如上图所示,绿色方块为摆放国王的位置,红色方块为王的攻击范围。只要任意王之间只要不相邻,就是合法的状态。

2022-07-20 10:59:52 29

原创 背包问题(全)

https://www.bilibili.com/video/BV19Z4y1e7bU?spm_id_from=333.999.0.0&vd_source=7e0e9d2b62d30d79dfa6daa578e6ab79 下面的图,第一个为i正序 第二个为i倒序(视频里讲的很好) 可以见B站:讲的很好https://www.bilibili.com/video/BV19Z4y1e7bU?spm_id_from=333.999.0.0&vd_source=7e0

2022-07-12 16:02:48 24

原创 【多重背包III】单调队列优化DP难

CODE :非常好的视频讲解:https://www.bilibili.com/video/BV1354y1C7SF?spm_id_from=333.337.search-card.all.click&vd_source=7e0e9d2b62d30d79dfa6daa578e6ab79 代码解读 :1.通过找规律来找出背包问题的关系判断当前单调队列的队头是否滑出队列......

2022-07-07 13:20:05 36 1

原创 【红旗杯第十五届东北地区大学生程序设计大赛K】

卢西达占据了n个城市,由m条不定向的道路连接,每条道路都有一个强度ki。敌人将通过攻击来摧毁这些道路。当敌人发起伤害为x的攻击时,所有强度小于x的道路都将被摧毁。现在Lucida有Q问题要问你,如果敌人发动伤害pi的攻击,有多少对城市是可以相互到达的。城市x和城市y是可以到达的,这意味着有一条从x到y的路径,而且这条路径上每条道路的强度都大于或等于pi。输入这个问题包含多个测试案例。第一行包含一个整数T(1≤T≤10)。接着是T个测试用例。对于每个测试用例,第一行包含3个整数...

2022-05-19 21:36:42 43

原创 codeforces #789 B题(这种题就不应该浪费时间,但是规律也不太好找)

B1这是该问题的简单版本。这两个版本的唯一区别是,更难的版本还要求有一个最小的子段数。Tokitsukaze有一个长度为n的二进制字符串s,只由0和1组成,n是偶数。现在,时风将s分成最少的连续子段,对于每个子段,每个子段的所有比特都是一样的。之后,如果所有子段的长度都是偶数,则认为s是好的。例如,如果s是 "11001111",它将被划分为 "11"、"00 "和 "1111"。它们的长度分别为2、2、4,都是偶数,所以 "11001111 "是好的。另一个例子,如果s是 "..

2022-05-14 09:51:31 81 1

原创 最短路算法的比较与总结

1.Dijstra思路:算出当前点的所有出边的边权的最小值,最后再遍历一下找出所有点的出边的最小值的最小值,然后加和算出最短路径。2.bellman-ford由当前点走,每次尝试当前点的出边并找出当前点所有出边的最小值,最后加入,继续走下一个点。3.spfa将起点到每一个点的最短距离求出,最后,比如算1~6,将能从1到6经过的点的最短路径相加,则求出最短路径。...

2022-05-11 09:12:37 38 1

原创 【再看迪杰斯特拉算法】

最近又新看了一遍迪杰斯特拉算法,又有很大的收获。输出样例:3模板1:但是个人觉得模板二更好理解。int Dijkstra(){ memset(dist, 0x3f,sizeof dist); //初始化距离 0x3f代表无限大 //dist[1]=0; //因为是从第一个节点到第n个,所以,第一个点到自身的距离为0,这一步可以换为 for(int i = 0; i < N; i++) {// dist[]数组初始化,把起始结点..

2022-05-10 17:23:02 29 1

原创 【二分,加深理解】

原来不明白的点在这一瞬间似乎都明白了。来自算法竞赛进阶指南

2022-05-05 20:11:43 16

原创 二分(数学思维强1)

For each case, print the case number and the displacement of the center of the rod in a single line. Errors less than 10-6 will be ignored.SampleInput31000 100 0.0001150 10 0.0000610 0 0.001OutputCase 1: 61.3289915Case 2: 2.2502024857Case 3: 0..

2022-04-15 21:32:53 45 1

原创 【95费解的开关】

#include<bits/stdc++.h>using namespace std;const int N=6;char g[N][N],backup[N][N]; int dx[5]={-1,0,1,0,0},d[5]={0,1,0,-1,0};//偏移量,也就是当前点(x,y)向上(-1,0)(也就是x行数减一,y列不变) //,(1,0),(0,-1),...

2022-04-15 21:32:12 26 1

原创 【Educational Codeforces Round 126 (Rated for Div. 2)】

C. 浇灌树木每次测试的时间限制3秒每个测试的内存限制256 兆字节输入标准输入输出标准输出有nn公园中的树,编号为11自nn.的初始高度我i-th 树是h我hi.你想给这些树浇水,所以它们都长到相同的高度。浇水过程如下。你开始在白天给树浇水11.在jj-第四天,您可以:选择一棵树并浇水。如果一天是奇数(例如1,3,5,7,...1,3,5,7,…),则树的高度增加11.如果日期为偶数(例如2,4,6,8,...2,4,6,8,…),则树的高度...

2022-04-12 21:40:36 24

原创 【acwing789数的范围】

给定一个按照升序排列的长度为n的整数数组,以及q个查询。对于每个查询,返回一个元素k的起始位置和终止位置(位置从0开始计数)。如果数组中不存在该元素,则返回-1 -1。输入格式第一行包含整数n和q,表示数组长度和询问个数。第二行包含n个整数(均在1∼10000范围内),表示完整数组。接下来q行,每行包含一个整数k,表示一个询问元素。输出格式共q行,每行包含两个整数,表示所求元素的起始位置和终止位置。如果数组中不存在该元素,则返回...

2022-04-06 23:03:15 30 1

原创 【十一届蓝桥杯 平面切割】

纯纯的考数学公式,补充一下吧!我自己并不知道。知识总结:直线分割平面公式:1/2(N^2+N+2)封闭曲线平面分割公式:n^2-n+2折线平面分割公式:f(n)=2n^2-n+1平面分割空间公式:f(n)=(n^3+5n)/6+1#include<bits/stdc++.h>using namespace std;int c(int n){ int ans=2;//第一个圆平面分成两部分 for(int i=2;i<=n;i++)//再画19个圆 {...

2022-04-05 20:54:04 52 1

原创 背包问题(四个类型)

1.01背包2.完全背包3.多重背包4.分组背包一.01背包01背包:每个物品只有一个。题目:有 N件物品和一个容量是 V 的背包。每件物品只能使用一次。第 i 件物品的体积是 vi,价值是 wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。题目分析:f[i][j]为当前背包容量并且已装了前i-1个物品对应的价值。题目最终落脚在第i个物品装与不装上。1.在装第i个物品时,包的容量比物品的体积小,装不下,此时价值与前

2022-02-07 13:28:45 440 1

原创 数据结构----KMP+Trie+并查集+堆+Hash表+STL

一.KMP时间复杂度:o(m+n)空间复杂度:o(n)m:主串n:子串作用:在一个已知的字符串中查找子串的位置。思路:假设有主串z和模板串(子串)m主串:A B BA B B A A B A A子串:A B BA B A A下标:1 2 3 4 56 7由上图可知,主串与子串在下标为6的位置不匹配,我们此时需要做的是找出子串与主串的最长相等的前缀与后缀。如:主串:A B BA...

2022-02-07 12:24:36 53 1

原创 数据结构-----链表+邻接链表+单调队列+单调栈

一.链表与邻接链表单链表与双链表// head存储链表头,e[]存储节点的值,ne[]存储节点的next指针,idx表示当前用到了哪个节点int head, e[N], ne[N], idx;// 初始化void init(){ head = -1; idx = 0;}// 在链表头插入一个数avoid insert(int a){ e[idx] = a, ne[idx] = head, head = idx ++ ;}// 将头结点删除,需要保证

2022-02-07 11:08:58 170

原创 KMP算法详解

时间复杂度:o(m+n)空间复杂度:o(n)m:主串n:子串作用:在一个已知的字符串中查找子串的位置。思路:假设有主串z和模板串(子串)m主串:A B BA B B A A B A A子串:A B BA B A A下标:1 2 3 4 56 7由上图可知,主串与子串在下标为6的位置不匹配,我们此时需要做的是找出子串与主串的最长相等的前缀与后缀。如:主串:A B BA B B...

2022-02-06 17:09:06 851

原创 搜索与图论-------DFS与BFS与拓扑排序

一.深度优先搜索(基于栈)适用:既可以在无向图中也可以在有向图思路:从根节点出发,每次遍历他的第一个孩子节点直到遍历到叶子节点,再退回到他的父亲节点,接着遍历父亲节点的其他孩子节点,如此重复,直到遍历完所有的节点。核心代码:int dfs(int u){ st[u] = true; // st[u] 表示点u已经被遍历过 for (int i = h[u]; i != -1; i = ne[i]) { int j = e[i];...

2022-02-06 10:05:50 430

原创 搜索与图论-----bellman-ford+spfa+floyd算法

一.bellman-ford算法

2022-02-05 11:23:20 458 1

原创 搜索与图论--最小生成树与二分图

一.最小生成树1.prim算法2.kruskal算法二.二分图1. 染色法2.匈牙利算法————————————————————————————一.prim 算法时间复杂度o(n^2)适用:稀疏图,采用邻接矩阵若图中点的初始用蓝色涂上,(为蓝点u),每次循坏将蓝点变为白点,并且此蓝点与白点相连的最小边的权值是所有蓝点中最小的,如此得到的一定是往最小生成树中添加了n-1次最小的边的最小生成树。核心代码:int n; // n表示点数int g[N]...

2022-02-05 10:29:54 159

原创 【基础算法】

1.排序-快速排序(先排序后递归)一.找某一个数为基点(假设为x)二.将这个数分为|--------<=x---------|-------->=x-------|x三.然后递归,x左,右两侧分别排序四.后输出核心代码:Void quick_sort(int q[],int l,int r){If(l>=r)return;int x=q[(l+r)/2],i=l-1,j=r+1;while(i<j){do i++;wh...

2022-02-03 21:33:35 669

原创 【背包问题】(01背包)

01背包问题

2022-02-03 10:47:44 968

空空如也

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

TA关注的人

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