自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 百度之星2024 初赛第一场 补给

BD202401补给可怕的战争发生了,小度作为后勤保障工作人员,也要为了保卫国家而努力。现在有 𝑁(1≤𝑁≤103)个堡垒需要补给,然而总的预算 𝐵(1≤𝐵≤109)是有限的。现在已知第 𝑖 个堡垒需要价值 𝑃(𝑖)的补给,并且需要 𝑆(𝑖)的运费。鉴于小度与供应商之间长期稳定的合作关系,供应商慷慨地提供了一次特别的采购优惠。具体而言,小度可以选择对某次补给进行半价采购。

2024-06-12 23:22:44 280

原创 YTU 4260 cv工程师的小礼物

cv工程师现在送你一个数组作为蓝桥杯结束的礼物,你可以从这个数组中选择任意多个不相邻的数字,请最大化你选择的数字之和。数据范围:1≤n≤200000,−10^9≤ai≤10^9。

2024-06-12 23:04:40 322

原创 多处最优服务次序问题 YTU 1743

设有 n 个顾客同时等待一项服务。顾客 i 需要的服务时间为 ti,1≤i≤n。共有 s 处可以提供此项服务。应如何安排 n 个顾客的服务次序才能使平均时间达到最小?平均时间是 n 个顾客等待服务时间加服务时间的总和除以 n。对于给定的 n 个顾客需要的服务时间和 s 的值,计算最优服务次序。

2024-05-26 12:51:45 242

原创 华中农业大学第十三届程序设计竞赛 scx 的散文诗句

scx 又想写诗了。scx 一共有 n 个词汇,每个词汇都有着一定的魅力值。scx 需要将这 n 个词汇分成 ⌈n/2] 个词组,每个词组至多有 2 个词汇。每一个有 2 个词汇的词组都会让叶璃浅产生大小为该词组中的 222 个词汇的魅力值的乘积的心动值。scx 想获得叶璃浅的青睐,所以他想请你帮他最大化所有产生的心动值之和。,你需要将 n 个数分成 ⌈n/2⌉ 组,每组至多 2 个数。定义你的得分为2组内两个数的乘积的和。请最大化得分。

2024-05-19 17:43:53 250

原创 第四届上海理工大学程序设计全国挑战赛 I 题 纠缠之圆

QingTian222 发现二维平面上的两颗纠缠之缘(可以看成圆)即将发生纠缠,他需要找到有多少条平面内的不同直线与这两个圆同时相切才能避免损失两次抽卡机会,但是他并不知道答案是多少,但他也不想损失这两次抽卡机会,于是他来求助你,请你告诉他,有多少条不同的直线与给定的两个圆相切。

2024-05-19 12:49:10 285

原创 AtCoder Beginner Contest 354 C - AtCoder Magics

因此我们对所有的卡片进行按照cost从小到大排序,v表示前i-1张卡片中最强的力量,如果第i张卡片力量大于等于v,说明这种卡片可以保留。反之,如果第i张卡片比i弱,又因为它还贵,那么我们就不要这张卡片了。首先,要明白这道题要我们做什么,就是丢弃这些卡片,然后输出剩余卡片的编号,那么什么样的卡片要舍弃呢?如果这个卡片它又贵还又弱,那么我们就不要它。自己加一些感悟,用朴素的语言来解释这道题目。首先声明本篇博客代码取自。

2024-05-19 11:46:58 820

原创 YTU 1302 泊松分酒 搜索 dfs

泊松是法国数学家、物理学家和力学家。他一生致力科学事业,成果颇多。有许多著名的公式定理以他的名字命名,比如概率论中著名的泊松分布。有一次闲暇时,他提出过一个有趣的问题,后称为:“泊松分酒”。在我国古代也提出过类似问题,遗憾的是没有进行彻底探索,其中流传较多是:“韩信走马分油”问题。有 3 个容器,容量分别为 12 升,8 升,5 升。其中 12 升中装满油,另外两个空着。要求你只用 3 个容器操作,最后使得某个容器中正好有 6升油。每行 3个数据,分别表示 12,8,6 升容器中的油量。

2024-05-18 16:42:41 391

原创 51 nod 1278 相离的圆 二分 思维训练

