题目解析(洛谷 AtCoder)题目要求我们模拟一个 “乌拉姆·沃伯顿自动机”,即一个网格图,每个格子可以为白或黑色,仅当一个格子为白色且仅有一个相邻格子为黑色时将其染成白色,在稳定状态下(即网格不会在发生改变的状态)停止,输出黑色格子数量
:::info[样例解析]
样例 1 解析模拟过程如下:(白色为 . 黑色为 #)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
#
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
#
.
.
.
.
.
.
.
#
#
#
.
.
.
.
.
.
.
#
.
.
.
.
.
.
.
. ...
形式化题意给定一个分数 $\frac{P}{Q}$,它是由若干个分数的平均值构成的。构造一个数列,其中每个数要么为 $1$(即 $\frac11$),要么为 $0$(即 $\frac00$),输出至少经过几次平均运算才能从这样的数列构造出 $\frac{P}{Q}$。
(注:因为 $\frac{P}{Q}$ 是由平均值得来的,所以 $0 \le \frac{P}{Q} \le 1$。)
示例分数为 $\frac14$,可以由下式得出:$$\large{\frac{\frac{0}{1}+\frac{1}{2}}{2}}$$
思路由于目标分数是由多次平均值得出的,分母只通过通分运算和乘以 $\frac12$ 的运算改变,因此可以证明:有效的目标分数分母一定为 $2$ 的幂次。
如果分母不为 $2$ 的幂次,直接判否,输出 impossible。
同样可以证明:约分后的分子 $\frac{P}{\gcd(P,Q)}$ 为奇数(即不含因数 $2$)。
可以将这个题目想象为一棵二叉树,底部的每一对节点对目标分数的贡献相当于 $\log_2 n$。要得到分子 $P$,在每一层(作为叶子)需要的 ...
上一篇文章 介绍了如何安装 Arch Linux,本篇则聚焦于系统的配置、美化与个性化定制。
:::info{open}本文所有配置均为可选操作。系统美化与个人审美高度相关,请理性讨论,不要在评论区对线。:::
前置快捷键的表示方式Linux 中快捷键使用 修饰键+字符 的方式表示。
修饰键是符号,代表按下的 Ctrl, Alt 等,一般 ^ -> Ctrl,! -> Alt。
比如 ^C 代表 Ctrl-C。
有一些软件的快捷键使用 Emacs 表示,即 修饰键首字母_字符 表示,如 C_C 代表 Ctrl-C。
软件包的表示方式在本篇文章中,软件包使用 pkg in repo 的表示方式。
对于 Core, Extra 软件包可以用 Pacman、Discover 或 Octopi 安装。
对于 ArchlinuxCN 软件包需要安装 archlinuxcn-keyring in ArchlinuxCN 后使用上一行的方式安装(当然,密钥环本身除外,不然就递归了)。
对于 AUR 软件包,使用 Yay、Paru 或 Pamac 安装。
对于 Flathub 软件包,使用 ...
题目输入 $n$ 个字符串,$m$ 个匹配串,统计每个 $m$ 在 $n$ 中的匹配次数。
思路由于本题的规模非常小,可以直接暴力匹配,对于每一个 $s$ 遍历一次 $c$ 判断是否为 $s$ 的前缀(substr 用于取子串,substr(0, s.size()) 代表从 0 开始,长度为 s.size() 的子串,也就是开头 $|s|$ 个字符)。
代码时间复杂度:$O(n\times m\times |s|)$。
123456789101112131415161718192021222324252627282930313233#include<bits/stdc++.h>using namespace std;int n, m;string c[105];int main(){ cin >> n >> m; for (int i = 1; i <= n; i++) cin >> c[i]; for (int i = 1; i <= m; i++) { string s; cin >> ...
Minecraft Java 版新手入门教程,包括启动器选择、游戏下载、登录方式、联机方法和模组安装。
详细的 Ubuntu 系统安装教程,从硬件准备、U盘烧录、双系统分区到软件配置,助你轻松上手 Linux。
:::info[Changelog(审核看这里)]最近一次更新:增加大量的空行,改善格式。之前快写成史山了:::
上标说明:本文在提及安装软件时,会在软件名称后添加上标,以指示该软件包所在的仓库或需要的操作。具体含义如下:
$^{\texttt{CORE}}$:来自官方核心仓库
$^{\texttt{EXTRA}}$:来自官方额外仓库
$^{\texttt{MULTILIB}}$:来自官方 multilib 仓库(32 位支持)
$^{\texttt{AUR}}$:来自 Arch 用户仓库(需通过 AUR 助手安装)
$^{\texttt{CN}}$:来自 Arch Linux CN 非官方仓库
$^{\texttt{REBOOT}}$:需要重启系统
$^{\texttt{LOGOUT}}$:需要注销当前会话并重新登录
0. Arch 适合我吗?Arch Linux 是一个面向有经验的 Linux 用户的滚动发行版。它的特点包括:
KISS(Keep It Simple, Stupid)—— 设计简洁,不添加过多自动化工具,让用户自己掌控系统。
滚动更新 —— 一次安装,永久更 ...
TouchFish 是一款轻量级跨平台聊天软件,支持内网一键部署,提供多端客户端及丰富指令,适用于团队协作。
本文是 VS Code 和 C/C++ 扩展的安装与配置教程,如有不足,请在评论区指正
::::info
本文有部分内容引用了 OI Wiki,遵照原作者的要求,本文使用 CC-SA-BY-NC 2.0 协议共享[^1]
::::
推荐:交互式安装CodeStart 安装器
可以使用安装器来安装 VS Code,请在编程语言选择处选择“C/C++”,安装好后从“安装 GCC”一节开始自行配置编译器
安装 Visual Studio CodeWindows 10 及以上/macOS 11+下载
如果你使用 Windows 7/8/8.1点击上面的链接后点击 Releases,找到 1.70.2,这是最后支持 Windows 7/8/8.1 的版本,前往发布页面下载
配置中文安装好后,点击左侧活动栏的“扩展”,搜索Chinese(Simplified),点击安装。安装好后按Ctrl+Shift+P,搜索Display,选择Configure Display Language,切换为中文
安装 C/C++ 扩展安装好 V ...
从零开始搭建个人网站的全流程指南,涵盖静态页面、Hexo 框架、云服务器托管、域名解析及 SEO 优化。











