文章目录前言1.排序(1)快速排序(2)归并排序(求逆序对)2.基础算法(1)二分3.数学(1)线性筛(朴素,最小质因子,因子数)-朴素线性筛-最小质因子筛-因子数筛(2)快速幂(龟速乘)(3)欧几里得算法(gcd,exgcd)(4)jiangly的模板元板子(5)jiangly的组合数板子(6)ygg的组合数板子4.数据结构(1)单调队列(单调递减,递增)(2)树状数组(前缀和,差分)(3)线段树(维护区间和模板)(4)重链剖分(维护树结构)(5)分块(维护区间和模板)(6)并查集(7)可持久化线段树(维护区间和)(8)珂朵莉树(ODT)5.图论(1)Dijkstra(堆优化)(2)Spfa
高校竞赛管理系统一、前言三、开发环境与技术3.1MySQL数据库3.2Vue前端技术3.3SpringBoot框架3.4微信小程序四、功能设计4.1主要功能描述4.2系统角色五、系统主要功能展示5.1前端展示5.1.1赛事展示5.1.2赛事提交5.1.3赛事报名5.1.4赛事审核5.1.4赛事审核5.1.5专家打分5.1.6个人信息展示5.2管理员功能六、数据库设计参考七、代码参考八、源码获取一、前言💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业
DAY16共3题:奇♂妙拆分(简单数学)区区区间间间(单调栈)小AA的数列(位运算dp)🎈作者:Eriktse🎈简介:19岁,211计算机在读,现役ACM银牌选手🏆力争以通俗易懂的方式讲解算法!❤️欢迎关注我,一起交流C++/Python算法。(优质好文持续更新中……)🚀🎈阅读原文获得更好阅读体验:https://www.eriktse.com/algorithm/1119.html奇♂妙拆分(简单数学)根据贪心的想法,若要使得因子尽可能多,那么因子应当尽可能小,大于根号n的因子至多一个,从小到大枚举[1,sqrt(n)]的所有整数,如果i能够整除n就作为一个因子。Code:#include#
1.相当于加了一些操作的vector基本操作字符串转换(C++11)//将字符串转换为整型stoi()//将字符串转换为longlongstoll()//将字符串转换为float型stof()//将字符串转换为double型stod()后面加入s+=t;//时间复杂度O(t)s.push_back();字符串替换s.replace(起始位置,替换长度,要替换的字符串)把string类型转换成C的字符串类型s.c_str();使用它之后可以用puts()//比如puts(s.c_str());找字符串(时间复杂度O(s长度*t的长度))(O(n*n))s.find(t,pos)//从pos位置开
目录题号A:A+B(1)题号B:A+B(2)题号C:A+B(3)题号D:A+B4)题号E:A+B(5)题号F:A+B(6)题号G:A+B(7)题号H:字符串排序(1)题号I字符串排序(2)题号G:字符串排序(3)题目K:自测本地通过提交为0题号A:A+B(1)importjava.util.Scanner;publicclassMain{publicstaticvoidmain(String[]args){Scannersc=newScanner(System.in);while(sc.hasNext()){inta=sc.nextInt();intb=sc.nextInt();System.
这道题目要求求出所有长度为n的01串的权值之和,其中权值定义为选择一个'0'和一个'1',并且这两个字符的下标不能相同的方案数。解题思路是,对于每个01串中的每个'0',计算它左边有多少个'1',然后计算它右边有多少个'1',最后将它左边的'1'的个数乘以它右边'1'的个数即为它的贡献值。对于每个01串,将它的贡献值累加起来即可得到所有01串的权值之和。代码实现时,可以用两个数组分别记录每个'0'左边和右边的'1'的个数,然后遍历所有01串,将每个'0'的贡献值加起来即可。最后记得对答案取模。下面是一份可能的AC代码:MOD=1000000007
文章目录前言A-DijkstraAlgorithm0x00算法题目0x01算法思路0x02代码实现B-最长路0x00算法题目0x01算法思路0x02代码实现C-二分图最大匹配0x00算法题目0x01算法思路0x02代码实现D-搭配飞行员0x00算法题目0x01算法思路0x02代码实现E-ThePerfectStall0x00算法题目0x01算法思路0x02代码实现F-Asteroids0x00算法题目0x01算法思路0x02代码实现G-TiltheCowsComeHome0x00算法题目0x01算法思路0x02代码实现H-拓扑排序0x00算法题目0x01算法思路0x02代码实现总结前言最短路D
参考引用:代码随想录注:每道LeetCode题目都使用ACM代码模式,可直接在本地运行,蓝色字体为题目超链接0.数组理论基础数组(array)是存放在连续内存空间上的相同类型数据的集合,是一种复合数据类型,它是有序数据的集合,在存储空间中也是按顺序存储。数组中的每个元素具有相同的数据类型,可以方便的通过下标索引的方式访问到对应的数据。根据数组的维度,可以将其分为一维数组、二维数组和多维数组等。举一个字符数组的例子,如图所示数组下标都是从0开始的数组内存空间的地址是连续的数值数组元素的默认值为0,而引用元素的默认值为null数组元素可以是任何类型,包括数组类型正是因为数组的在内存空间的地址是连续
ACM模式下输入输出经典十一道题题一多行数据,有行数限制,每行有个数限制输入描述:输入的第一行包括一个正整数t(1接下来t行,每行一组数据。每行的第一个整数为整数的个数n(1接下来n个正整数,即需要求和的每个正整数。输出描述:每组数据输出求和的结果importjava.util.*;publicclassMain{publicstaticvoidmain(String[]args){Scannerin=newScanner(System.in);//将求和结果先放在数组中ListInteger>list=newArrayListInteger>();intt=in.nextInt();for(
8月1日 NEUQ-ACM-CAMP-2023-B001-Helloword #includeusingnamespacestd;intmain(){ cout#includeusingnamespacestd;intmain(){ stringname; cin>>name; cout#includeusingnamespacestd;intmain(){ inta,b,c; cin>>a>>b; c=a+b; cout#includeusingnamespacestd;intmain(){ inta; intb=0; for(a=1;a#includeusingnamespacestd;i