平面上有 𝑁 个圆,他们的圆心都在 𝑋 轴上,给出所有圆的圆心和半径,求有多少对圆是相离的。例如: 4 个圆分别位于 1,2,3,4 的位置,半径分别为 1,1,2,1 ,那么{ 1,2},{1,3}{2,3}{2,4}{3,4} 这 5 对都有交点,只有{ 1,4} 是相离的。

2024-05-17 20:05:52 309

原创 线段的重叠

X 轴上有 N 条线段,每条线段包括 1 个起点和终点。线段的重叠是这样来算的, [10 20] 和 [12 25] 的重叠部分为 [12 20]。给出 𝑁 条线段的起点和终点,从中选出 2 条线段,这两条线段的重叠部分是最长的。输出这个最长的距离。如果没有重叠,输出 0。

2024-05-16 17:31:29 182

原创 最小新整数 YTU 3646 贪心算法

给定一个十进制正整数 n (0<n<10000000000),每个数位上数字均不为 0。n 的位数为m。现在从 m 位中删除 k 位 (0<k<m),求生成的新整数最小为多少?例如: n=9128456,k=2, 则生成的新整数最小为12456。

2024-05-16 12:53:29 242

原创 POJ 2287 田忌赛马 贪心

中国古代一个有名的故事 ” 田忌赛马”。田忌和齐王赛马, 他们各有 n 匹马,依次派出一匹马进行比赛, 每一轮获胜的一方将从输的一方获得200 银币, 平局则不用出钱。其中每匹马只能出场一次,每匹马有一个速度值,在比赛中速度快的马一定会获胜。田忌知道所有马的速度值,且田忌可以安排每轮双方出场的马。问田忌如何安排马的出场顺序,使得最后获得的钱最多?

2024-05-16 11:11:43 255

原创 YTU 3166 共享单车 DFS 记忆化搜索

共享单车走进烟台,小明决定尝试。小明启动共享单车 App,轻松地找到附近的单车。那么问题来了,到最近的那辆单车,小明大约要走多少米呢?现在简化问题。将地图设定成一个由 100×100 米的像素块组成的二维平面区域。如果一个方块内有单车,则像素块显示为字符x;如果此方块内是可以通行的路,则显示为;再如果方块是建筑物,则显示为,建筑物不能通行。小明在地图上的位置显示为o,可以朝,“上”、“下”、“左”,“右”,“左上”,“左下”,“右上”,“右下”八个方向走。下图所示为一个小明站在像素方块O。

2024-05-13 22:46:14 718

原创 AtCoder Beginner Contest 351 D - Grid and Magnet

如果没有限制,就是普通的搜索了,暴力跑就好了。加上这个限制,如果我们像连通块一样,提前把某个格子跑到,并且因为 周围上下左右有一个#就不能移动,提前打上标记。后面其实从其他位置出发也能跑到这个格子,这个格子的计数就少了。那如果我们跑每个点的时候,都对整张地图的vis 标记memset 重置一下,那么总的时间复杂度又太大了。

2024-05-03 18:35:27 633

原创 AtCoder Beginner Contest 351 C题

这道题利用动态数组vector来模拟题目的要求,其中需要注意的是vector数组下标是从0 开始的,因此判断最右面的元素和倒数第二个右面元素的时候要注意其下面,再就是注意它放入的数据是2 的A[i]的次幂。其他只要掌握vector数组的使用方法,会vector.pop_back,应该就没问题了。

2024-05-03 17:29:09 754

原创 P1083 [NOIP2012 提高组] 借教室

共有 m 份订单,每份订单用三个正整数描述,分别为dj​,sj​,tj​,表示某租借者需要从第 sj​ 天到第 tj​ 天租借教室(包括第 sj​ 天和第 tj​ 天),每天需要租借 dj​ 个教室。第 2 份订单要求第 2天到第 4 天每天提供3个教室,而第 3 天剩余的教室数为2,因此无法满足。即对于每份订单,我们只需要每天提供 dj​ 个教室,而它们具体是哪些教室,每天是否是相同的教室则不用考虑。对于 100%的数据,有1≤𝑛,𝑚≤10^6,0≤𝑟𝑖,𝑑𝑗≤10^9,1≤𝑠𝑗≤𝑡𝑗≤𝑛。

2024-05-03 16:31:52 383

原创 P2256 一中校运会之百米跑

