自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 第三周周记

(约束条件保证N≤m)当T的前N个字符与S重合时,S被称为T的前缀S。当T的最后N个字符与S重合时,S被称为T的后缀S。如果S既是T的前缀又是T的后缀,则打印0;如果S是T的前缀但不是后缀,则打印1;如果S既不是T的前缀也不是后缀,则打印3。有序数列,前k个数相加可算出最小值,后k个数相加可以算出最大值,如果k的范围在最大值和最小值之间,则可以实现,反之则不可以;前缀就从t的第一个字母开始判断,后缀就是t的后n个字母是否和s一样。是偶数,而奇数永远不能被偶数整除,所以结构是正确的。

2023-10-01 12:54:20 216

原创 第2周周记(9月18日-9月24日)

1<<j的二进制表示只有第j个位置(从右往左数,从0开始)上的数是1,其余位置上的数是0,i和1<<j 进行按位与操作时,i的第j个位置是1就返回1<<j(判断语句中即为true),i的第j个位置是0就返回0(判断语句中即为false)。每个人都有自己的划船速度,且同一条船上的两个人取决于慢者的速度。这就有两种,一是只有最快的人回来,次快的在岸上等;二是最快和最慢的人都回来一次,也就是第一次先把次快的送过去,倒数第二次,次快的再回来和最快的一起过去。1.最快的和次快的过河,然后最快的将船划回来;

2023-09-25 16:17:35 335 1

原创 算法与数据结构---动态规划

