• 2024-07-02算法——全排列
    一、使用递归算法求全排列(暴力法)求{12345......n}的全排列的思路如下:(1)让第一个数不同,得到n个数列(办法是:把第1个和后面每个数交换即可):12345......n21345......n.....n2345......1以上n个数列,只要第一个数不同,不管后面n-1个数是怎么排列的,这n个
  • 2024-07-02第二十六天 第七章 回溯算法 part04 491.递增子序列 46.全排列 47.全排列 II
    491.递增子序列将其看作一个二叉树,可以知道,在二叉树每层中,不能取相同的元素。这题最主要要理解这个点。使用unordered_set对其进行降重。classSolution{public:vector<vector<int>>res;vector<int>cur;voidbacktracking(vector<int>&nums,intindex){
  • 2024-06-22Day 28 | 491.递增子序列 、46.全排列、 47.全排列 II
    491.递增子序列本题和大家刚做过的90.子集II非常像,但又很不一样,很容易掉坑里。https://programmercarl.com/0491.递增子序列.html视频讲解:https://www.bilibili.com/video/BV1EG4y1h78v给你一个整数数组nums,找出并返回所有该数组中不同的递增子序列,递增子序列中至少有两
  • 2024-06-21全排列问题
    1letstr="abbd"2functionArrange(str){3if(str.length<=2){4returnstr.length===2?[str,str[1]+str[0]]:[str]5}6letarrRes=[]7letarrStr=str.split('');8for(leti=0;i<a
  • 2024-06-18闲话六幺八
    1.P10547的一个结论(虽然当时不会dp。。。)一个排列的最小交换代价是\(\dfrac{\sum|i-p_i|}{2}\)。注意到若设每个点的势能是\(|i-p_i|\),一次代价为\(W\)的操作的最多使得总势能减少\(2W\)。因此有不等式:\[Ans\ge\frac{\sum|i-p_i|}{2}\]猜想其可以取到下界。证明:只
  • 2024-06-17不用群论的 Polya
    如果没有学过正经的带群论的\(Polya\),那这一篇文章也许是一个简单的入门;如果学过正经的\(Polya\),这一篇也可能提供一个感性理解的方法(因为除了不用群论也没有什么好处)。Burnside一道组合题一般会说两个图等价当且仅当可以通过重编号使之全等两个环等价当且仅当可以通过旋转
  • 2024-06-08猜排列 题解
    猜排列题解差eps步想到正解。题意描述有\(m\)个长为\(n\)序列\(a_1,\dots,a_n\),还有\(m\)个长为\(n\)序列\(b_1,\dots,b_n\)。其中\(b_i\)是由\(a_i\)通过排列\(p\)置换得到的,\(b_{p_i}=a_i\)。现在又要求出排列\(p\)会有多种可能,模\(998244353\)。So
  • 2024-06-072024/6/7
    今天进行了数据库相关实验。(1)查询所有供应商情况,先按城市升序排列,城市相同按供应商名称降序排列。  (2)查询所有零件情况,先按零件名称升序排列,零件名称相同按重量降序排列。  (3)查询项目名中含有“厂”的项目情况。  (4)查询供应商名称中第二个字为“方”的供应商情
  • 2024-06-05代码随想录算法训练营第29天 | 491.递增子序列 、46.全排列 、47.全排列 II
    491.递增子序列本题和大家刚做过的90.子集II非常像,但又很不一样,很容易掉坑里。https://programmercarl.com/0491.递增子序列.html视频讲解:https://www.bilibili.com/video/BV1EG4y1h78v关键点还要在于本层使用过的数字不能再使用/***@param{number[]}nums*@return
  • 2024-06-04字符串全排列
    链接:https://www.nowcoder.com/questionTerminal/fe6b651b66ae47d7acce78ffdd9a96c7来源:牛客网输入一个长度为n字符串,打印出该字符串中字符的所有排列,你可以以任意顺序返回这个字符串数组。例如输入字符串ABC,则输出由字符A,B,C所能排列出来的所有字符串ABC,ACB,BAC,BCA,CBA
  • 2024-06-03窗口判断子数组排列
    题目给定一个数组,试求有多少个长度为\(k\)的连续子数组是排列。https://ac.nowcoder.com/acm/problem/273933Input第一行输入两个正整数\(n\),\(k\),代表小红拿到的数组大小和连续子数组的大小。第二行输入\(n\)个正整数\(a_i\),代表数组中的元素其中\(1\leqk\leqn\leq
  • 2024-06-03GCD构造排列
    题目给定一个长度为n的数组\(a\),试复原长度为n的排列\(p\)其中\(a_i=gcd(p_1,p_2,...,p_i)\),也就是说,\(a_i\)表示排列\(p\)中前\(i\)个数字的最大公约数。(由于数组\(a\)可能是错误的,故有可能无解,此时输出\(-1\)即可)https://ac.nowcoder.com/acm/problem/269091Input输
  • 2024-06-02leetcode 60 排列序列
    排列序列已解答困难相关标签相关企业给出集合[1,2,3,...,n],其所有元素共有n!种排列。按大小顺序列出所有排列情况,并一一标记,当n=3时,所有排列如下:"123""132""213""231""312""321"给定n和k,返回第k个排列。示例1:输入:n=3,k=3输出:"213"示
  • 2024-06-01学习前端的知识总结10
    CSS浮动网页布局方式有以下五种:标准流(普通流、文档流)︰网页按照元素的书写顺序依次排列浮动定位Flexbox和Grid(自适应布局)标准流是由块级元素和行内元素按照默认规定的方式来排列,块级就是占一行,行内元素一行放好多个元素。1.浮动浮动最典型的应用:可以让多个块级元素一行
  • 2024-05-30python-合并排列数组 I
    问题描述:合并两个按升序排列的整数数组a和b,形成一个新数组,新数组也要按升序排列。问题示例:输入A=[1],B=[1],输出[1,1],返回合并后的数组。输入A=[1,2,3,4],B=[2,4,5,6],输出[1,2,2,3,4,4,5,6],返回合并所有元素后的数组。完整代码如下:a=list(map(int,input().split()))b=li
  • 2024-05-29组合数学(文章)
    组合数学Part1.基础的排列组合加法原理和乘法原理加法原理(分类计数原理):完成一件事,有\(n\)类办法,如果在第\(1\)类办法中有\(m_1\)种不同的方法,在第\(2\)类办法中有\(m_2\)种不同的方法,…,在第\(n\)类办法中有\(m_n\)种不同的方法,那么完成这件事共有:\(N=m_1+m_2
  • 2024-05-26【递归】 递归实现排列型枚举
    题目描述​从 1−n 这 n 个整数排成一排并打乱次序,按字典序输出所有可能的选择方案。输入​输入一个整数 n。(1≤n≤8)输出​每行一组方案,每组方案中两个数之间用空格分隔。​注意每行最后一个数后没有空格。样例输入3样例输出12313221323131
  • 2024-05-26字符串的排列
    描述输入一个长度为n字符串,打印出该字符串中字符的所有排列,你可以以任意顺序返回这个字符串数组。例如输入字符串ABC,则输出由字符A,B,C所能排列出来的所有字符串ABC,ACB,BAC,BCA,CBA和CAB。示例1输入:"ab"返回值:["ab","ba"]说明:返回["ba","ab"]也是正确的
  • 2024-05-24CF1909I Short Permutation Problem 题解
    这是一道*1900的黑。考虑枚举\(m\),将\(<\fracm2\)和\(\ge\fracm2\)的数分开讨论。考虑相邻两个数\(a,b\(a>b)\)分别在\(\fracm2\)的两侧,则有\(b\gem-a\)。考虑将所有数按某种方法从小到大排序,以\(\min(x,m-x)\)为第一关键字,\(-x\)为第二关键字,则排列中
  • 2024-05-2331. 下一个排列
    整数数组的一个排列就是将其所有成员以序列或线性顺序排列。例如,arr=[1,2,3],以下这些都可以视作arr的排列:[1,2,3]、[1,3,2]、[3,1,2]、[2,3,1]。整数数组的下一个排列是指其整数的下一个字典序更大的排列。更正式地,如果数组的所有排列根据其字典顺序从小到大排列在一
  • 2024-05-21线性代数笔记——行列式(1)
    1.n级排列:由1,2,3,...,n组成的一个有序数组  n级排列的个数有n!=n(n-1)(n-2)...3*2*12.逆序:大数排在小数前面逆序数:逆序的总数如4213的逆序数    N(4213)=3+1+0+0=4如标准排列的逆序数为   N(123....n)=0n,n-1,n-2,...,3,2,1的逆序数为N(n(n-1)(n
  • 2024-05-20排列树
    刷acwing的算法进阶指南的时候,看到递归实现排列性枚举,刚好最近也是在上这一块的内容,于是想不看y总的代码敲一遍书上的代码,最后发现书上的排列树代码无法实现“其次,对于两个不同的行,对应下标的数一一比较,字典序较小的排在前面。”仔细想想,书上的代码确实只是可以实现排列树的功能,但
  • 2024-05-11next_permutation 用法
    next_permutation()全排列函数·.next_permutation(start,end)返回下一个排列·.prev_permutation(start,end)返回上一个排列(均按字典序排序)当当前序列(数组)不存在下一个排列时,函数返回false,否则返回truenext_permutation(num,num+n)函数是对数组num中的前n个元素进行全排列,同时
  • 2024-05-04题解:ssy的队列
    题目链接题目描述SSY是班集体育委员,总喜欢把班级同学排成各种奇怪的队形,现在班级里有\(N\)个身高互不相同的同学,请你求出这\(N\)个人的所有排列中任意两个相邻同学的身高差均不为给定整数\(M\)的倍数的排列总数。输入格式共三行:第一行为\(N\)第二行为\(N\)个不同的
  • 2024-04-30leedcode-排列硬币
    自己写的:importmathclassSolution:defarrangeCoins(self,n:int)->int:#计算判别式discriminant=1+8*n#计算根root1=(-1+math.sqrt(discriminant))/2#返回地板取整后的根returnmath.floo