这道题,一眼并查集,关键问题是,这道题的输入为名字,而不是数字,如何寻找对应关系,并将其合并呢,我们想到了map,可以实现映射关系,我们将每一个名字都和一个唯一的数字相一一映射,这样就可以实现这道题目了。如果学生 A 与学生 B 在同一组里,学生 B 与学生 C 也在同一组里,就说明学生 A 与学生 C 在同一组。再往下 𝑀M 行每行输入两个名字,且保证这两个名字都在上面的 N 行中出现过,表示这两个参赛选手在同一个组里。接着会告诉你 M(1≤M≤106)句话,即告诉你学生 A 与学生 B 在同一个组里。

2024-05-03 14:32:39 464

原创 洛谷 P1305 新二叉树 二叉树的先序遍历

后面 n 行,每一个字母为节点,后两个字母分别为其左右儿子。叶子结点:自己下面不再连接有节点的节点(即末端),称为叶子节点(又称为终端结点)。遍历d节点,并没有孩子,返回节点b,节点b没有右孩子,返回节点a,遍历右子树。子节点:除根节点之外,并且本身下面还连接有节点的节点。遍历f节点,并没有孩子,返回到根节点,遍历结束。先遍历根节点,再遍历左子树,右子树。遍历e节点,并没有左子树,遍历右子树。先遍历a节点,接下来遍历它的左子树。遍历b节点,在遍历它的左儿子d。遍历c节点,再遍历他的左子树。

2024-04-22 11:41:15 346

原创 洛谷 P1802 5 倍经验日

悲剧的是,用药量没达到最少打败该人所需的属性药药量,则打这个人必输。例如他用 2 个药去打别人,别人却表明 3个药才能打过,那么相当于你输了并且这两个属性药浪费了。后面 n 行每行三个数,分别表示失败时获得的经验losei​,胜利时获得的经验 wini​ 和打过要至少使用的药数量 usei​。),准备开始与那些人打了。现在有 n 个好友,给定失败时可获得的经验、胜利时可获得的经验,打败他至少需要的药量。五倍经验活动的时候,absi2011 总是吃体力药水而不是这种属性药。一个整数,最多获得的经验的五倍。

2024-04-20 15:19:33 270

原创 洛谷 P1164 小A点菜

餐馆虽低端,但是菜品种类不少,有 N 种 (N≤100),第 i 种卖 ai​ 元 (ai​≤1000)。由于是很低端的餐馆,所以每种菜只有一份。小 A 奉行“不把钱吃光不罢休”,所以他点单一定刚好把 uim 身上所有钱花完。第二行起 N 个正数 ai​(可以有相同的数字,每个数字均在 1000 以内)。不过 uim 由于买了一些书,口袋里只剩 M 元 (M≤10000)。uim 指着墙上的价目表(太低级了没有菜单),说:“随便点”。一个正整数,表示点菜方案数,保证答案的范围在 int 之内。

2024-04-20 14:39:59 245

原创 P1002 [NOIP2002 普及组] 过河卒

棋盘上 A 点有一个过河卒,需要走到目标 B 点。卒行走的规则:可以向下、或者向右。同时在棋盘上 C 点有一个对方的马,该马所在的点和所有跳跃一步可达的点称为对方马的控制点。因此称之为“马拦过河卒”。棋盘用坐标表示,A 点 (0,0)、B 点 (n,m),同样马的位置坐标是需要给出的。现在要求你计算出卒从 A 点能够到达 B 点的路径的条数,假设马的位置是固定不动的,并不是卒走一步马走一步。

2024-04-20 14:18:43 377

原创 八皇后问题 递归+回溯 (n皇后)

时间限制: 1.00s | 内存限制: 128MB会下国际象棋的人都很清楚: 皇后可以在横、竖、斜线上不限步数地吃掉其他棋子。如何将8 个皇后放在棋盘(有8×8个方格) 上, 使它们谁也不能被吃掉,这 就是著名的八皇后问题。 .对于某个满足要求的八个皇后的摆放方法 ,定 义一个皇后串 a 与之对应, 即a=b1b2…b8, 其中 bi 为相应摆法中第 i 行皇后所处的列数。已经知道八皇后问题一共有92 组解(即 92 个不同的皇后串)。给出一个数b , 要求输出第b 个串。串的比较是这样的: 皇后串

2024-04-14 11:23:55 520 1

