- 博客(27)
- 收藏
- 关注
原创 [NOIP1999 普及组] Cantor 表
现代数学的著名证明之一是 Georg Cantor 证明了有理数是可枚举的。他是用下面这一张表来证明这一命题的:我们以 Z 字形给上表的每一项编号。第一项是1/1,然后是1/22/13/12/2,…
2023-09-24 17:30:32
144
原创 pta-天梯赛座位分配
输入第一行给出两个正整数 N NN 和 C CC,分别为参赛学校数量和每个赛场的规定容量,其中 0 < N ≤ 5000 0
2023-07-27 16:24:42
668
原创 邮递员送信
有一个邮递员要送东西,邮局在节点1。他总共要送n−1样东西,其目的地分别是节点2到节点n。由于这个城市的交通比较繁忙,因此所有的道路都是单行的,共有m条道路。这个邮递员每次只能带一样东西,并且。求送完这n−1样东西并且最少需要的时间。
2023-07-14 16:28:30
263
原创 猫猫和企鹅
王国里有n个居住区,它们之间有n−1条道路相连,并且保证从每个居住区出发都可以到达任何一个居住区,并且每条道路的长度都为1。除1号居住区外,每个居住区住着一个小企鹅,有一天一只猫猫从1号居住区出发,想要去拜访一些小企鹅。可是猫猫非常的懒,它只愿意去距离它在d以内的小企鹅们。猫猫非常的懒,因此希望你告诉他,他可以拜访多少只小企鹅。
2023-07-11 09:57:57
372
1
原创 关于欧拉序列
欧拉序列就是对一棵树进行深搜,无论是第一次访问还是回溯时候访问,都要将访问的节点的编号记录下来,可以得到一个长度为2n-1的序列,这个序列就是这颗树的欧拉序列。那么我们如何得到这个欧拉序列呢,利用深搜就可以写出这个模板。
2023-07-10 15:47:11
683
原创 利用染色法判断是不是二分图
染色法是判断图是不是一个二分图的一个比较经典且常用的方法,主要是利用搜索(dfs/bfs),来判断每个点的颜色,如果一个图是一个二分图,那么我们要求其能构成边的两个端点是不同的颜色,也就是将一个图分成两个集合,这两个集合不出现交集,集合内部也不出现构成边的情况。1.利用dfs判断是不是二分图。
2023-07-09 17:02:11
187
3
原创 洛谷--买礼物
又到了一年一度的明明生日了,明明想要买B样东西,巧的是,这B样东西价格都是A元。但是,商店老板说最近有促销活动,也就是:如果你买了第I样东西,再买第J样,那么就可以只花KIJ元,更巧的是,KIJ竟然等于KJI。现在明明想知道,他最少要花多少钱。
2023-07-05 18:23:50
131
1
原创 八大排序总结
1.就像我们平时玩扑克牌时,摸牌阶段的排序就用到了插入排序的思想2.用这第n个数与前面的n-1个数进行比较,找到要插入的位置,将其插入(原来位置上的数不会被覆盖,因为提前保存了)3.原来位置上的数据,依次后移。
2023-06-15 11:05:25
72
原创 泡水的铅筒
小 A 发现了一个盛有液体的长方体水池和一个圆锥形的铅筒。由于水池中的液体有毒,小 A 无法量出液体的深度。于是小 A 在外面量出了长方体水池的长a宽b和高h1,圆锥形铅筒的底面半径r和高度h2,保证minab≥2×rh1≥h2。小 A 将铅筒底面朝下正放入水池中,发现铅筒被完全浸没且没有液体溢出水池外,现在她想知道液体的深度的最小值H1和最大值H2,但几何一塌糊涂的她并不会计算,请你帮她解决这个问题。
2023-06-11 20:12:01
110
原创 Acwing. 二元组
给定两个整数 n,m,请你计算有多少个整数二元组 (x,y)一个整数,表示满足条件的整数二元组 (x,y)的数量。注意,(1,2) 和 (2,1)视为两个不同二元组。前 6 个测试点满足 1≤n,m≤30。所有测试点满足 1≤n,m≤106。如果模拟的话真的会TLE!共一行,包含两个整数 n,m。
2023-06-10 20:28:52
145
原创 AcWing 799. 最长连续不重复子序列
这就是一个比较经典的双指针问题,传统的模拟暴力在时间复杂度上是没有办法解决这个问题的,但是用双指针就可以解决这个问题,降低时间复杂度。一开始我模拟就tle了,后来在网上看了一篇解题思路,但是一开始没有弄懂,搞了半天才知道原来是自己一开始理解错了!给定一个长度为 n 的整数序列,请找出最长的不包含重复的数的连续区间,输出它的长度。第二行包含 n 个整数(均在 0∼10^5 范围内),表示整数序列。共一行,包含一个整数,表示最长的不包含重复的数的连续区间的长度。第一行包含整数 n。
2023-06-09 15:09:06
72
原创 PTA 完全二叉树的层序遍历
一个二叉树,如果每一个层的结点数都达到最大值,则这个二叉树就是完美二叉树。对于深度为 D 的,有 N 个结点的二叉树,若其结点对应于相同深度完美二叉树的层序遍历的前 N 个结点,这样的树就是完全二叉树。而这个题就是后序遍历,如果我们想要找到他的根节点,就必须找到他的两个子节点,这样逆推回去就知道该怎么做了。在一行中输出该树的层序遍历序列。给定一棵完全二叉树的后序遍历,请你给出这棵树的层序遍历结果。这里需要我们去明白什么是前序遍历,中序遍历,后序遍历。中序遍历就是第二个访问根节点(左,中,右)
2023-06-07 14:28:34
650
原创 二维格雷码
给定 n,请你输出一个 2 ^n× 2^n的二维格雷码。格雷码是一种二进制编码方法,相邻的两个数在二进制下只有一位不同。本题中,即ai,j和ai,j+1,ai,j和ai+1,j在二进制表示下有且只有一位不同。同时我们要求从0到(2)-1中每个数只出现过恰好一次。本题采用SPECLIAL JUDGE,输出符合条件的任一解即可。
2023-05-30 22:07:46
290
原创 洛谷 A-B数对(总结各位大佬的方法)
出题是一件痛苦的事情!相同的题目看多了也会有审美疲劳,于是我舍弃了大家所熟悉的 A+B Problem,改用 A-B 了哈哈!
2023-05-24 21:04:51
147
2
原创 一本通——扩散
这应该是一个二分题,但是由于我没想到二分的思路就用了floyd求了一下多源点最短路,之后去找到形成连通块的最短时间。如果想到二分思路会及时补充。这里那个max函数是因为我们有很多个源点向四周扩散,这是同时的,所以我们只需要记录最晚到达这个点的时间就ok了。
2023-05-09 17:16:04
75
原创 一本通——愤怒的牛
农夫约翰建造了一座有 n 间牛舍的小屋,牛舍排在一条直线上,第 i 间牛舍在 xi 的位置,但是约翰的 m 头牛对小屋很不满意,因此经常互相攻击。这是一个比较经典的二分题目,但是我个人认为二分题目是比较难想到使用二分来做的,这个我们二分的是每头牛之间的距离,之后写一个check函数判断能不能以这个距离放下m头牛,如果可以证明没有问题,否则就不行。为了不让牛互相伤害。John 决定自己给牛分配隔间,使任意两头牛之间的最小距离尽可能的大,那么,这个最大的最小距离是多少呢?输出仅一个整数,表示最大的最小距离值。
2023-05-07 20:03:16
171
原创 输出第k个质数
这个问题比较简单,如果每次都做一次质数的判断,那样就会超时,事实上我们找第一个数的时候就已经把一部分数字是不是素数给判断出来了,所以我们可以先把素数判断出来,用一个数组存储起来之后再进行每次询问即可。每组数据输出占一行,输出第k个质数。每个输入最多包含100组数据。输出从小到大的第k个质数。每组数据一行,一个整数k。题目来源:acwing。
2023-05-04 20:15:24
266
原创 例三 喷水装置
长 L 米,宽 W 米的草坪里装有 n 个浇灌喷头。每个喷头都装在草坪中心线上(离两边各 w/2米)。我们知道每个喷头的位置(离草坪中心线左端的距离),以及它能覆盖到的浇灌范围。对每组测试数据输出一个数字,表示要浇灌整块草坪所需喷头数目的最小值。如果所有喷头都打开也不能浇灌整块草坪,则输出 -1。接下来的 n 行,每行包含两个整数,给出一个喷头的位置和浇灌半径(上面的示意图是样例输入第一组数据所描述的情况)。请问:如果要同时浇灌整块草坪,最少需要打开多少个喷头?每组数据的第一行是整数 n、L 和 W;
2023-04-27 10:39:51
55
原创 洛谷 垂直柱状图
写一个程序从输入文件中去读取四行大写字母(全都是大写的,每行不超过100个字符),然后用柱状图输出每个字符在输入文件中出现的次数。严格地按照输出样例来安排你的输出格式。
2023-04-26 19:55:18
83
原创 PTA 选数
7-5 选数已知n个整数x1,x2,x3...xi,以及1个整数k(k<n)。从 n 个整数中任选 k个整数相加,可分别得到一系列的和。例如当 n=4,k=3,4个整数分别为3,7,12,19 时,可得全部的组合与它们的和为:3+7+12=22,3+7+19=29,现在,要求你计算出和为素数共有多少种。例如上例,只有一种的和为素数:3+7+19=29。
2023-04-19 12:48:55
324
1
原创 PTA 7-1乒乓球比赛
7-1 乒乓球比赛Alex和Bob正在打兵乓球单打比赛。以下是乒乓球的基本规则:要赢得比赛,选手需要赢得7场比赛中的4场。第一个达到11分的选手赢得该局比赛。(当球员打成 10−10 时,将会加赛一球,以此类推。但是本次比赛将取消这种规则,也就是说,每一局,谁先得到11分,谁就取得本局得胜利)无论谁发球,任何一名球员都可以得分。赢得一场比赛后,新的比赛开始,比分重置为0−0。
2023-04-19 09:56:52
1061
1
原创 PTA 试试手气
我们知道一个骰子有 6 个面,分别刻了 1 到 6 个点。下面给你 6 个骰子的初始状态,即它们朝上一面的点数,让你一把抓起摇出另一套结果。那么你应该可以预知自己第 n 次(1≤n≤5)摇出的结果。
2023-04-17 18:48:21
193
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人