紧随其后的是T个案例,每个案例三行,第一行包含两个整数N,V(N

2023-08-14 19:56:56 347

原创 算法与数据结构--- 前缀和与差分

详细内容见——>>

2023-08-13 20:20:52 212 1

原创 算法与数据结构---二分法

从起点出发,先选定一段距离mid,若前面的石头B与你所站着的石头A的距离小于mid,就把B搬掉,记录一下;有两种写法:一个是直接统计出需要移走的数量,一个是先统计留下来的石头的总数,再在return时用总数来算出移走的数量。给出农夫在n天中每天的花费,要求把这n天分作m组,每组的天数必然是连续的,要求分得各组的花费之和应该尽可能地小,最后输出各组花费之和中的最大值。只分成了两段,不合法,为了分的段数更多,需要将每段和缩小,也就是调整左边界,此时 Right为 mid−1,1199。

2023-08-12 17:05:04 100 1

原创 算法与数据结构--- 双指针和尺取法

因为数组中的数有正有负,故不满足尺取单调性的要求,我们可以考虑求前缀和,因为两个前缀和相减对应的是任意一个区间的和,因为有绝对值,所以不用考虑端点的先后顺序,我们将所有前缀和从小到大排序,然后按照尺取遍历即可。:给你n个数,让你找一个子区间使得该子区间之和的绝对值和t的差尽可能小,输出该区间的和,以及区间的左右端点。用s和t表示子序列的起点和终点,sum表示子序列[s,t)的和,ans表示最短的符合要求的子序列长度。对于每组数据,输出一个整数,代表满足要求的最短子序列的长度。每组数据输出占一行。

2023-08-12 17:03:14 86 1

原创 算法与数据结构--深搜与广搜

深度优先搜索练习# 全排列问题题目描述按照字典序输出自然数 111 到 nnn 所有不重复的排列,即 nnn 的全排列,要求所产生的任一数字序列中不允许出现重复的数字。输入格式一个整数 nnn。输出格式由 1∼n1 \sim n1∼n 组成的所有不重复的数字序列,每行一个序列。每个数字保留 555 个场宽。样例 #1样例输入 #13样例输出 #1 1 2 3 1 3 2 2 1 3 2 3 1

2023-08-12 16:58:11 172 1

原创 算法与数据结构--- 树和二叉树

树和二叉树练习–利用递归解决问题# [NOIP2001 普及组] 求先序排列题目描述给出一棵二叉树的中序与后序排列。求出它的先序排列。(约定树结点用不同的大写字母表示,且二叉树的节点个数 $ \le 8$)。输入格式共两行,均为大写字母组成的字符串,表示一棵二叉树的中序与后序排列。输出格式共一行一个字符串,表示一棵二叉树的先序。样例 #1样例输入 #1BADCBDCA样例输出 #1ABCD分析首先,一点基本常识,给你一个后序遍历,那么最后一个就是根(如ABCD,则根为D)。

2023-08-12 16:54:22 137 1

原创 算法与数据结构---贪心算法

只需要先将每一场比赛以结束时间排一次序,得到一个顺序的结构体数组,存储最前面一节课的下课时间,然后以结束时间为准,在这相同结束时间比赛中下,如果有比赛的开始时间小于等于记录的结束时间,直接参加比赛,然后计数,最后输出总次数就可以了。即按高位到低位的顺序搜索,若各位数字递增,则删除最后一个数字,否则删除第一个递减区间的首字符,这样删一位便形成了一个新数字串。yyy 认为,参加越多的比赛,noip 就能考的越好(假的)。个比赛,每个比赛的开始、结束的时间点是知道的。,寻找一种方案使得剩下的数字组成的新数最小。

2023-08-12 16:46:30 121 1

原创 第五周集训---牛客补题

游游拿到了一个正整数n,她希望找到一对正整数x,y,满足∣x!×y−y−n∣最小,且x,y都不等于2,感叹号表示阶乘。你能帮帮她吗?

2023-08-12 16:40:55 155 1

原创 算法与数据结构---树状数组

分别表示该数列数字的个数和操作的总个数。输出包含若干行整数,即为所有操作。个用空格分隔的整数,其中第。的任意子区间(包括长度为。求出某区间每一个数的和。第一行包含两个正整数。数据保证对于任意时刻,故输出结果14、16。

2023-08-12 16:40:02 82 1

原创 算法与数据结构--线段树

线段树1【模板】树状数组 2—区间修改,单个查找题目描述如题,已知一个数列,你需要进行下面两种操作:将某区间每一个数加上 xxx;求出某一个数的值。输入格式第一行包含两个整数 NNN、MMM,分别表示该数列数字的个数和操作的总个数。第二行包含 NNN 个用空格分隔的整数,其中第 iii 个数字表示数列第 $i $ 项的初始值。接下来 MMM 行每行包含 222 或 444个整数,表示一个操作,具体如下:操作 111: 格式:1 x y k 含义:将区间 [x,y][x,y][

2023-08-12 16:24:38 130 1

原创 算法与数据结构----并查集

##并 并就是讲两个节点合并到一个集合里面(这个集合必须是树),每个节点对应一个祖先,最老公共祖先的祖先就是自己,而每个节点在合并前的初始值也是自己,也就是:若有一个节点a,设它的祖先为s[a],那么它的初始值就是s[a]=a。如果他们在同一个组里,他们的根节点是肯定相同的,所以我们在输入时判断这两个人在没在同一个组里,如果在同一个组里,不用管,如果不在,那么合并对于k次询问,只需要判断这两个人有没有在同一个根节点,如果在就是Yes. 不在就是No.每一行的开头都是一个整数k,表示组中的成员数。

2023-08-12 15:46:17 168 1

原创 算法与数据结构---递归

/判断一个整数n是否为素数。

2023-08-12 15:34:34 586 1

原创 第四周集训

牛客补题游游的排列构造游游定义一个排列中,满足以下条件的为“好元素”:对于第i个元素 ai 而言,ai为前i个元素的最大值。例如,[3,1,5,2,4]中,第一个和第三个元素是好元素。游游希望你构造一个长度为n的排列,其中有k个好元素,且任意两个好元素都不相邻。你能帮帮她吗?排列的定义:由 1 到 n所有正整数组成的长度为n的数组,每个正整数出现恰好一次。分析两个好元素不相邻 那插空。且第一个数不管是几都是好元素代码#include<bits/stdc++.h>using n

2023-08-05 18:29:39 364 1

原创 第三周集训

牛客补题拆分正整数游游拿到了一个n,她准备将n拆分成两个正整数a和b,满足 a+b=n且a∗b是3的倍数。你能告诉游游有多少种拆分方式吗?输入描述:一个正整数n。1≤n≤10 的14次方sample输入10输出6说明10=1+910=3+710=4+610=6+410=7+310=9+1共有以上6种拆分方法满足a*b是3的倍数。代码#include <iostream>using namespace std;int main() {

2023-07-29 11:29:08 668

原创 第二周集训周记

/判断一个整数n是否为素数 int isPrime(int n);具体举例:1.先把一串数字读入进来,并依次赋予id值2.将数字的值排序(sort)(num . z)(cmz函数) id : 6 3 14 13 9 12 10 11 4 5 8 2 7 1 z : 19 18 18 17 6 6 5 4 3 3 3 2 2 13.去掉重复的数字。

2023-07-23 16:06:35 1126

原创 STL的常见容器及函数

定义:迭代器是一种检查容器内元素并遍历元素的数据类型。迭代器提供对一个容器中的对象的访问方法,并且定义了容器中对象的范围。栈为数据结构的一种,是STL中实现的一个先进后出,后进先出的容器。就像火车进入没有出口的隧道一样,隧道是stack栈容器,火车车厢是入栈元素,火车头先进去,火车尾最后进隧道,当火车倒出来时,火车尾最先出来,火车头最后出来,所有的元素满足先进后出的规则。队列是一种先进先出的数据结构。比喻性的描述可为 一条两端通透的隧道,火车车厢先进就先出,后进就后出。

2023-07-22 00:37:05 107 1

原创 第一周集训--循环

对于每个测试实例,输出A+B,每个输出结果也是由时分秒3部分组成,同时也要满足时间的规则(即:分和秒的取值范围在0~59),每个输出占一行,并且所有的部分都可以用32位整数表示。这个题目的A和B不是简单的整数,而是两个时间,A和B 都是由3个整数组成,分别表示时分秒,比如,假设A为34 45 56,就表示A所表示的时间是34小时 45分钟 56秒。输入数据包含多个测试实例,每个实例占一行,由两个正整数A和B组成(1

2023-07-16 10:48:03 123 1

STL上课课件1234

STL上课课件1234

2023-07-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除