自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Tom的博客

吃了睡,睡了吃

  • 博客(92)
  • 资源 (10)
  • 收藏
  • 关注

原创 最小生成树

简单介绍两大算法——Prim算法 和 Kruskal 算法.

2022-05-08 17:47:55 6463 3

原创 DFS递归之迷宫问题

DFS递归之迷宫问题:1.能否逃出迷宫;2.逃出迷宫的最短路径;3.缺口迷宫。

2022-04-09 11:30:30 4666

原创 DFS递归之岛屿问题

三种岛屿问题的DFS模板:1.岛屿数量,2.封闭岛屿的数目,3.岛屿的最大面积

2022-04-08 11:37:52 1467 3

原创 【HDU-1043】Eight 八数码(BFS之A*算法)

15 块拼图已有 100 多年的历史,即使你不知道它的名字,也一定见过它。它由 15 块滑动瓷砖组成,每块瓷砖上都有一个从 1 到 15 的数字,所有瓷砖都被装在一个 4×4 的框架内,其中缺少一块瓷砖。我们把这块缺失的瓷砖称为 "x";谜题的目的是将瓷砖排列成以下顺序:其中唯一合法的操作是将 "x "与与它共享一条边的其中一块牌交换。举例来说,下面的移动顺序可以解决一个略微混乱的谜题:

2023-08-02 13:48:25 631

原创 【POJ-3279】Fliptile(递推+搜索)

农场主约翰知道,一头智力得到满足的奶牛是一头快乐的奶牛,它会产更多的奶。他为奶牛安排了一项脑力活动,让它们摆弄一个 M × N 的方格 (1 ≤ M ≤ 15;1 ≤ N ≤ 15),每个方格的一面是黑色的,另一面是白色的。正如人们所猜测的那样,当翻转一块白色瓷砖时,它就会变成黑色;当翻转一块黑色瓷砖时,它就会变成白色。当奶牛翻转瓷砖,使每块瓷砖的白色面朝上时,它们就会得到奖励。不过,奶牛的蹄子比较大,当它们试图翻转某块瓷砖时,也会翻转所有相邻的瓷砖(与被翻转瓷砖共用一条完整边缘的瓷砖)。

2023-08-01 19:42:49 420 2

原创 Educational Codeforces Round #148 (Rated for Div.2) A~C

A. New Palindrome题意:给定一个回文字符串,问是否可以调换其中两个字符,得到另一个不同的回文字符串。思路:题目的条件给的宽松,只是询问是否可以调换,并没有要求调换的位置。方法一:统计不同的字符是否超过两个即可。超过两个那就一定可以调换。方法二:依次遍历,只要找个两个不同的相邻字符,直接调换即可。

2023-05-13 12:38:19 1108 1

原创 AtCoder Beginner Contest 296 (A~D)

A. Alternately题意:给定一个长度为 n 的只包含 两种 字符的字符串。判断这个字符串中的字符是否都是交替放置的。思路:枚举判断。B. Chessboard题意:给定一个 8 × 8 的网格,规定行号 从下往上 依次是 a、b、c...h ,列号 从左往右 依次是 1、2、3...8 。要求找个一个字符 * ,输出其坐标。思路:枚举。C. Gap Existence题意:给定一个长度为 n 的整数序列和 x ,要求在序列中找到两个数 a、b,满足

2023-04-02 12:36:48 778 1

原创 CodeForces Round #859 (div.4) A~G

A. Plus or Minus(签到)B. Grab the Candies(贪心)题意给定一个长度为 n 的数组,A 和 B 依次轮流拿数,A 拿偶数,B 拿奇数,问能否保证任何时候 A 手中的数的总和都大于 B 。思路贪心。偶数全给 A,奇数全给 B,最后比较大小,要求 `suma > sumb` 。C. Find and Replace(找规律)

2023-03-22 12:16:07 733 2

原创 递推题型(一)