原创 YTU 3723 快速找到和为零的四个数 哈希 unordered_map讲解

时间限制: 2.00s | 内存限制: 128MB定义求和问题如下:给定 444 组整数 A,B,C,D,找到有多少四元组 (a,b,c,d)∈A×B×C×D(a, b, c, d) , 满足条件a+b+c+d=0。此问题中,假设A,B,C,D 具有相同的大小 n。输入包含多组测试数据。每组测试数据的第一行包含一个整数 n,表示 A,B,C,D 的元素个数(n≤1000)。接下来 n 行每行 4 个整数,分别属于 A,B,C,D,每个整数的大小在 [−228,228]之间。对于每组测试数据,输出满足条件的四

2024-04-09 17:13:14 610 1

原创 洛谷 P1115 最大子段和

给出一个长度为 n 的序列 a,选出其中连续且非空的一段使得这段和最大。

2024-04-08 11:14:56 266 1

原创 ACWing 走迷宫问题

给定一个 n×m 的二维整数数组,用来表示一个迷宫,数组中只包含 0 或 1,其中 0 表示可以走的路,1 表示不可通过的墙壁。最初,有一个人位于左上角 (1,1) 处,已知该人每次可以向上、下、左、右任意一个方向移动一个位置。请问,该人从左上角移动至右下角 (n,m) 处,至少需要移动多少次。数据保证 (1,1) 处和 (n,m) 处的数字为 0,且一定至少存在一条通路。

2024-04-07 17:56:20 342

原创 YTU 3149 基础搜索之马走日

