- 博客(92)
- 资源 (10)
- 收藏
- 关注
原创 【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 系统
2023-07-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人