- 博客(49)
- 资源 (2)
- 收藏
- 关注
原创 cf551-brother_acm训练题解
A.二分来做,求出每个路线能承载seval 的最小时间,所有路线的最小时间就是答案。B.高中里的三视图,给你其中两个,和俯视方块存在的0/1矩阵,让你找到一种填充方式,判定就是存在?min(h(俯视),h(正视)) :0;C.01串题,把括号序列()看成0、1,(+1,-1)类似于卡特兰数的01串,S的所有严格前缀中0的个数要严格大于1的个数(也就是+1的个数要严格大于-1的个数)字符串中第一个字符一定是不是")",最后一个字符一定不是"(",且长度一定是偶数,这样就能构造出形如“(???????)”的字符
2022-06-11 23:26:13 145
原创 二叉搜索树C语言代码实现
有些题里除了这个概念,不知道的话就蒙圈了。先序遍历: root——>left——>right中序遍历: left—— root ——>right先弄一个只有四个节点的小型二叉树,实际上这种小型二叉树应用不大。二叉树的真正应用是二叉搜索树,处理海量的数据。代码很简单,两种遍历的代码也差不多#include<stdio.h>#include<stdlib.h>typedef struct node{ int data; struct n
2022-05-20 18:12:03 1655 1
原创 状态压缩dp
、状态压缩dp就是,当你发现一个问题他在一个非常小的网格里摆放着稀奇古怪的玩意,它的数据范围非常小,你一眼dfs 的时候,突然发现答案过大,直接枚举会T,甚至需要取模,抑或是在一个相邻的区间最多能有几天可以进行k次操作,询问你答案,你却一筹莫展的时候,你想到了它。但可以肯定的是,你有办法得到问题的答案。借助于二进制,借助于位运算,你把状态压缩成了二进制数,借助奇怪的位运算转移,然后你就成功了。接下来让我们来看例题:327. 玉米田农夫约翰的土地由 M×N个小方格组成,现在他要在土地里种植
2022-05-19 22:18:59 2377
原创 博弈论与SG函数
公平组合游戏公平组合游戏(Impartial Game)的定义如下: 游戏有两个人参与,二者轮流做出决策,双方均知道游戏的完整信息; 任意一个游戏者在某一确定状态可以作出的决策集合只与当前的状态有关,而与游戏者无关; 游戏中的同一个状态不可能多次抵达,游戏以玩家无法行动为结束,且游戏一定会在有限步后以非平局结束。 非公平组合游戏非公平组合游戏(Partizan Game)与公平组合游戏的区别在于在非公平组合游戏中,游戏者在某一确定状态可以做出的决策集合与游戏者有...
2022-05-17 21:14:52 521
原创 树基础--树的分类
1.无根树无根树的等价形式定义形式有以下几种:+有n个节点 n-1条边的联通无向图+无向无环的连通图+任意两个节点之间有且仅有一条简单路径的无向图+任何边均为桥的连通图+没有圈且在任意不同两点之间加上一条边后所得图含有唯一一个圈的图圈指的是任选一个顶点为起点,沿着不重复的边,经过不重复的顶点为途径,之后又回到起点的闭合途径称为圈。在无根树的基础上指定一个节点成为根,形成一颗有根树,有根树在很多时候仍然以无向图来表示,只是规定了上下级之间的关系。有关树的性质的一些定义:
2022-05-15 19:02:13 382
原创 高等代数--多项式与线性空间
1.多项式的定义:形如 f(x)= an*x^n+.......ai*x^i+...a0 ,叫做多项式,其中ai 是系数,x 是未知数,i 叫做 指数。若an 不为0称f(x)位 n 次多项式,记作 deg f(x)如果 a0 !=0,且 ai ==0 (i=1.2....n)则称f(x)为零次多项式,f(x)=b;等同于K 中非零元规定 0 多项式 的次数,deg0 = -INF ;deg(f(x)+g(x))=max(degf(x),deg g(x));deg(f(x)*g(x)
2022-05-09 17:45:44 4564
原创 C++ 特性 -封装
1.1类和对象封装属性和行为作为整体class typename{ admission://public,protected,private; 属性: ....... 行为函数: ......};int main(){ typename .... //实例化instantiate}1.2封装-权限:公共权限: public:成员类内可以访问,类外也可以访问保护权限: protected:成员类内可以访问,
2022-05-03 21:39:27 626
原创 Segment-Tree-线段树
线段树,顾名思义就是由一个一个线段组成的一颗树,每个结点都是一个线段(叶子结点是单元结点),那么每个结点应该包括:区间左右端点。区间要维护的信息。即每个结点是一个结构体。区间上可以进行区间查询,修改,求和等操作。线段树还是一颗二叉搜索树。其主要用于高效解决连续区间的动态查询问题。...
2022-05-01 20:12:12 539
原创 CF_EDU_127 solution
Problem C : Dolce Vita考虑贪心,因为涨价的额度是相同的,所以挑最便宜的商店买总会是最优的。先 sort 一下 ,我们需要求出每个商店的糖果最多能买多少次(天),我们先设b[ i ] 表示第i个商店的糖能买 b[i] 天,(b[i]-1)表示涨价了 多少天,sum[i] 表示前i 个商店的糖果在第一天的价格,涨价后 就有 总金额 x >= sum(i)+ (b[i]-1)* i,根据这个公式,轻松的出 b[i] <=(x-sum[i])/i+1;显然 当 ((x-sum[
2022-04-24 11:22:06 520 5
原创 回路-通路
有n 个顶点的图成为 n 阶图,没有边的图称为零图。1阶零图称为平凡图,平凡图只有顶点,没有边,设 e=(vi,vj)则称 vi,vj 是e 的端点,e 与vi vj 关联 如果 vi!=vj 也就是说不存在自环,则称 vi,vj 与e 的关联次数为以,如果 vi==vj 则称vi 与 e 的关联次数 为 2.简单图:没有重复边或者说是平行边。子图符号 G[ V ] 指的是点导出子图,G[E]指的是边导出子图规定:自身与自身一定是联通的初级通路: 在 n 阶图中从顶点u到v存在通路,
2022-04-21 10:28:43 2672
原创 同余-费马小定理-乘法逆元与线性同余方程
同余 如果说 a 、b 除以m 的余数相同,那么说 a 与 b 模 m 同余,记作 a≡b(m)。费马小定理: 如果p 是质数 那么对于任意的正整数 a 都有 a^p≡a(p) 也就是说 如果a 是质数那么a的任意整数幂 与 a 模p 同余 。...
2022-04-20 18:32:37 573
原创 欧拉函数的两种求法
引入:互质的概念:如果 正整数 a 与b 之间只有一个公约数1 则称a与 b 互为质数。欧拉函数的定义: 1-N 中 与N 互质的数的个数 记作 Phi(N)在算数基本定理中任意自然数能进行质因数拆分,那么由容斥原理:1>假设N 的质因子由p1……p(k) 一共有k个;2>从1到N 去掉p1……p(k)的所有倍数;p(i)的倍数的个数是 N/p(i)下取整;3>发现有多去除的,所以每次加上所有p(i)*p(j)的倍数4>以此类推 发现有多加的 减去所有 三个质
2022-04-20 16:55:22 2704
原创 剑指Offer-week1
目录1-找出数组中重复元素1-找出数组中重复元素给定一个长度为 n 的整数数组 nums,数组中所有的数字都在 0∼n−1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。注意:如果某些数字不在 0∼n−1的范围内,或数组中不包含重复数字,则返回 -1;special judge:给每个数字分配一个坑,不在对应坑就交换并重复该操作。class Solution {public:
2022-04-20 10:35:17 1223
原创 树型结构——树状数组
1.树状数组是用来解决区间修改-单点查询以及单点修改-区间查询和区间修改-区间查询问题的一种优化时间的算法。简单来说,如果一个问题能转变成上述三个问题,就可以使用树状数组,将修改和查询操作的时间复杂度从O(n)优化到O(log n),树状数组是一种简单的数据结构。2.基本操作:主要包括 插入操作,查询操作,...
2022-04-12 11:13:40 570
原创 Game Maker stdio 2 RPG
学习算法给我代码能力的提升是实质性的,不仅如此,他也给我带来了思维上的升华,但是现实是残酷的,为了完成大作业提前准备,而我又不想去做xxx管理系统,xxx预约系统,都说学无止境,既然决定要做,那就从一个全新的领域入手,做一些新的尝试,为此我大胆的决定,抽出一下部分时间,大概率上实验课的时候,完成我的尝试,做一个2D 像素游戏。我决定借助 GMS 2来实现我的构想,这款强大的游戏引擎带给我无限的遐想,我果断牺牲几餐饭钱 248 RMB 在steam 上下载 GMS 2 开始我的 GMS 游戏创作之旅,在熟
2022-04-03 22:53:52 4139
原创 树--图论
目录1.图的解释与分类。 现实中,我们遇到的图形形色色,他们有色彩,有各种稀奇的形象,构成了多彩的世界。 然而在面临一些实际问题时,这些过于具体的色彩形象给我们的研究也带来了麻烦,16世纪左 右,数学家欧拉把每个事物看成点,把它们之间的关系简化成边,把这些有点和边组成的几何图 形称为图,包括树形图(树,图意)和点线图在在(图二),利用这些简化后的图解决了戈尼斯 堡七桥问题,发现了欧拉图,并引入了图论 ...
2022-04-01 23:15:06 2246
原创 约瑟夫环-链表-模拟
#1 什么是约瑟夫问题?讲一个比较有意思的故事:约瑟夫是犹太军队的一个将军,在反抗罗马的起义中,他所率领的军队被击溃,只剩下残余的部队40余人,他们都是宁死不屈的人,所以不愿投降做叛徒。一群人表决说要死,所以用一种策略来先后杀掉所有人。于是约瑟夫建议:每次由其他两人一起杀一个人,而被kill的人的先后顺序是由抽签决定的,约瑟夫有预谋地抽到了最后一签,在杀了除了他和剩余那个人之外的最后一人,他劝服了另外一个没死的人投降了罗马。我们这个规则是这么定的:在一间房间总共有n个人(下标0~n-1),只.
2022-03-17 20:32:02 197
原创 分治——递归
如果解决一个问题比较复杂,我们就可以把这个问题将继续划分为更小的区间,例如一分为二,求解划分出的若干子问题,从而得到我们想要的答案。那么如何求解这些子问题呢,每个子问题又可以被分为问两个子问题,那么对于每个问题我们只需向下递归,求解它的子问题就可以了。快排函数的实现:#include<bits/stdc++.h>using namespace std;const int N=1e6+10;int n,p[N];void quick_sort(in...
2022-03-08 19:31:41 74
原创 数据结构单链表(数组模拟)
在算法竞赛中,链表主要依托数组实现,也称静态数组,这主要是为了减少时间复杂度,使得程序能在规定时间内运行。用 head 表示头指针,用 ne[ N ] 数组代表next 指针,用idx表示填的是第几个数。初始时head 指针指向 -1,-1是我们的空节点;把指针数组的赋值操作看成为指向会跟便于了解下面展示链表的三种操作:1.在头节点后插入一个数;void add_to_head(int x){ e[idx]=x; ne[idx]=head; head..
2022-03-07 23:29:18 175
原创 斐波那契数列在求余下的循环节
早在2007年就有外国发现这一现象,比发表了第一篇论文,链接:Final.pdf (arizona.edu)英文读不懂,数学又只能先记下了:求f ( f( n ) ),f 表示斐波那契数n≤10100对于1e9+7 取mod。fib数modpmfib数modpm的最小循环节长度为G(p)∗pm−1其中,G(p)表示的最小循环节长度现在就是求G(p)对于G(p)我们有如下定理如果5是模p的二次剩余那么循环节的长度是p−1的因子否则长度为2(p+1)二次剩余及计算方...
2022-03-07 18:04:18 202
原创 1.Flood fill 算法
求二维图中连通块的个数,联通分为四联通和八联通 ,如图;图作为四联通,图右为八联通。利用该算法可以求得连通块的个数;例题:1097. 池塘计数 题目 提交记录 讨论 题解 视频讲解农夫约翰有一片 N∗M的矩形土地。最近,由于降雨的原因,部分土地被水淹没了。现在用一个字符矩阵来表示他的土地。每个单元格内,如果包含雨水,则用”W”表示,如果不含雨水,则用”.”表示。现在,约翰想知道他的土地中形成了多少片池塘。每组相连的积...
2022-03-06 16:01:31 102
原创 Codeforces #774 Problem C
算法考察:二进制枚举+阶乘分解+数学。C. Factorials and Powers of Twotime limit per test3 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputA number is calledpowerfulif it is a power of two or a factorial. In other words, ..
2022-03-06 10:27:40 162
原创 数学问题--因数拆分
涉及到数学问题,数学题具有灵活多变的特点,对什么样的数(和数,阶乘数,二进制数等)进行拆分,以及如何拆分(乘法拆分,质因子拆分,因子拆分),都非常值得我们思考,此外,数学题具有严苛的时空限制,这使得数学问题形式更加灵活。拆分目的:优化时空,复杂问题简单化。经典例题 1:合并:一共有T组数据。每次可以将相邻两个数合并到一起,问最少多少次数可以让当前序列的数都相等题目描述1 2 3 1 1 1 其中一种情况-> 3 3 1 1 1 将第一个与第二个合并-> 3 3 2 1
2022-03-06 00:20:21 270
原创 DP问题之数位DP
数位DP是一种计数用的dp,一般就是要统计一个区间 [ l, r]内满足一些条件数的个数。所谓数位dp,字面意思就是在数位上进行dp咯。数位还算是比较好听的名字,数位的含义:一个数有个位、十位、百位、千位......数的每一位就是数位啦!也就是说到处理问题时与数的临位数位之间的联系时,可以优先考虑数位DP,注意到记忆化搜索也是可行的,这取决于个人喜好,总之我们通常称之为数位DP问题。经典例题:Atcoder Beginner Conteset 242 C给你一个整数n,问 由n位 数字,...
2022-03-05 23:57:13 253
原创 数据结构之并查集
在此之前我们需要思考:并查集是解决什么问题的,如何应用?并查集解决的是连通性(无向图联通分量)和传递性(家谱关系)问题,并且可以动态的维护。抛开格子不看,任意一个图中,增加一条边形成环当且仅当这条边连接的两点已经联通,于是可以将点分为若干个集合,每个集合对应图中的一个连通块。Acwing1250 格子合并;Alice和Bob玩了一个古老的游戏:首先画一个n×nn×n的点阵(下图n=3n=3)。接着,他们两个轮流在相邻的点之间画上红边和蓝边:直到围成一个封闭的圈(面积不必...
2022-03-04 12:00:31 3835
原创 Codeforces #769 Problem C.strange test
正式开始之前让我们先来看一道简单的例题:C - Counting 2 (atcoder.jp)C - Counting 2EditorialTime Limit: 2 sec / Memory Limit: 1024 MBScore :300300pointsProblem StatementThere is a class withNNstudents. The height of theii-th student(1 \leq i \leq N)(1≤i≤N)...
2022-03-03 20:49:56 185
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人