1. 翻硬币 - AcWing题库题目描述小明正在玩一个“翻硬币”的游戏。桌上放着排成一排的若干硬币。我们用 * 表示正面,用 o 表示反面(是小写字母,不是零)。比如,可能情形是:**oo***oooo如果同时翻转左边的两个硬币,则变为:oooo***oooo现在小明的问题是:如果已知了初始状态和要达到的目标状态,每次只能同时翻转相邻的两个硬币,那么对特定的局面,最少要反动多少次呢?2. 砖块 - AcWing题库3. 费解的开关 - AcWing题库

2023-02-28 21:49:12 648

原创 双指针(一)

1、1238. 日志统计题目描述小明维护着一个程序员论坛。现在他收集了一份”点赞”日志,日志共有 N 行。其中每一行的格式是:ts id 表示在 ts 时刻编号 id 的帖子收到一个”赞”。现在小明想统计有哪些帖子曾经是”热帖”。如果一个帖子曾在任意一个长度为 D 的时间段内收到不少于 K 个赞,小明就认为这个帖子曾是”热帖”。具体来说,如果存在某个时刻 T 满足该帖在 [T,T+D) 这段时间内(注意是左闭右开区间)收到不少于 K 个赞,该帖就曾是”热帖"

2023-02-27 15:58:30 247

原创 AcWing 99. 激光炸弹

题目描述地图上有 N 个目标,用整数 X_i, Y_i 表示目标在地图上的位置,每个目标都有一个价值 W_i 。注意:不同目标可能在同一位置。现在有一种新型的激光炸弹,可以摧毁一个包含 R×R 个位置的正方形内的所有目标。激光炸弹的投放是通过卫星定位的,但其有一个缺点,就是其爆炸范围,即那个正方形的边必须和 x,y 轴平行。求一颗炸弹最多能炸掉地图上总价值为多少的目标。输入格式第一行输入正整数 N 和 R,分别代表地图上的目标数目和正方形包含的横纵位置数量,数据用空格隔开。

2023-02-13 22:28:09 353

原创 AcWing 1230.K倍区间

题目描述给定一个长度为 N 的数列,A_1, A_2, … A_N ,如果其中一段连续的子序列 A_i, A_{i+1}, … A_j 之和是 K 的倍数,我们就称这个区间 [i,j] 是 K 倍区间。你能求出数列中总共有多少个 K 倍区间吗?输入格式第一行包含两个整数 N 和 K。以下 N 行每行包含一个整数 A_i。输出格式输出一个整数,代表 K 倍区间的数目。

2023-02-13 22:25:00 469

原创 AcWing 3956. 截断数组(每日一题)

题目描述给定一个长度为 n 的数组 a_1, a_2, …, a_n 。现在,要将该数组从中间截断,得到三个非空子数组。要求,三个子数组内各元素之和都相等。请问,共有多少种不同的截断方法?输入格式第一行包含整数 n。第二行包含 n 个整数 a_1, a_2, …, a_n 。

2023-02-13 22:18:56 961

原创 2023牛客寒假算法集训营4

A. 清楚姐姐学信息论(数学)题意:给定两个非负整数 x ,y (2 ≤ x, y ≤ 10^9) ,表示 x 进制和 y 进制,比较哪种进制的信息表示效率更高。当且仅当,x 进制和 y 进制分别使用 x · y 张号码牌时 x 进制能够表示的数字数目大于 y 进制,则称 x 进制的信息表示效率大于 y 进制。思路一:比较 x^y 和 y^x​ 的大小就行。但是你这样写会发现,炸了,数据太大了,所以需要优化一下:改成比较 y⋅log x 和 x·log y 就行了。思路二:数学的方法

2023-02-11 19:48:38 1080

原创 蓝桥算法训练营-普及组-2.9打卡

1. P1781 宇宙总统(字符串排序)题意:共有 n​ 个人竞选总统,给定每个候选人的票数,票数最多的人当选总统,输出候选人的编号和票数。注:票数很大,可能会到 100 位数字。思路:将票数用 字符串 来存储,用结构体来存储每个人的票数和编号。最后按照票数排序,输出最大的票数及对应的编号即可。2. P1223 排队接水(贪心)题意:有 n 个人在一个水龙头前排队接水,每个人接水的时间为 t_i。请找出这 n 个人排队的最优顺序,使得 n 个人的平均等待时间最小。

