- 博客(42)
- 收藏
- 关注
转载 计算几何前置知识点
交点个数为偶数,则在多边形外,为奇数,则在多边形内。过多边形的任意一边做一条直线,如果其他各个顶点都在这条直线的同侧,则把这个多边形叫做凸多边形。三条中线交点(到三角形三顶点距离的平方和最小的点,三角形内到三边距离之积最大的点)(1) 几何意义:向量A与B张成的平行四边形的有向面积。B在A的逆时针方向为正。其中a表示多边形内部的点数,b表示多边形边界上的点数,S表示多边形的面积。(1) 几何意义:向量A在向量B上的投影与B的长度的乘积。3.2 内积(点积) A·B = |A||B|cos(C)
2024-05-18 12:27:40
39
原创 给定两个单链表,写出两个链表的公共节点
根据链表的特性,共同的节点即所指向的地址相同,所以在找到第一个公共的节点后,剩下的结点也为公共节点。插入的方法为头插法,所以输入序列与找寻序列是相反的。
2024-03-12 00:01:28
210
1
原创 2023年度第四届全国大学生算法设计与编程挑战赛(春季赛)
例如:对于长为 77 的序列 {1,2,3,4,5,6,7}1,2,3,4,5,6,7,进行操作 i=2,j=4,k=6i=2,j=4,k=6 后序列会变为 {1,5,6,2,3,4,7}1,5,6,2,3,4,7。第一步: i=1,j=1,k=3i=1,j=1,k=3,交换 [1,1][1,1] 与 [2,3][2,3] 得到序列 {2,3,1}2,3,1;第二步: i=1,j=1,k=2i=1,j=1,k=2,交换 [1,1][1,1] 与 [2,2][2,2] 得到序列 {3,2,1}3,2,1。
2023-06-06 11:40:34
3889
原创 蓝桥杯国赛 二进制问题
对于二进制7来讲,我们可以分为三个区间进行排列组合,(111,110],(110,100],(100,000]。对于第一个区间,没有可以组合的方式,对于第二个区间只有一种组合的方式101,对于第三个区间也是只有一种011。这道题思路有两种,一种是数位DP,一种就是排列组合,这道题我用的是排列组合。由此可看出来有3个,分别是3(011),5(101),6(110)。大致题意,用样例来说,1到7中,1的个数为2的有多少。
2023-05-20 17:23:09
210
原创 Python 并发编程
1.为什么要引入并发编程1.为什么要引入并发编程场景1:一个网络爬虫,按顺序爬取花了1个小时,采用并发下载减少到20分钟!场景2:一个APP应用,优化前每次打开页面需要3秒,采用异步并发提升到每次200毫秒。2.有哪些程序提速的办法。
2022-12-03 01:58:54
173
1
原创 差分及其用法
D[]的定义D[i]=a[i]-a[i-1],即原数组a[]的相邻元素差,从定义中也可以推出a[i]=D[1]+D[2]+D[3]+……+D[i],也就是说a[]是D[]的前缀和,即”差分是前缀和的逆运算"。大面积 a[i][j] 减去两个小面积 a[i−1][j]、a[i][j−1],由于两个小面积的公共面积 a[i−1][j−1] 被减了 22次,所以需要加来 1 次。a[][]是D[][]的前缀和,即由原点(1,1)和坐标(i,j)围成的矩阵中,所有的D[][]相加等于a[i][j]。
2022-11-10 21:37:34
455
1
原创 Leetcode 357. 统计各位数字都不同的数字个数 python
357. 统计各位数字都不同的数字个数难度中等251收藏分享切换为英文接收动态反馈给你一个整数 n ,统计并返回各位数字都不同的数字 x 的个数,其中 0 <= x < 10n 。示例 1:输入:n = 2输出:91解释:答案应为除去 11、22、33、44、55、66、77、88、99 外,在 0 ≤ x < 100 范围内的所有数字。 示例 2:输入:n = 0输出:1提示:0 <= n <= 8这道题难度中等,但我感觉既难又
2022-04-11 19:57:38
692
原创 等差数列 蓝桥杯 python
题目描述数学老师给小明出了一道等差数列求和的题目。但是粗心的小明忘记了一 部分的数列,只记得其中NN个整数。现在给出这NN个整数,小明想知道包含这NN个整数的最短的等差数列有几项?输入描述输入的第一行包含一个整数NN。第二行包含NN个整数A_1,A_2,··· ,A_NA1,A2,⋅⋅⋅,AN。(注意A_1A1∼A_NAN并不一定是按等差数列中的顺序给出)其中,2 \leq N \leq 10^5,0 \leq A_i \leq 10^92≤N≤...
2022-04-08 16:42:53
933
原创 Leetcode 239 滑动窗口最大值
239. 滑动窗口最大值难度困难1533收藏分享切换为英文接收动态反馈给你一个整数数组nums,有一个大小为k的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的k个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值。示例 1:输入:nums = [1,3,-1,-3,5,3,6,7], k = 3输出:[3,3,5,5,6,7]解释:滑动窗口的位置 最大值--------------- ...
2022-04-06 22:13:17
188
原创 Leetcode 下一个更大的元素 II
503. 下一个更大元素 II难度中等588收藏分享切换为英文接收动态反馈给定一个循环数组nums(nums[nums.length - 1]的下一个元素是nums[0]),返回nums中每个元素的下一个更大元素。数字x的下一个更大的元素是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应该循环地搜索它的下一个更大的数。如果不存在,则输出-1。示例 1:输入: nums = [1,2,1]输出: [2,-1,2]解释: 第一个 1 的下一...
2022-04-05 00:43:58
165
原创 Leetcode 739 每日温度
739. 每日温度难度中等1085收藏分享切换为英文接收动态反馈给定一个整数数组temperatures,表示每天的温度,返回一个数组answer,其中answer[i]是指在第i天之后,才会有更高的温度。如果气温在这之后都不会升高,请在该位置用0来代替。示例 1:输入: temperatures = [73,74,75,71,69,72,76,73]输出:[1,1,4,2,1,1,0,0]示例 2:输入: temperatures = [...
2022-04-05 00:33:09
316
原创 Leetcode 496 下一个更大的元素I
496. 下一个更大元素 I难度简单678收藏分享切换为英文接收动态反馈nums1中数字x的下一个更大元素是指x在nums2中对应位置右侧的第一个比x大的元素。给你两个没有重复元素的数组nums1和nums2,下标从0开始计数,其中nums1是nums2的子集。对于每个0 <= i < nums1.length,找出满足nums1[i] == nums2[j]的下标j,并且在nums2确定nums2[j]的...
2022-04-02 11:32:21
214
原创 Leetcode 896 单调数列
896. 单调数列难度简单158收藏分享切换为英文接收动态反馈如果数组是单调递增或单调递减的,那么它是单调的。如果对于所有i <= j,nums[i] <= nums[j],那么数组nums是单调递增的。 如果对于所有i <= j,nums[i]> = nums[j],那么数组nums是单调递减的。当给定的数组nums是单调数组时返回true,否则返回false。示例 1:输入:nums = [1,2,2,3]输出:true示...
2022-04-02 11:18:12
413
原创 洛谷P1219 八皇后 python
n=int(input())path=[0 for _ in range(500)]col=[False for _ in range(30)]dg=[False for _ in range(30)]udg=[False for _ in range(30)]cnt=0def dfs(u): global cnt if u>n: if cnt<3: for i in range(1,n+1): .
2022-03-28 20:25:11
898
1
原创 数据结构之链表 双链表 python
双链表的每个节点有两个指针:一个指向后一个节点,另一个指向前一个节点。class Node: def __init__(self,item=None): self.item=item self.next=None self.prior=Nonep.next=curNode.nextcurNode.next.prior=pp.prior=curNodecurNode.next=p双链表节点的插入...
2022-03-27 17:26:31
1632
原创 数据结构之单链表 python实现
链表是由一系列节点组成的元素集合。每个节点都包含两个部分,数据域item和指向下一个节点的指针next。通过节点之间的相互连接,最终串联成一个链表。class Node: def __init__(self,item): self.item=item self.next=Nonea=Node(1)b=Node(2)c=Node(3)a.next=bb.next=cprint(a.next.item)print(a.next.next.i.
2022-03-27 16:49:53
2366
原创 Leetcode 54 螺旋矩阵
给你一个 m 行 n 列的矩阵matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。示例 1:输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,3,6,9,8,7,4,5]示例 2:输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]输出:[1,2,3,4,8,12,11,10,9,5,6,7]提示:m == matrix.lengthn == matr...
2022-03-26 22:36:40
73
原创 蓝桥杯 全球变暖 python
题目描述你有一张某海域NxNNxN像素的照片,"."表示海洋、"#"表示陆地,如下所示:........##.....##........##...####....###........其中"上下左右"四个方向上连在一起的一片陆地组成一座岛屿。例如上图就有 2 座岛屿。由于全球变暖导致了海面上升,科学家预测未来几十年,岛屿边缘一个像素的范围会被海水淹没。具体来说如果一块陆地像素与海洋相邻(上下左右四个相邻像素中有海洋),它就会被淹没。例如上图中的海域未来会变成..
2022-03-25 15:54:35
1230
1
原创 蓝桥杯迷宫 python实现
题目描述本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。X 星球的一处迷宫游乐场建在某个小山坡上。它是由10 \times 1010×10相互连通的小房间组成的。房间的地板上写着一个很大的字母。我们假设玩家是面朝上坡的方向站立,则:LL表示走到左边的房间, RR表示走到右边的房间, UU表示走到上坡方向的房间, DD表示走到下坡方向的房间。X 星球的居民有点懒,不愿意费力思考。他们更喜欢玩运气类的游戏。这个游戏也是如此!开始的时候,直升机把1...
2022-03-21 00:11:25
484
3
原创 蓝桥杯 方格分割
题目描述本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。6x6的方格,沿着格子的边线剪开成两部分。 要求这两部分的形状完全相同。如下就是三种可行的分割法。试计算: 包括这 33 种分法在内,一共有多少种不同的分割方法。 注意:旋转对称的属于同一种分割法。运行限制最大运行时间:1s 最大运行内存: 128M总通过次数: 557 | 总提交次数: 588 | 通过率: 94.7%难度: 中等 标签: 填空题, 2017, 省赛很多人看到这.
2022-03-20 23:56:18
124
原创 孪生素数
题目描述编写程序求孪生素数(如果nn和n+2n+2都是素数,则称它们是孪生素数)。输入描述输入一 个正整数m(1\leq m \leq 100)m(1≤m≤100)。输出描述输出两个均不超过mm的最大孪生素数(中间空一格)。输入输出样例示例输入20输出17 19运行限制最大运行时间:1s 最大运行内存: 128Mimport mathdef is_prime(n): if n==1: return Fa...
2022-03-10 00:12:40
406
原创 美丽的区间
题目描述给定一个长度为nn的序列a_1,a_2,\cdots,a_na1,a2,⋯,an和一个常数SS。对于一个连续区间如果它的区间和大于或等于 SS,则称它为美丽的区间。对于一个美丽的区间,如果其区间长度越短,它就越美丽。请你从序列中找出最美丽的区间。输入描述第一行包含两个整数 n,Sn,S,其含义如题所述。接下来一行包含 nn 个整数,分别表示 a_1,a_2,\cdots,a_na1,a2,⋯,an。10\leq N \leq 10^510≤N≤...
2022-03-02 22:50:19
899
原创 蓝桥杯练习题:奖学金
题目描述某小学最近得到了一笔赞助,打算拿出其中一部分为学习成绩优秀的前 5 名学生发奖学金。期末,每个学生都有 3 门课的成绩:语文、数学、英语。先按总分从高到低排序,如果两个同学总分相同,再按语文成绩从高到低排序,如果两个同学总分和语文成绩都相同,那么规定学号小的同学排在前面,这样,每个学生的排序是唯一确定的。任务:先根据输入的 3 门课的成绩计算总分,然后按上述规则排序,最后按排名顺序输出前 5 名学生的学号和总分。注意,在前 5 名同学中,每个人的奖学金都不相同,因此,你必须严格按上述规则排序
2022-03-01 19:01:51
237
原创 noip2012 提高组 国王游戏 python
题目描述恰逢 H 国国庆,国王邀请nn位大臣来玩一个有奖游戏。首先,他让每个大臣在左、右手上面分别写下一个整数,国王自己也在左、右手上各写一个整数。然后,让这nn位大臣排成一排,国王站在队伍的最前面。排好队后,所有的大臣都会获得国王奖赏的若干金币,每位大臣获得的金币数分别是:排在该大臣前面的所有人的左手上的数的乘积除以他自己右手上的数,然后向下取整得到的结果。国王不希望某一个大臣获得特别多的奖赏,所以他想请你帮他重新安排一下队伍的顺序,使得获得奖赏最多的大臣,所获奖赏尽可能的少。注意,国王...
2022-03-01 18:11:53
222
原创 蓝桥杯 广场舞
题目描述LQ 市的市民广场是一个多边形,广场上铺满了大理石的地板砖。地板砖铺得方方正正,就像坐标轴纸一样。以某四块砖相接的点为原点,地板砖的两条边为两个正方向,一块砖的边长为横纵坐标的单位长度,则所有横纵坐标都为整数的点都是四块砖的交点(如果在广场内)。广场的砖单调无趣,却给跳广场舞的市民们提供了绝佳的参照物。每天傍晚,都会有大批市民前来跳舞。舞者每次都会选一块完整的砖来跳舞,两个人不会选择同一块砖,如果一块砖在广场边上导致缺角或者边不完整,则没人会选这块砖。(广场形状的例子参考下图)
2022-02-28 21:52:49
648
1
原创 蓝桥杯 机器人塔
题目描述X 星球的机器人表演拉拉队有两种服装,A 和 B。他们这次表演的是搭机器人塔。类似:AB BA B AA A B BB B B A BA B A B B A队内的组塔规则是:A 只能站在 AA 或 BB 的肩上。B 只能站在 AB 或 BA 的肩上。你的任务是帮助拉拉队计算一下,在给定 A 与 B 的人数时,可以组成多少种花样的塔。输入描述输入一行两个整数 M,NM,N(0<M,N<5000<M,N<500),分别表
2022-02-28 21:50:50
330
原创 蓝桥杯 棋子换位
题目描述本题为代码补全填空题,请将题目中给出的源代码补全,并复制到右侧代码框中,选择对应的编译语言(C/Java)后进行提交。若题目中给出的源代码语言不唯一,则只需选择其一进行补全提交即可。复制后需将源代码中填空部分的下划线删掉,填上你的答案。提交后若未能通过,除考虑填空部分出错外,还需注意是否因在复制后有改动非填空部分产生错误。有nn个棋子 A,nn个棋子 B,在棋盘上排成一行。 它们中间隔着一个空位,用“.”表示,比如:AAA.BBB现在需要所有的 A 棋子和 B 棋子交换位置。 ...
2022-02-28 21:46:24
297
原创 蓝桥杯 凑平方数
题目描述本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。把00~99这1010个数字,分成多个组,每个组恰好是一个平方数,这是能够办到的。比如:0, 36, 5948721再比如:10985247361, 25, 63907840, 4, 289, 15376...注意,00可以作为独立的数字,但不能作为多位数字的开始。 分组时,必须用完所有的数字,不能重复,不能遗漏。如果不计较小组内数据的先后顺序,请问有多少种不同...
2022-02-28 21:42:30
209
原创 蓝桥杯 一步之遥
题目描述本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。一步之遥从昏迷中醒来,小明发现自己被关在 X 星球的废矿车里。 矿车停在平直的废弃的轨道上。 他的面前是两个按钮,分别写着 “F”“F” 和 “B”“B” 。小明突然记起来,这两个按钮可以控制矿车在轨道上前进和后退。 按 FF,会前进 9797 米。按 BB 会后退127127 米。 透过昏暗的灯光,小明看到自己前方 11 米远正好有个监控探头。 他必须设法使得矿车正好停在摄像头的下方,才有机会争取同伴的援助。
2022-02-28 21:40:20
98
原创 蓝桥杯真题:迷宫(优化后)
#include<bits/stdc++.h>using namespace std;const int n=10;char mp[n+2][n+2];bool vis[n+2][n+2];int solve[n+2][n+2]; //solve[i][j]=1表示这个点能走出去;=2表示出不去int ans = 0;int cnt = 0;bool dfs(int i, int j){ if (i<0 || i>n-1 || j<0 || j&g.
2022-02-28 21:30:55
110
原创 蓝桥杯真题:迷宫
题目描述X 星球的一处迷宫游乐场建在某个小山坡上。它是由10 \times 1010×10相互连通的小房间组成的。房间的地板上写着一个很大的字母。我们假设玩家是面朝上坡的方向站立,则:LL表示走到左边的房间, RR表示走到右边的房间, UU表示走到上坡方向的房间, DD表示走到下坡方向的房间。X 星球的居民有点懒,不愿意费力思考。他们更喜欢玩运气类的游戏。这个游戏也是如此!开始的时候,直升机把100100名玩家放入一个个小房间内。玩家一定要按照地上的字母移动。迷宫...
2022-02-28 21:29:46
3449
原创 分治练习题:逆序对
题目描述SORTSORT公司是一个专门提供排序服务的公司,该公司的宗旨是:“顺序是美丽的”。他们的工作是通过一系列移动,将某些物品按顺序摆好。他们的服务是通过工作量来计算的,即移动物品的次数。所以,在工作前必须先考察工作量,以便向客户提出收费数目。用户并不需要知道精确的移动次数,实质上,大多数人都是凭感觉来认定这一列物品的混乱程度。根据SORTSORT公司的经验,人们一般是根据“逆序对”的数目多少来称呼这一序列的混乱程度。假设将序列中第I件物品的参数定义为A_iAi,那么排序就是将A_1...
2022-02-28 21:28:26
212
原创 倍增练习题:m 计划
题目描述小明是个鹅卵石收藏者,从小到大他一共收藏了nn块鹅卵石,编号分别为1\sim n1∼n,价值分别为a_1,a_2,\cdots , a_na1,a2,⋯,an。这天他乘船准备去往蓝桥王国,然而天有不测风云,小明所在的海域下起了暴雨。很快小明船上的积水越来越多,为了防止沉船,小明不得不选择若干块他收藏的鹅卵石丢弃。小明制定了一套名为m计划的选择方案,其内容如下:对于任意区间[i,i + m - 1][i,i+m−1]丢弃价值最小的鹅卵石i\in[1,n-m+1]i∈...
2022-02-28 21:23:41
131
原创 区间最大值
题目描述给定一个长度为NN的数组aa,其值分别为a_1,a_2,...,a_Na1,a2,...,aN。现有QQ个询问,每个询问包含一个区间,请回答该区间的最大值为多少。输入描述输入第11行包含两个正整数N,QN,Q,分别表示数组aa的长度和询问的个数。第22行包含NN个非负整数a_1,a_2,...,a_Na1,a2,...,aN,表示数组aa元素的值。第3\sim Q+23∼Q+2行每行表示一个询问,每个询问包含两...
2022-02-28 21:22:24
438
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人