摘要: 原题传送门 题目描述 在一个圆形操场的四周摆放 \(N\) 堆石子,现要将石子有次序地合并成一堆,规定每次只能选相邻的 \(2\) 堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分。 试设计出一个算法,计算出将 \(N\) 堆石子合并成 \(1\) 堆的最小得分和最大得分。 输入格式 数据 阅读全文
posted @ 2024-06-10 22:57 shimingxin1007 阅读(10) 评论(0) 推荐(0) 编辑
摘要: 拓扑序 有这样一个问题: 我们给定一张 \(n\) 个点 \(m\) 条边的有向无环图(DAG),请求出从 \(1\) 号结点出发,到达任意结点的最短路径,保证 \(s\) 可以到达任意结点,\(n,m\leq 10^7\)。 我们以下面这张图为例。 如果我们想求 \(1 \rightarrow 4 阅读全文
posted @ 2024-05-18 11:35 shimingxin1007 阅读(51) 评论(1) 推荐(0) 编辑
摘要: 相关概念 图 (graph) 是一个二元组 \(G=(V(G),E(G))\)。其中 \(V(G)\) 是非空集,称为 点集 (vertex set),对于 \(V\) 中的每个元素,我们称其为 顶点 (vertex) 或 节点 (node),简称 点;\(E(G)\) 为 \(V(G)\) 结点之 阅读全文
posted @ 2024-05-03 20:24 shimingxin1007 阅读(37) 评论(0) 推荐(0) 编辑
摘要: 前言 这里我们主要介绍手写栈和队列。 虽然有 STL 里的分装好的数据结构,但是因为封装好的数据结构跑得会很比较慢(比如 deque),所以我们最好手写。 写。 正文 普通栈 栈是一种后入先出的数据结构,它主要有三种功能: 往栈里加入一个元素 从栈头弹出一个元素 查询栈顶端的元素。 所谓后入先出,意 阅读全文
posted @ 2023-12-11 13:13 shimingxin1007 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 2023HFOI小学组 题解 存钱(saving) 题目传送门 前置芝士:数学 很明显,数据范围过大,考虑用周期性来解决。 周一至周日节省的钱数相同,很明显是一个周期。 算出来所有周期,再把剩下来的天数节省的钱累加。 /*Written by smx*/ #include<bits/stdc++.h 阅读全文
posted @ 2023-12-10 19:56 shimingxin1007 阅读(162) 评论(0) 推荐(0) 编辑