每一组测试数据包含一行,为四个整数,分别为棋盘的大小以及初始位置坐标 n,m,x,yn, m, x, yn,m,x,y。(0≤x

2024-04-07 14:53:32 349

原创 YTU 3722 在线翻译

输入包含不多于 10000 条词条,接着空一行,然后是待翻译的短文,包含不多于 100000 个外语单词。每一个词条占一行,包含英语单词和对应的外语单词,两者之间用空格隔开。输人保证没有重复的外语单词,且每个单词都由不多于 10 个的小写字母组成。今天思路来不及写了,我也是看的csdn上的一篇文章,直接将代码粘过来的,稍后我会修改加上我自己的一些理解,这个代码思路真的非常棒。你最近从滑铁卢搬到了另一个大城市,这里的人们说着一种难以理解的外语。幸运的是,你带着一本词典,它可以帮助你与这里的人们沟通。

2024-04-06 21:47:31 372 1

原创 YTU 3721 方程求解 实数二分

其实这道题还是简单一些的,为什么说它简单呢,因为这个函数是单调的,你对这个函数求导发现,导函数的b^2-4ac

2024-04-06 16:13:09 229 1

原创 YTU 3734 查找最接近的元素 二分

时间限制:| 内存限制:题目描述在一个非降序列中,查找与给定值最接近的元素。

2024-04-05 20:50:40 329 1

原创 YTU 2413 C 语言习题 折半查找 如何应对降序二分

如果mid满足判断条件(a[mid]<=x),并不能说明mid 就是第一个小于等于x的数,mid 右侧的数肯定都满足<=x ,但我们要寻找第一个小于等于x 的数,因此要将r 更新成mid ,即答案在左半边区间,如果不满足条件(即a[mid]>x) ,答案肯定在mid 右侧的区间而且不包含mid ,即l=mid+1;这道题呢,因为它是降序,我们要找某个数字第一次出现的位置,其实就是找第一个小于等于x 的数字的下标,它已经小于7了,右边一定小于7 ,你要找第一次小于等于7的,肯定要往左半边(数大的位置)找。

2024-04-05 19:32:26 366 1

原创 YTU 3736 和为给定数 尺取法,二分法

首先,对数组从小到大排序,然后设置两个变量i 和 j ,分别指向头和尾,i的初值为0,j的初值的n-1,然后让i 和 j 逐渐向中间移动,检查a[i]+a[j],如果大于m ,就让j 减1 ,如果小于m ,就让i加1 ,直至a[i]+a[j]=m.排序的复杂度为O(nlogn) ,检查的复杂度为O(n),总复杂度为O(nlogn)第三行是一个整数 m (0≤m≤2^30),表示需要得到的和。若存在和为 m 的数对,输出两个整数,小的在前,大的在后,中间用单个空格隔开。若找不到符合要求的数对,输出一行。

2024-04-05 17:21:34 441 1

原创 Gold Rush 深搜 DFS

现在,你可以对这 n 个金币进行分堆。每次分堆只能分成两堆,并且需要使分堆后的一堆恰好是另一堆的。请你判断:在经过多次或不经过分堆后能否有任意一堆的金币数为 �m。我认为这道题就是唬人的,看着题干可能是英文的,这么长的篇幅,感觉吓人,其实很简单,本题有 t 组数据。对于每组数据,你都会得到 n 个金币。对于第四组数据,我们不能把少的金币变成更多的一堆。或其它任意的大小写形式;对于第三组数据,我们无法进行分堆操作。在每次分堆前,被分开的堆被标为红色。同时,分成的两堆都必须有。或其它任意的大小写形式。

2024-04-04 17:55:17 1056 1

原创 The Lakes BFS求解 连通块问题

其实就是bfs的模板题,只是在扩展时要判断你将要扩展的点是否为0,联通块问题,如果我们将要扩展的这个点为0的话,是不能扩展的,所以在判断条件上g[x][y]!给定 n×m 的矩阵,正整数上、下、左、右相连构成一个连通块。定义一个连通块的权值为该连通块中所有数的和。求矩阵中最大的连通块。

2024-04-04 17:12:31 949 1

原创 P1025 [NOIP2001 提高组] 数的划分

将整数 n 分成 k 份,且每份不能为空,任意两个方案不相同(不考虑顺序)。例如:n=7,k=3,下面三种分法被认为是相同的。1,1,5;1,5,1;5,1,1.问有多少种不同的分法。

2024-04-04 11:59:50 278 1

原创 洛谷 P1747 好奇怪的游戏 BFS

爱与愁的故事第三弹·shopping》娱乐章。调调口味来道水题。

2024-04-04 11:04:52 293 1

原创 洛谷 P1443 马的遍历 经典BFS

有一个 n×m 的棋盘,在某个点(x,y) 上有一个马,要求你计算出马到达棋盘上任意一个点最少要走几步。

2024-04-04 10:12:14 342

原创 洛谷 P1135 奇怪的电梯

呵呵,有一天我做了一个梦,梦见了一种很奇怪的电梯。大楼的每一层楼都可以停电梯,而且第 i 层楼(1≤i≤N)上有一个数字 Ki​(0≤Ki​≤N)。电梯只有四个按钮:开,关,上,下。上下的层数等于当前楼层上的那个数字。当然,如果不能满足要求,相应的按钮就会失灵。例如: 3,3,1,2,5代表了 Ki​(K1​=3,K2​=3,……),从 1 楼开始。在 1 楼,按“上”可以到 4 楼,按“下”是不起作用的,因为没有 −2 楼。那么,从 A 楼到 B 楼至少要按几次按钮呢?

2024-04-02 21:14:11 876

原创 洛谷P1149 [NOIP2008 提高组] 火柴棒等式

因为这道题n 的取值最大为24,除去4个运算符所需的火柴棒,剩余20根,其实循环的终止边界也不需要去精准的计算,1111+1=1112已经用掉了8+2+2+2+11=25根火柴棒,所以A,B,C的取值也就在1000左右,其实只要在时间不超时,范围开大一点也不要紧,二重循环,O(n^2) 的时间复杂度,开1e3多是肯定没有问题的。给你 n 根火柴棍,你可以拼出多少个形如A+B=C 的等式,等式中的 A、B、C 是用火柴棍拼出的整数(若该数非零,则最高位不能是 0)。noip2008 提高第二题。

2024-04-02 19:09:48 363 1

原创 洛谷P1088 [NOIP2004 普及组] 火星人

如果把五根手指――拇指、食指、中指、无名指和小指分别编号为 1,2,3,41,2,3,4 和 55,当它们按正常顺序排列时,形成了 55 位数 1234512345,当你交换无名指和小指的位置时,会形成 55 位数 1235412354,当你把五个手指的顺序完全颠倒时,会形成 5432154321,在所有能够形成的 120120 个 55 位数中,1234512345 最小,它表示 11;你的任务是,把火星人用手指表示的数与科学家告诉你的数相加,并根据相加的结果改变火星人手指的排列顺序。

2024-04-02 17:39:40 654

空空如也

空空如也

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

TA关注的人

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