- 博客(14)
- 收藏
- 关注
原创 使用VMware安装CANN8.0.0(Ubuntu18.04)
本文分享本人使用VMware在Ubuntu18.04LST环境中安装CANN8.0.0.alpha001的过程(home路径下)
2024-11-14 20:09:23
356
3
原创 Codeforces #783 div2 D. Optimal Partition(dp+离散化+树状数组维护)
题目链接https://codeforces.com/contest/1668/problem/D题意给出一个长度为n的数组a,现在需要将该数组分成任意段设s为[al,ar][a_l,a_r][al,ar]中各元素之和,即al+...+ara_l+...+a_ral+...+ar对于每一段[al,ar][a_l,a_r][al,ar],其val为:val=r−l+1(s>0)val=r-l+1(s>0)val=r−l+1(s>0)val=0(s==0)val=0
2022-04-22 12:02:26
645
1
原创 [leetcode 913] 猫和老鼠(博弈、dp)
题目链接:https://leetcode-cn.com/problems/cat-and-mouse/题目大意:在一张无向图中,老鼠开始处于1号点,猫开始处于2号点,0号点是洞(猫不能进入),猫鼠交替移动(老鼠先)。若老鼠能进入洞中,即老鼠胜,输出1;若猫能抓住老鼠(猫鼠同在一共点),即猫胜,输出2;否则则为平局,输出0。解题思路:这题可以用状态转移,将初始状态转移到已知的胜负的状态中。我们可以使用一个三维数组 dp[i][j][k]dp[i][j][k]dp[i][j][k] 表示当老鼠
2022-01-04 16:27:50
3098
原创 算法学习笔记——对顶堆
对顶堆介绍对顶堆是由一个大顶堆和一个小顶堆组合而成的数据结构,与传统堆维护最大数不同,对顶堆用于动态维护第k大的数。在对顶堆中,小根堆位于大根堆的上方,要保证小根堆的所有数始终比大根堆大。对于对顶堆,我们可以用两个优先队列来表示两个堆。而他所维护的,我们可以看成一个单调的序列这时,我们对两个队列的队列元素数量进行维护(把队首从一个队列中弹出来,加入到另一个队列),那么就可以实现在每次查询第k大/第k小数时,直接访问其中一个队列的队首元素就可以了的。例题:(1)、洛谷P1168 中位数题目链接
2021-10-07 01:19:01
3446
原创 POJ 3281 Dining (最大流,建图拆点)
题目地址:http://poj.org/problem?id=3281题目大意:目前有n只牛,f种食物,d种饮料,每种饮料和食物都只有1份,现在我们知道了每头牛喜欢的食物种类和饮料种类,求在为每头牛只分1份食物和一份饮料的情况下,最多能满足多少头牛的需求。这题我们可以看出是网络流的最大流问题,不过难点还是出现在了建图上。。。也许我们能想到,把牛列在食物和饮料之间,从s向食物连边,食物向牛连边,牛向饮料连边,饮料再向t连边,那么每次跑出来的路径就能是每头牛跟它喜欢的食物饮料的最大流了但这真的就可以了
2021-08-25 23:44:58
112
原创 算法学习笔记——网络流(最小费用最大流)(POJ2195 Going Home)
接上我上一篇写最大流的博客:https://blog.youkuaiyun.com/qq_52177557/article/details/119893851二、最小费用最大流最小费用最大流是在最大流的基础上,每条边除了流量值还有费用值,现在既要保证流量最大,还得保证费用最小。对于最小费用最大流,只需要对最大流EK算法的bfs稍微改动一下,把bfs改成SPFA就行了!!!放上例题:http://poj.org/problem?id=2195题目大意:一张n*m的图,图中‘m’代表小人,‘H’代表房子,每个房
2021-08-25 23:02:01
171
原创 算法学习笔记——最近公共祖先(LCA)模板
模板题地址:https://www.luogu.com.cn/problem/P3379定义:最近公共祖先简称 LCA(Lowest Common Ancestor)。两个节点的最近公共祖先,就是这两个点的公共祖先里面,离根最远的那个,指的是离两个点最近的公共祖先节点。 (OI-wiki)求法:一、暴力求法:每次将u、v中深度较大的节点向上跳到其父节点,因为两个节点都存在于同一颗树上,因此两个点必然会相遇,那么这个相遇的节点就会是两个点的最近公共祖先(LCA)对于这种做法,最坏的情况就是需要df
2021-08-18 00:37:52
177
原创 Codeforces Round #737 (Div. 2) C、Moamen and XOR
原题地址:http://codeforces.com/contest/1557/problem/C题目大意:给两个数n和k,问满足 a1 & a2 & a3 … & an >= a1 ^ a2 ^ a3 … ^ an ( 0 <= a[i] <= 2^k )的有多少种不同的数组思路:根据位运算,奇数个1异或的结果才是1,偶数个1异或的结果是0;而只有所有数都为1,与的结果才是1,其余情况结果都是0n为奇数的情况:对于这种情况,与的结果会始终小于等于异
2021-08-11 09:34:57
250
2
原创 Codeforces Round #723 C1、C2-potions【悔步贪心】
题目:网址:http://codeforces.com/contest/1526/problem/C1翻译一下:一个人初始健康为0,有n个药瓶,每个药瓶都有各自对健康的影响(a[i])。现在可以从左到右依次对每瓶药选择喝下或者忽略,求在保证全程健康值大于等于0的情况下,最多能喝多少瓶药思路:在写C1时,因为n是2000,我的第一感觉是写dp (因为真没想到别的方法qwq) ,于是在我开始推转移方程,写出来一个n2的dp。也把思路记一下吧(虽然是过不了C2的):f[i][j]f[i][j]f
2021-05-29 10:09:25
269
2
原创 树:前序遍历、中序遍历、后序遍历三者的相互求解
刚刚又 复习 预习了一下树的遍历,也刚好再看看每两种遍历方法组合后建立树的方法;如果能建立一棵完整的树,那也就可以求出另一种遍历序列了。借这个博客刚好记录一下方法,防止以后忘了又得找文章新学一遍
2021-05-19 19:45:26
6214
6
原创 STL: vector、set和map容器中元素的遍历
vector、set、map作为本人在stl里用的最多的三种容器,我打算在这记一下这三种容器类型的遍历方式(不过并不全,只是各及了一种)一、vector类型的遍历在这三种容器里边,vector应该算是最好遍历的了,使用v.size()先得到数组的元素数,接着就可以用for循环进行遍历输出了#include<bits/stdc++.h>using namespace std;int main(){ ios::sync_with_stdio(false); cin.tie(0); c
2021-04-25 21:53:33
841
1
原创 最大子矩阵和问题(“九韶杯” 最强对手矩阵、AW的西瓜田)
最大子矩阵和问题就是在一个n*m的已知的全为数字的矩阵中,找到一个子矩阵,使这个矩阵各元素的和是所有子矩阵中最大的。在我看来,这种类型的题分为两种类型:1、固定了矩阵的长宽,求最大和;2、没有固定矩阵大小,求子矩阵最大和。虽然算是两种不同的情况,但是两者都可以用差不多的方法解决:二维数组前缀和。后面就各用一道题来记录一下这两种类型:一、“九韶杯”G题 最强对手矩阵题目链接:https://ac.nowcoder.com/acm/contest/13493/G在这题中,题目表意就十分清楚了:求
2021-04-13 16:30:33
569
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人