- 博客(46)
- 收藏
- 关注
原创 Git入门 本地仓库 远端仓库 多分支
有多个远程仓库, 假设目前的需求: 更新dev分支的main.cpp, 输出"Hello Git"此处基于远端的dev分支创建了feature_main分支, 并更新了main.cpp的代码。在feature分支中创建一个main.cpp文件, 并推送到github。然后, 此时提交代码前, 需要pull (fetch + merge)此处我创建了两个远端仓库, 方便后面演示(工作中基本都是1个)为了演示解决冲突, 手动在github上修改代码。可以看到, 只有github的仓库被推送了。
2024-07-02 21:53:08 566
原创 买卖股票的最佳时机(系列)
你可以无限次地完成交易,但是你每笔交易都需要付手续费。如果你已经购买了一个股票,在卖出它之前你就不能再继续购买股票了。**注意:**这里的一笔交易指买入持有并卖出股票的整个过程,每笔交易你只需要为支付一次手续费。**注意:**你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。**注意:**你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。**注意:**你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。基于《买卖股票的最佳时机 II》,在抛出股票时,扣除手续费。
2023-09-13 15:04:17 372
原创 在PyCharm环境中使用graphviz
graphviz是个软件,不能单独用Pip安装首先,下载graphviz的安装包 :https://graphviz.gitlab.io/_pages/Download/Download_windows.html我的电脑为64位操作系统,如图选择完成之后,检查 系统路径如果没有,自行添加。
2022-09-20 16:10:02 2999
原创 PTA 《Data Structures and Algorithms (English)》刷题笔记
PTAData Structures and Algorithms (English)刷题笔记
2022-02-25 19:35:48 604
原创 最大点权 ( 强连通分量 )
最大点权Time Limit: 3000/1000 MS (Java/Others)Memory Limit: 65535/100000 K (Java/Others)Problem Description给定一个有向图,每个点i有点权ai,请对于每个点i,找到i能到达的点中点权的最大值(包括i点)。Input第一行包含一个正整数TTT (1≤T≤10)(1≤T≤10)(1≤T≤10),表示测试数据的组数。每组数据第一行包含两个正整数n,mn,mn,m (1≤n≤100000,1≤m≤20
2021-07-25 20:55:11 594
原创 (EX)中国剩余定理 模板
文章目录中国剩余定理 CRT扩展中国剩余定理 EXCRT中国剩余定理 CRT/*x ≡ a[1] (mod m[1]) x ≡ a[2] (mod m[2]) x ≡ a[3] (mod m[3])...x ≡ a[n] (mod m[n])*/const int maxn = 1e5+5;int a[maxn], m[maxn], n;int crt(){ int M = 1; for(int i=1;;i<=n;++i) M *= m[i]; //求M int Mi
2021-07-25 12:00:38 225
原创 甜甜圈(树状数组)(线段树)
文章目录1. 树状数组维护2.线段树维护题目描述艾洛喜欢吃甜食,他有n个甜甜圈,现在叠成了两叠(如下图所示),第一叠有n1n1n1个,第二叠有n2n2n2个(n1+n2=n)(n1+n2=n)(n1+n2=n),要解决的问题如下: 每个甜甜圈都有一个唯一的甜度值sis_isi,甜度值两两不同; 每次艾洛可以把任意一叠位于顶端的一个甜甜圈移动到另一叠顶端,若该甜甜圈是当前所有甜甜圈中最甜的(甜度值最大),那么艾洛不会移动甜甜圈,而是直接吃掉;请你求出艾洛吃完所有甜甜圈的最小移动
2021-07-18 18:23:06 325 1
原创 母函数(generating function)总结
母函数总结生成函数即母函数,是组合数学中尤其是计数方面的一个重要理论和工具。生成函数有普通型生成函数和指数型生成函数两种,其中普通型用的比较多。形式上说,普通型生成函数用于解决多重集的组合问题,而指数型母函数用于解决多重集的排列问题。母函数还可以解决递归数列的通项问题(例如使用母函数解决斐波那契数列的通项公式)。对于任意数列a1,a1,a2...ana_1,a_1,a_2...a_na1,a1,a2...an即用如下方法与一个函数联系起来:G(x)=a0+a1x+a2x2+...+anxnG
2021-05-15 19:02:47 886 1
原创 矩阵快速幂总结
矩阵快速幂杭电培训总结,侵删引导问题一个有0和1组成的字符串,人和子串都不能包含101101101和111111111,求满足要求的长度为L(1<=L<=108)L(1<=L<=10^8)L(1<=L<=108)的字符串一共有多少,结果对109+710^9+7109+7求模。思路:设f(i)f(i)f(i)为长度为iii的合法字符串的数量。可知f(1)=2f(1) = 2f(1)=2 “1”,“0”f(2)=4f(2)=4f(2)=4 “00”,“
2021-05-05 21:07:27 481 2
原创 二进制与、平方和(河南省2020CCPC J)
二进制与、平方和时间限制: 3Sec3 Sec3Sec 内存限制: 512MB512 MB512MB题目描述请你维护一个长度为 n 的非负整数序列 a1,a2,…,ana_1,a_2,…,a_na1,a2,…,an,支持以下两种操作:第一种操作会将序列 al,al+1,…,ara_l,a_{l+1},…,a_ral,al+1,…,ar 中的每个元素,修改为各自和xxx 的"二进制与"(Bitwise binary AND)的值,其中 l,r,xl,r,xl,r,x 在每次操作时会给定;
2021-04-19 13:12:57 919 5
原创 区间最大公约数 线段树 + 树状数组
区间最大公约数给定一个长度为 NNN 的数列 AAA,以及 MMM 条指令,每条指令可能是以下两种之一:C l r d,表示把 A[l],A[l+1],…,A[r]A[l],A[l+1],…,A[r]A[l],A[l+1],…,A[r]都加上 ddd。Q l r,表示询问 A[l],A[l+1],…,A[r]A[l],A[l+1],…,A[r]A[l],A[l+1],…,A[r] 的最大公约数(GCD)(GCD)(GCD)。对于每个询问,输出一个整数表示答案。输入格式第一行两个整数 N,MN
2021-03-31 20:22:14 245 1
原创 区间操作+区间查询(求和)——树状数组解法 & 线段树解法
文章目录区间操作+区间查询(求和)1. 树状数组+差分 解法:2. 线段树 解法:区间操作+区间查询(求和)给定一个长度为 NNN 的数列 AAA,以及 MMM 条指令,每条指令可能是以下两种之一:C l r d,表示把 A[l],A[l+1],…,A[r]A[l],A[l+1],…,A[r]A[l],A[l+1],…,A[r] 都加上 ddd。Q l r,表示询问数列中第 l∼rl∼rl∼r 个数的和。对于每个询问,输出一个整数表示答案。输入格式第一行两个整数 N,MN,MN,M。第二
2021-03-31 19:46:57 978 1
原创 《你能回答这些问题吗》线段树求区间最大连续子段和
你能回答这些问题吗《算法竞赛进阶指南》给定长度为 NNN 的数列 AAA,以及 MMM 条指令,每条指令可能是以下两种之一:1 x y,查询区间 [x,y][x,y][x,y] 中的最大连续子段和,即 maxx≤l≤r≤y∑i=lr[i]max_{x≤l≤r≤y}{∑_{i=l}^r[i]}maxx≤l≤r≤y∑i=lr[i]2 x y,把 A[x]A[x]A[x] 改成 yyy。对于每个查询指令,输出一个整数表示答案。输入格式第一行两个整数 N,MN,MN,M。第二行 NNN 个整
2021-03-30 15:46:29 173
原创 《确定比赛名次》hdu1285 优先队列+拓扑排序+链式前向星存储 杭电1285
确定比赛名次Problem Description有N个比赛队(1<=N<=500)(1<=N<=500)(1<=N<=500),编号依次为1,2,3,。。。。,N1,2,3,。。。。,N1,2,3,。。。。,N进行比赛,比赛结束后,裁判委员会要将所有参赛队伍从前往后依次排名,但现在裁判委员会不能直接获得每个队的比赛成绩,只知道每场比赛的结果,即P1赢P2,用P1,P2表示,排名时P1在P2之前。现在请你编程序确定排名。Input输入有若干组,每组中的第一行为二个
2021-03-29 20:52:21 171
原创 谜一样的牛 树状数组+二分
谜一样的牛有 nnn 头奶牛,已知它们的身高为 1∼n1∼n1∼n 且各不相同,但不知道每头奶牛的具体身高。现在这 nnn 头奶牛站成一列,已知第 iii 头牛前面有 AiA_iAi 头牛比它低,求每头奶牛的身高。输入格式第 111 行:输入整数 nnn。第 2..n2..n2..n 行:每行输入一个整数 AiA_iAi,第 iii 行表示第 iii 头牛前面有 AiA_iAi 头牛比它低。(注意:因为第 111 头牛前面没有牛,所以并没有将它列出)输出格式输出包含 nnn 行,每行输
2021-03-18 18:06:12 163
原创 组合数
求组合数Cab mod pC_a^b\ mod\ pCab mod p小数据范围 1≤a,b≤20001\leq a,b\leq 20001≤a,b≤2000递推式:Cab=Ca−1b+Ca−1b−1递推式:C_a^b = C_{a-1}^b + C_{a-1}^{b-1}递推式:Cab=Ca−1b+Ca−1b−1 初始化C[maxn][maxn]C[maxn][maxn]C[maxn][maxn] 数组 $ C[i][j] = C_i^j$cons
2021-02-08 20:48:01 170
原创 约数
约数1. 求约数试除法求约数#include <bits/stdc++.h>using namespace std;int main(){ std::ios::sync_with_stdio(false); int n;cin>>n; int a; set<int> st; //自动去重+排序 while(n--) { st.clear(); cin>>a; for(int i=1;i <= a/i;++i)
2021-01-29 14:16:33 170
原创 素数
素数(质数)试除法判定素数#include<iostream>using namespace std;bool isP(int x){ if(x<=1) return false; for(int i=2;i<=x/i;++i) { if(x%i==0)return false; } return true;}int main() { int n; scanf("%d",&n); int a; for(int i=0;i<
2021-01-29 14:15:46 220
原创 Trie树(数组实现)
Trie树Trie字符串统计维护一个字符串集合,支持两种操作:“I x”向集合中插入一个字符串x;“Q x”询问一个字符串在集合中出现了多少次。共有N个操作,输入的字符串总长度不超过 10510^5105,字符串仅包含小写英文字母。输入格式第一行包含整数N,表示操作数。接下来N行,每行包含一个操作指令,指令为”I x”或”Q x”中的一种。输出格式对于每个询问指令”Q x”,都要输出一个整数作为结果,表示x在集合中出现的次数。每个结果占一行。数据范围1≤N≤2∗1041≤N≤2
2021-01-20 23:10:10 542
原创 最小生成树——Prim算法
Prim算法普里姆算法在找最小生成树时,将顶点分为两类,一类是在查找的过程中已经包含在树中的(假设为 A 类),剩下的是另一类(假设为 B 类)。对于给定的连通网,起始状态全部顶点都归为 B 类。在找最小生成树时,选定任意一个顶点作为起始点,并将之从 B 类移至 A 类;然后找出 B 类中到 A 类中的顶点之间权值最小的顶点,将之从 B 类移至 A 类,如此重复,直到 B 类中没有顶点为止。所走过的顶点和边就是该连通图的最小生成树。...
2021-01-19 20:18:26 2719
原创 《区间和》离散化+前缀和
区间和假定有一个无限长的数轴,数轴上每个坐标上的数都是0。现在,我们首先进行 n 次操作,每次操作将某一位置x上的数加c。接下来,进行 m 次询问,每个询问包含两个整数l和r,你需要求出在区间[l, r]之间的所有数的和。输入格式第一行包含两个整数n和m。接下来 n 行,每行包含两个整数x和c。再接下里 m 行,每行包含两个整数l和r。输出格式共m行,每行输出一个询问中所求的区间内数字和。数据范围−109≤x≤109−10^9≤x≤10^9−109≤x≤1091≤n,m≤1051≤n
2021-01-17 15:45:32 206
原创 二分法
二分求解数的范围给定一个按照升序排列的长度为n的整数数组,以及 q 个查询。对于每个查询,返回一个元素k的起始位置和终止位置(位置从0开始计数)。如果数组中不存在该元素,则返回“-1 -1”。输入格式第一行包含整数n和q,表示数组长度和询问个数。第二行包含n个整数(均在1~10000范围内),表示完整数组。接下来q行,每行包含一个整数k,表示一个询问元素。输出格式共q行,每行包含两个整数,表示所求元素的起始位置和终止位置。如果数组中不存在该元素,则返回“-1 -1”。数据范围
2021-01-16 23:13:35 233
原创 高精度(加减乘除)C++
文章目录高精加高精减高精乘高精除高精加#include <bits/stdc++.h>using namespace std;// const int maxn = 100005; char a[maxn]={0}; char b[maxn]={0}; int res[maxn] = {0};//void add(char *a,char *b){ int lena = strlen(a); int lenb = strlen(b); reverse(a,a
2021-01-16 22:53:21 366 5
原创 前缀和与差分
文章目录前缀和1. 前缀和2. 子矩阵的和差分1. 差分2. 差分矩阵前缀和1. 前缀和输入一个长度为n的整数序列。接下来再输入m个询问,每个询问输入一对l, r。对于每个询问,输出原序列中从第l个数到第r个数的和。输入格式第一行包含两个整数n和m。第二行包含n个整数,表示整数数列。接下来m行,每行包含两个整数l和r,表示一个询问的区间范围。输出格式共m行,每行输出一个询问的结果。数据范围1≤l≤r≤n1≤l≤r≤n1≤l≤r≤n1≤n,m≤1000001≤n,m≤100000
2021-01-16 22:41:41 625 7
原创 归并排序
归并排序给定你一个长度为n的整数数列。请你使用归并排序对这个数列按照从小到大进行排序。并将排好序的数列按顺序输出。输入格式输入共两行,第一行包含整数 n。第二行包含 n 个整数(所有整数均在1−1091-10^91−109范围内),表示整个数列。输出格式输出共一行,包含 n 个整数,表示排好序的数列。数据范围1≤n≤1000001≤n≤1000001≤n≤100000输入样例:63 1 6 2 4 5输出样例:1 2 3 4 5 6#include <bits/st
2021-01-15 12:02:21 610
原创 快速排序
给定你一个长度为n的整数数列。请你使用快速排序对这个数列按照从小到大进行排序。并将排好序的数列按顺序输出。输入格式输入共两行,第一行包含整数 n。第二行包含 n 个整数(所有整数均在1−1091-10^91−109范围内),表示整个数列。输出格式输出共一行,包含 n 个整数,表示排好序的数列。数据范围1≤n≤1000001≤n≤1000001≤n≤100000输入样例:53 1 2 4 5输出样例:1 2 3 4 5#include <bits/stdc++.h>
2021-01-14 22:09:16 161
原创 最短路径——Dijkstra算法
Dijkstra算法求某一个到任意点的最短路径Dijkstra算法算是贪心思想实现的,首先把起点到所有点的距离存下来找个最短的,然后松弛一次再找出最短的,所谓的松弛操作就是,遍历一遍看通过刚刚找到的距离最短的点作为中转站会不会更近,如果更近了就更新距离,这样把所有的点找遍之后就存下了起点到其他所有点的最短距离。邻接矩阵:012345600466INFINFINF1INF01INF7INFINF2INFINF0INF6
2021-01-12 19:46:24 1920 2
原创 搜索DFS&BFS
文章目录红与黑AC代码:1. BFS:2. DFS:红与黑有一间长方形的房子,地上铺了红色、黑色两种颜色的正方形瓷砖。你站在其中一块黑色的瓷砖上,只能向相邻(上下左右四个方向)的黑色瓷砖移动。请写一个程序,计算你总共能够到达多少块黑色的瓷砖。输入格式输入包括多个数据集合。每个数据集合的第一行是两个整数 WW 和 HH,分别表示 xx 方向和 yy 方向瓷砖的数量。在接下来的 HH 行中,每行包括 WW 个字符。每个字符表示一块瓷砖的颜色,规则如下1)‘.’:黑色的瓷砖;2)‘#’:白色的
2021-01-12 15:16:10 138 1
原创 hdu杭电1575 Tr A
又是一道矩阵快速幂Tr AProblem DescriptionA为一个方阵,则Tr A表示A的迹(就是主对角线上各项的和),现要求Tr(Ak)%9973Tr(A^k)\%9973Tr(Ak)%9973。Input数据的第一行是一个T,表示有T组数据。每组数据的第一行有n(2<=n<=10)n(2 <= n <= 10)n(2<=n<=10)和k(2<=k<109)k(2 <= k < 10^9)k(2<=k<109)两个数
2021-01-11 22:25:44 139
原创 POJ3070Fibonacci 矩阵快速幂
FibonacciDescriptionIn the Fibonacci integer sequence, F0=0F_0=0F0=0, F1=1F_1=1F1=1, and Fn=Fn−1+Fn−2F_n = F_{n-1}+F_{n-2}Fn=Fn−1+Fn−2for n>=2n>=2n>=2. For example, the first ten terms of the Fibonacci sequence are:0, 1, 1, 2, 3, 5, 8, 13,
2021-01-11 21:31:59 229 2
原创 Leetcode 372. 超级次方
372. 超级次方题目链接你的任务是计算 ab 对 1337 取模,a 是一个正整数,b 是一个非常大的正整数且会以数组形式给出。示例 1:输入:a = 2, b = [3]输出:8示例 2:输入:a = 2, b = [1,0]输出:1024示例 3:输入:a = 1, b = [4,3,3,8,5,2]输出:1示例 4:输入:a = 2147483647, b = [2,0,0]输出:1198提示:1<=a<=231−11 <= a <
2021-01-11 17:22:06 243
原创 快速幂
快速幂文章目录快速幂求anmod ca^n\mod canmodcMethod 1 :暴力Method 2:避免溢出Method 3:快速幂求anmod ca^n\mod canmodcMethod 1 :暴力typedef unsigned long long ull;ull powMod(ull a,ull n,ull c){ ull res=1; for(int i=0;i<n;i++) res*=a; return res % c;}
2021-01-10 21:43:11 585 1
原创 牛客挑战赛47 A 一道GCD问题
牛客挑战赛47 A题文章目录牛客挑战赛47 A题题目描述输入描述:输出描述:输入输出**根据多维的更相减损术得**gcd(x,y,z)=gcd(x,y−x,z−y)gcd(x,y,z)=gcd(x,y−x,z−y)gcd(x,y,z)=gcd(x,y−x,z−y)**可得**: gcd(a1+k,a2+k,a3+k,...,an+k)=gcd(a1+k,a2−a1,a3−a2,...)gcd(a_1+k,a_2+k,a_3+k,...,a_n+k) = gcd(a_1+k,a_2-a_1,a_3-a_2,
2021-01-10 16:07:39 746
原创 PTA 数据结构与算法题目集(中文)7-10 公路村村通
PTA 数据结构与算法题目集(中文)7-10 公路村村通 (30分)题目链接 : https://pintia.cn/problem-sets/15/problems/718现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每个村落都有公路连通所需要的最低成本。输入格式:输入数据包括城镇数目正整数N(≤1000)和候选道路数目M(≤3N);随后的M行对应M条道路,每行给出3个正整数,分别是该条道路直接连通的两个城镇的编号以及该道路改建的预算成本。为简单起见,城镇从1到
2021-01-09 00:04:05 433
原创 数据结构:图(2. 图的遍历)
数据结构:图(2. 图的遍历)图的遍历方式深度优先遍历DFS(Depth First Search)广度优先遍历BFS(Breadth First Search)根据上一篇文章(数据结构:图(2. 图的存储))的邻接矩阵和邻接表来分别实现对图的两种遍历邻接矩阵graph.h 邻接矩阵头文件 添加以下代码//添加头文件 STL的队列 #include<queue>class graph{public: //图的操作 std::string DF
2021-01-07 12:11:22 144
原创 数据结构:图(1. 图的存储)
数据结构:图(1. 图的存储)图的概念图(Graph) 是由顶点和连接顶点的边构成的离散结构在计算机科学中,图是最灵活的数据结构之一用于描绘数据之间的关系图结构的实现一个图就是一些顶点的集合这些顶点通过一系列边连接顶点 V边 E图 G(V,E)图的种类是否有方向有向图无向图是否有权重带权图无权图无向图只记录顶点之间的连通性顶点之间的链接是双向的只要两个顶点链接就行了A链接了B,B也一定链接了A#mermaid-svg-6aqVqvREg
2021-01-06 14:43:25 380
原创 质数数量 牛客22226题
链接:https://ac.nowcoder.com/acm/problem/22226来源:牛客网质数数量题目描述质数(prime number)又称素数,有无限个,质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数。例如小于10的质数有2,3,5,7。输入描述:第一行输入一个整数T,表示询问的个数接下来T行每行输入一个整数n.1<=T<=1e8,1<=n<=1000000输出描述:对于每个询问n输出小于等于n的的质数的个数。示例1输入
2021-01-05 17:22:37 437
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人