算法
更新各种算法。
nk妹妹
暂无
展开
-
Python蓝桥杯的一些数据输入输出格式
蓝桥杯输入输出格式整理原创 2023-11-03 09:38:43 · 381 阅读 · 2 评论 -
【复盘】第 111 场力扣夜喵双周赛
力扣复盘原创 2023-08-20 17:02:31 · 426 阅读 · 0 评论 -
Python的字典使用
Python字典用法原创 2023-08-02 14:46:31 · 126 阅读 · 0 评论 -
动态规划--一和零
动态规划原创 2023-07-31 21:02:12 · 187 阅读 · 0 评论 -
python单调队列
python单调队列原创 2023-07-09 13:43:08 · 313 阅读 · 0 评论 -
c++大数相乘
C++大数相乘原创 2022-09-25 21:21:52 · 474 阅读 · 0 评论 -
ACM最长不下降子序列问题
给定一串数,求出其最长不下降子序列本题是经典的一道dp线性问题,定义一个三维数组,a[i][1]表示数值,a【i】【2】表示i到n最长的子序列长度,a【i】【3】表示i子序列后跟的数的位置。#includeusing namespace std;int a[100][10],k,l;int main(){int n;cin>>n;for(int i=1;i<=n...原创 2019-04-05 12:34:15 · 220 阅读 · 0 评论 -
ACM数塔问题
1.搜索#includeusing namespace std;const int maxn=1005;int a[maxn][maxn],curr,ans,n;void dfs(int x,int y,int curr)//定义递归函数{if(xn)//如果xn,则退出;否则继续递归x+1,y和x+1,y+1{if(curr>ans) ans=curr;return;...原创 2019-04-04 22:35:50 · 310 阅读 · 0 评论 -
学习阶段总结(背包问题)
经过这几天的学习和练习,各种背包问题的解题思路终于能理顺了;做题的时候也能看出是哪类背包问题了,只是在写代码的过程中会有细节被忽略。例如第s题#include#include#include#includeusing namespace std;const int fs=10005;double r[fs];double min(double a,double b){if(a...原创 2019-04-10 22:20:12 · 177 阅读 · 0 评论 -
并查集--Java
import java.util.*;public class main { public static void set(int judge[]) { for(int i=0;i<judge.length;i++) { judge[i] = -1; } } public static int find(int judge[],int data) { while(judge[data]!=-1) { data = judge[data]; } ret原创 2022-04-08 11:44:17 · 452 阅读 · 0 评论 -
基于链表的两数之和(c++)
题目描述:给出两个非空的链表用来表示两个非负的整数。其中它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/add-two-numbers#include <iostream>using namespace std;typed原创 2022-03-18 11:53:06 · 1206 阅读 · 0 评论 -
删除链表中满足区间值的结点
描述利用单链表表示一个递增的整数序列,删除链表中值大于等于mink且小于等于maxk的所有元素(mink和maxk是给定的两个参数,其值可以和表中的元素相同,也可以不同)。输入多组数据,每组数据有两行,第一行为链表的长度n,第二行为链表的n个元素(元素之间用空格分隔),第三行为给定的mink和maxk(用空格分隔)。当n=0时输入结束。输出对于每组数据分别输出一行,依次输出删除元素后的链表元素,元素之间用空格分隔。#include <iostream>using namespac原创 2022-03-08 20:54:19 · 142 阅读 · 0 评论 -
基于链表的两个集合的交集
给定两个递增的整数集合A和B,分别用链表表示集合A和B,求出A和B的交集,并存放在A中。要求空间复杂度为O(1)。输入多组数据,每组数据有三行,第一行为序列A和B的长度n和m,第二行为序列A的n个元素,第三行为序列B的m个元素(元素之间用空格分隔)。n=0且m=0时输入结束。输出对于每组数据输出一行,为A和B的交集,每个数据之间用空格分隔。#include <iostream>using namespace std;typedef struct LNode{ int d原创 2022-03-08 11:12:47 · 851 阅读 · 0 评论 -
基于链表的两个递增有序序列的合并
描述给定两个递增的整数序列A和B,利用链表表示序列A和B,将A和B合并为一个递增的有序序列C,序列C不允许有重复的数据。要求空间复杂度为O(1)。输入多组数据,每组数据有三行,第一行为序列A和B的长度n和m,第二行为序列A的n个元素,第三行为序列B的m个元素(元素之间用空格分隔)。n=0且m=0时输入结束。输出对于每组数据输出一行,为合并后的序列,每个数据之间用空格分隔。#include <iostream>using namespace std;typedef struct原创 2022-03-07 14:55:22 · 1056 阅读 · 0 评论 -
蓝桥杯---剩下的树
有一个长度为整数L(1<=L<=10000)的马路,可以想象成数轴上长度为L的一个线段,起点是坐标原点,在每个整数坐标点有一棵树,即在0,1,2,…,L共L+1个位置上有L+1棵树。 现在要移走一些树,移走的树的区间用一对数字表示,如 100 200表示移走从100到200之间(包括端点)所有的树。 可能有M(1<=M<=100)个区间,区间之间可能有重叠。现在要求移走所有区间的树之后剩下的树的个数。输入描述:两个整数L(1<=L<=10000)和M(原创 2021-12-31 22:19:12 · 74 阅读 · 0 评论 -
蓝桥杯---判断日期
题目:输入某年某月某日,判断这一天是这一年中的第几天。代码:import java.util.Scanner;public class Main { public static void main(String args[]) { Scanner sc = new Scanner(System.in); int year = sc.nextInt(); int month = sc.nextInt(); int day = sc.nextInt(); sc.close();原创 2021-12-29 19:58:05 · 125 阅读 · 0 评论 -
蓝桥杯-----叠箩筐
Problem Description需要的时候,就把一个个大小差一圈的筐叠上去,使得从上往下看时,边筐花色交错。这个工作现在要让计算机来完成,得看你的了。Input输入是一个个的三元组,分别是,外筐尺寸n(n为满足0<n<80的奇整数),中心花色字符,外筐花色字符,后二者都为ASCII可见字符;Output输出叠在一起的筐图案,中心花色与外筐花色字符从内层起交错相叠,多筐相叠时,最外筐的角总是被打磨掉。叠筐与叠筐之间应有一行间隔。Sample Input11 B A5 @ W原创 2021-12-29 19:30:19 · 136 阅读 · 0 评论 -
采药(0-1背包)
【题目描述】辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师。为此,他想拜附近最有威望的医师为师。医师为了判断他的资质,给他出了一个难题。医师把他带到一个到处都是草药的山洞里对他说:“孩子,这个山洞里有一些不同的草药,采每一株都需要一些时间,每一株也有它自身的价值。我会给你一段时间,在这段时间里,你可以采到一些草药。如果你是一个聪明的孩子,你应该可以让采到的草药的总价值最大。”如果你是辰辰,你能完成这个任务吗?输入描述:第一行有两个整数T(1<=T<=1000)和M(1<=原创 2021-04-15 11:12:25 · 95 阅读 · 0 评论 -
最长不下降子序列、最大不下降子序列之和
【题目描述】设有由n(1≤n≤200)n(1≤n≤200)个不相同的整数组成的数列,记为:b(1)、b(2)、……、b(n)b(1)、b(2)、……、b(n)若存在i1例如13,7,9,16,38,24,37,18,44,19,21,22,63,15。例中13,16,18,19,21,22,63就是一个长度为7的不下降序列,同时也有7 ,9,16,18,19,21,22,63组成的长度为8的不下降序列。【输入】第一行为n,第二行为用空格隔开的n个整数。【输出】第一行为输出最大个数max(形式见样原创 2021-04-15 11:07:39 · 233 阅读 · 0 评论 -
最大连续子序列之和
题目描述给出一个整数序列S,其中有N个数,定义其中一个非空连续子序列T中所有数的和为T的“序列和”。 对于S的所有非空连续子序列T,求最大的序列和。 变量条件:N为正整数,N≤1000000,结果序列和在范围(-263,263-1)以内。输入描述:第一行为一个正整数N,第二行为N个整数,表示序列中的数。输出描述:仅输出一个数,表示最大序列和。示例1输入51 5 -3 2 4输出9//解题思路:本题是动态规划中最经典问题之一,当序列只有一个元素时那么最大连续序列和为它本身,当序列有多个原创 2021-04-15 11:03:49 · 130 阅读 · 0 评论 -
N阶楼梯上楼问题
问题描述:N阶楼梯上楼问题:一次可以走两阶或一阶,问有多少种上楼方式。输入:输入包括一个整数N,(1<=N<90)。输出:可能有多组测试数据,对于每组数据,输出当楼梯阶数是N时的上楼方式个数。思路:此题可以用倒推的思想,试想到了N-1阶台阶时有1种方法,N-2阶台阶时有2种方法,N-3阶台阶时有前两种之和的方法。import java.util.*;public class Main { public static void main(String args[]) {原创 2021-04-11 23:50:42 · 189 阅读 · 0 评论