2023-02-09 15:24:09 719

原创 2023牛客寒假算法集训营5

A. 小沙の好客(贪心 + 排序 + 前缀和 + 二分)题意:有一家超市,里面有 n 件商品。有 Q 个问题,每次询问要求挑选最多 k 个价值不大于 x 的商品,问能挑选的价值和最大为多少。B. 小沙の博弈(贪心 + 字典序)题意:小沙和小雅在玩"拿石子游戏"他们两个人都十分聪明,均会选择最优的方法使得自己获胜。桌子上有 n 个石子 ,他们两个人面前均有排成一行的若干个格子,每个格子都可以置放无限多个石子。小沙和小雅两个人交替进行操作,小沙先手,每次操作可以从桌子上拿走任意正整数个石子

2023-02-06 21:38:50 847

原创 2023牛客寒假算法集训营6

A. 阿宁的签到题题意:输入一个数 x ,判断评分等级。有以下等级: - ​ very easy (1≤x≤7) - ​ easy (7

2023-02-06 00:18:27 580

原创 2023牛客寒假算法集训营2

A. Tokitsukaze and a+b=n (easy)(枚举)题意:给定一个整数 n 和两个区间 [L_1, R_1] , [L_2, R_2] .要求从第一个区间选择一个整数 a ,从第二个区间选择一个整数 b,满足 a + b = n .求有多少种选法。对于两种选法,若 a, b​ 中有任意一个数不同,则算作不同的选法。【数据范围】对于每组测试数据:第一行包含一个整数 n (1≤n≤2⋅10^5)第二行包含两个整数 L1, R1 (1≤L_1≤R_1≤10^5)

2023-01-30 22:24:40 928

原创 2023牛客寒假算法集训营3

A. 不断减损的时间(贪心)题意:给定一个数组,任意次操作,每次操作可以 选择一个偶数除以 2 。求最终数组所有元素之和的最小值。思路:要使得所有元素之和最小,那肯定是只对正偶数进行操作,每次除以 2,直到为 0 或者不是偶数为止。B. 勉强拼凑的记忆(思维 + 找规律)题意:给定 n 块矩形积木来搭建正方形,可以自由选择每块积木的大小,但长和宽必须符合 1×k

2023-01-22 21:15:49 1730 1

原创 2023牛客寒假算法集训营1

A. World Final? World Cup! (I) (模拟、枚举)题意:给定一个长度为 10 的01串,表示 A、B 双方的点球情况,1 表示罚进,0 表示罚不进。A 先手,交替罚点球,各罚五次。得分多者获胜。若在罚完某个球后,后续的罚球无论如何都不会影响最终的结果,则比赛结束。判断会在踢完第几个球时结束,若踢满 10 球仍未分出胜负则输出 -1.思路:依次枚举,每次记录下当前的得分,然后分别假设 A 和 B 在最优情况下的后续得分(即后面每次点球都罚进),再将情况合并判断能否分胜负

2023-01-18 00:10:30 2142

原创 Acwing 4261.孤独的照片(字符串查找)

题目描述Farmer John 最近购入了 N​ 头新的奶牛,每头奶牛的品种是更赛牛(Guernsey)或荷斯坦牛(Holstein)之一。奶牛目前排成一排,Farmer John 想要为每个连续不少于三头奶牛的序列拍摄一张照片。然而,他不想拍摄这样的照片,其中只有一头牛的品种是更赛牛,或者只有一头牛的品种是荷斯坦牛——他认为这头奇特的牛会感到孤立和不自然。在为每个连续不少于三头奶牛的序列拍摄了一张照片后,他把所有「孤独的」照片,即其中只有一头更赛牛或荷斯坦奶牛的照片,都扔掉了。给定奶牛的排列方式

2023-01-12 20:54:39 668

原创 Acwing 4656.技能升级(枚举+二分)

题目描述小蓝最近正在玩一款 RPG 游戏。他的角色一共有 N 个可以加攻击力的技能。其中第 i 个技能首次升级可以提升 Ai 点攻击力,以后每次升级增加的点数都会减少 Bi。 Ai / Bi(向上取整)次之后,再升级该技能将不会改变攻击力。现在小蓝可以总计升级 M 次技能,他可以任意选择升级的技能和次数。请你计算小蓝最多可以提高多少点攻击力?输入格式:输入第一行包含两个整数 N 和 M。以下 N 行每行包含两个整数 A_i 和 Bi。输出格式输出一行包含一个整数表示答案。

2023-01-12 20:43:22 835

原创 AtCoder Beginner Contest 057 (A~D)

A. Remaining Time(模拟)题意:现在是 A 点钟,求过 B 小时后是几点钟。思路:模拟对 24 取模。B. Checkpoints(暴力枚举)题意:给定 N 个学生和 M 个检查站的坐标,求每个学生到最近的检查站的编号。思路:挨个枚举。对于每个学生,计算比较其到每个检查站的距离,并记录下该检查站的编号。

2023-01-05 17:51:11 496

原创 AtCoder Beginner Contest 276 (A~E)

A. Rightmost(遍历)题意:给定一个全是小写字母的字符串,问最后一个 a 出现的位置。思路:遍历字符串,有 a 就更新位置,没有则输出 -1.B. Adjacency List(排序)题意:给定 n 个点(编号从 1 ~ n)和 m 条边,每条边连接两个顶点。要求判断每个顶点所对应的边数,若有则输出边数并将所能到达的点按编号升序输出,否则输出 0.

2022-11-16 18:01:40 652

原创 CodeForces Round #832 (div.2) A~C

A. Two Groups题意:给定一个包含 n 个整数的数组,要求将其分为两组,使得两组数和的绝对值之差最小。输出最小的绝对值之差。思路:将正数和负数分为两组,分别求出和的绝对值,将两个绝对值相减,再求其绝对值即可。换句话说,整个数组和的绝对值就是答案。B. BAN BAN题意:给定一个整数 n 。定义 s(n) 表示把字符串 BAN 连接了 n 次,即 s(1) = “BAN”, s(3) = “BANBANBAN”.要求选择字符串中的任意两个字符进行交换,保证最后的字符串中不包含

2022-11-05 21:17:48 870

原创 CodeForces Round #501 (div.3) A~E2

A. Points in Segments(暴力)题意:给定 n 个子区间和 m 个 1~m 的总区间,问有哪些点没有被给定的子区间覆盖,输出未被覆盖的点。思路:暴力模拟即可。遍历整个区间,用一个标记数组来记录被覆盖了的点,最后输出未被标记的点。B. Obtaining the String(排序)题意:给定两个字符串 s 和 t ,规定每次只能交换相邻的字符串,要求将 s 变成 t 。输出交换的次数,和每次交换时该对字符中前面字符的位置。

2022-11-03 09:23:24 162

原创 CodeForces Round #829 (div.2) A~C2

A. Technical Support题意:给定一个只包含 Q, A 的字符串,问每个 Q(问题) 能否匹配所有 A(回答)。思路:一个 Q 可以对应多个 A,可以允许 A 没有对应的 Q,即允许在 A 之前没有 Q.

2022-11-01 16:48:36 198

原创 CodeForces 1738A. Glory Addicts

The hero is addicted to glory, and is fighting against a monster.The hero has n skills. The i-th skill is of type ai (either fire or frost) and has initial damage bi.The hero can perform all of the n skills in any order (with each skill performed exact

2022-10-24 23:15:34 355

原创 AtCoder Beginner Contest 272 (A~D)

A. Integer Sum题意:给定 n 个数,输出它们的和。思路:A+B。。。代码如下:B. Everyone is Friends题意:给定 n 个人和 m 个派对,每个派对有 k 个人参加,判断是否每两个人至少参加一次同一个派对。思路:用一个大小为 k × k 的数组 a[i][j] 表示两两配对,初始为 0,若有两人参加同一派对则为 1。依次枚举 k ^ 2 次,最后判断即可。

2022-10-09 20:09:44 316

原创 Educational Codeforces Round #136 (Rated for Div. 2) A~C

A. Immobile Knight题意:给定一个 n×m 的棋盘,棋盘上有一个 “马”,可以在一个方向上移动两个单元格,在垂直方向上移动一个单元格。问:将其放在哪个位置,才能使其无处可走。如果满足条件,则输出坐标,否则输出任意一组坐标。思路:当棋盘横纵大小都小于等于 3 时,(2,2)必定不能走;大于 3 时,则任意位置都可以走;记得特判 1 即可。

2022-09-30 21:58:21 1854 2

原创 Educational Codeforces Round #71 (Rated for Div. 2) A~C

A. There Are Two Types Of Burgers (模拟)题意:制作汉堡分配题。已知要制作一个汉堡包,需要两个面包和一个牛肉饼,制作一个鸡肉汉堡,需要两个面包和一个鸡排。给定 b 个面包,p 个牛肉饼,f 个鸡排,一个汉堡包 h 元,一个鸡肉汉堡 c 元。问你最大利润是多少。思路:不同的汉堡用的相同数量的面包,那么就先比较馍的性价比,先卖价值高的汉堡。

2022-09-28 21:52:13 493

原创 CodeForces Round #821 (div.2) A~C

A. Consecutive Sum题意:给定一个长度为 n 的数组,每次操作选择索引 i 和 j ,满足 i % k == j % k ,并交换 a[i] 和 a[j] ,最多不超过 k 次操作。操作完后,选择 k 个连续的元素,使得其和最大,输出最大值。思路:i % k == j % k 翻译过来就是表示 元素 a[i] 与 a[j] 的距离为 k 。所以,可以选定前 k 个数,然后以 k 的距离单位去依次遍历数组,选出每个对应位置上的最大元素,相加即为最大值。

2022-09-20 16:53:51 408

原创 AtCoder Beginner Contest 267 (A~D)

A. Saturday题意:告诉你今天星期几,问距离周六还有几天。思路:直接输出即可。B. Split?题意:有一个保龄球图,保龄球编号从 1 到 10,其分布如下图所示。将图中两条虚线的每个部分称为一列。给定一个长度为 10 的 01串,一一对应每个保龄球,其中 0 表示被击倒,1 表示未被击倒。问给定的序列是否满足:第一个保龄球被击倒存在两列都有未被击倒的保龄球,并且中间存在一列,其中的保龄球全部被击倒。满足输出 Yes ,不满足则输出 No .

2022-09-18 11:38:13 460

原创 CodeForces Round #535 (div.3) A~D

A. Two distinct points题意:给定两个区间,左右端点分别为 l1, r1, l2, r2,找到不同的 a ,b 两数,使得 l1

2022-09-18 10:21:01 606

原创 CodeForces 888C. K-Dominant Character(思维)

You are given a string s consisting of lowercase Latin letters. Character c is called k-dominant iff each substring of s with length at least k contains this character c.You have to find minimum k such that there exists at least one k-dominant character.

2022-09-17 11:46:28 446

原创 CodeForces Round #817 (div.4) A~F

A.Spell Check题意:有一个人名字叫 Timur,给你一个字符串,问你是不是字符串 “Timur” 的任何排列。思路:将 Timur 按照字符大小排序,再将所给的字符串排序,最后判断两个字符串是否相等即可。B. Colourblindness题意:给定两个长度相等的字符串,由 “R, G, B” 组成,但是 “G” 和 “B” 可以互相替换,即 “G” 和 “B” 可以看成同一字符,判断两个字符串是否相等。

2022-09-01 21:52:29 844

原创 PTA 7-198 N个数求和

本题的要求很简单,就是求 N 个数字的和。麻烦的是,这些数字是以有理数 分子/分母 的形式给出的,你输出的和也必须是有理数的形式。输入格式:输入第一行给出一个正整数 N(≤100)。随后一行按格式 a1/b1 a2/b2 ... 给出 N 个有理数。题目保证所有分子和分母都在长整型范围内。另外,负数的符号一定出现在分子前面。输出格式:输出上述数字和的最简形式 —— 即将结果写成 整数部分 分数部分 ,其中分数部分写成 分子/分母 ,要求分子小于分母,且它们没有公因子。如果结果的整数部分为0,则只输出

2022-08-28 12:59:08 306

原创 PTA 7-195 整数分解为若干项之和

将一个正整数N分解成几个正整数相加,可以有多种分解方法,例如7=6+1,7=5+2,7=5+1+1,…。编程求出正整数N的所有整数分解式子。输入格式:每个输入包含一个测试用例,即正整数N (0

2022-08-28 12:59:00 989

原创 PTA 7-194 说反话-加强版

给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。输入格式:测试输入包含一个测试用例,在一行内给出总长度不超过500 000的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用若干个空格分开。输出格式:每个测试用例的输出占一行,输出倒序后的句子,并且保证单词间只有1个空格。......

2022-08-28 12:58:52 158

原创 PTA 7-190 猴子选大王

一群猴子要选新猴王。新猴王的选择方法是:让N只候选猴子围成一圈,从某位置起顺序编号为1~N号。从第1号开始报数,每轮从1报到3,凡报到3的猴子即退出圈子,接着又从紧邻的下一只猴子开始同样的报数。如此不断循环,最后剩下的一只猴子就选为猴王。请问是原来第几号猴子当选猴王?输入格式:输入在一行中给一个正整数N(≤1000)。输出格式:在一行中输出当选猴王的编号。......

2022-08-28 12:58:42 233

Java 模拟 ATM 系统

使用 Java 创建一个 GUI 程序模拟银行ATM系统,界面美观大方,可用作期末大作业。 包括 开户、登录、银行卡挂失和取消挂失、以及退出模块。 其中,用户登录后包括余额查询、存款、取款、转账、查询交易记录、修改密码、注销银行卡、退出登录功能。 推荐使用 IDEA 打开,本人使用 IDEA 2022.1.3 编写。 使用最新版 MySQL 8.0.33编写,内含连接数据库模块包,在项目结构中导入即可。 下载压缩包解压后使用 IDEA 打开,先连接本地数据库,建立项目所需数据表,下方状态栏不爆红即为成功。 然后在 src.dao 文件夹中找到 BaseDao.java 文件,修改 URL、NAME、PASSWORD修改为自己本地的设置,之后运行 src.view 文件夹中的主程序 InitialPage.java 即可。 有任何不懂,可以咨询 QQ:3292801788(doge)

2023-07-03

sprite.py

《外星人入侵》小游戏源代码,需要的朋友可自行下载

2021-10-24

ship.py

《外星人入侵》小游戏源代码,需要的朋友可自行下载

2021-10-24

scoreboard.py

《外星人入侵》小游戏源代码,需要的朋友可自行下载

2021-10-24

button.py

《外星人入侵》小游戏源代码,需要的朋友可自行下载

2021-10-24

game_stats.py

《外星人入侵》小游戏源代码,需要的朋友可自行下载

2021-10-24

settings.py

《外星人入侵》小游戏源代码,需要的朋友可自行下载

2021-10-24

_sprite.cp39-win_amd64.pyd

《外星人入侵》小游戏源代码,需要的朋友可自行下载

2021-10-24

bullet.py

《外星人入侵》小游戏源代码,需要的朋友可自行下载

2021-10-24

alien_invasion.py

《外星人入侵》小游戏源代码,需要的朋友可自行下载

2021-10-24

alien.py源文件

《外星人入侵》小游戏源代码,需要的朋友可自行下载

2021-10-24

空空如也

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

TA关注的人

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