计算机组成原理:3. 系统总线
在第一章中,我们分别了解了构成计算机的硬件,若要使得计算机正常工作,必须通过线路将各个器件进行连接,连接方式不同,对计算机工作的影响也不同。 3.1 总线的基本概念 3.1.1 总线的定义 计算机系统的五大部件之间的互连方式有两种: 分散连接:各部件之间使用单独的连线,以运算器为中心; 总线连接:将…
最短距离
Original Link 思想: 前缀和。 由于出口为环状,故将数组首尾相连。 构造前缀和数组,即可得到在任意出口顺时针方向或逆时针向走到对应出口的距离之和。 对于每次询问,输出顺时针和逆时针方向上,两个出口最短的距离即可。 代码: #include <bits/stdc++.h> u…
金币
Original Link 思想: 模拟。 根据题意,设置变量 cnt 和 day 分别代表当天能收到的金币数和收到 cnt 金币的天数。 循环枚举第 i 天,每次循环: 若当天 cnt == day 说明金币需要增加 cnt ++,且要重置 day = 0。 总共收到的金币 sum += cnt;…
剪绳子
Original Link 思想: 二分。 绳子最长为 1e9。 考虑二分: 若当前绳长满足要求,则说明还有可能取更长的绳长; 若当前绳长不满足要求,则说明当前绳长不可能是最终答案; 由于绳子长度保留两位小数,则当二分的边界取到两者差值不超过 eps = 1e-4 即可。 利用 a[N] 存储绳长数…
圆形牛棚
Original Link 思想: 前缀和。 由于牛棚为环状,故将数组首尾相连。 利用 sum 记录牛牛们需要走的距离,前缀和记录 a[i] 扇门 i ~ n 的距离。 从连接后的数组开始,即 i = n ~ 2 * n 开始遍历,sum 减去后一个房间牛牛走过的距离,再加上该房间牛牛走到 i + …
比例简化
Original Link 思想1: 暴力枚举。 枚举分子 i 和分母 j,利用 eps 作为差值的最小值来判断更新条件。 代码: #include <bits/stdc++.h> using namespace std; void solve(){ double a, b; int L…
计算机组成原理:2. 计算机的发展及应用
2.1 计算机发展史 早期电子计算机作为军事计算工具,但经历半个世纪飞速发展,给人类社会带来了巨大贡献。 2.1.1 计算机硬件发展 早期计算机体积大,常用于工业: 1946 -1957:第一代电子管计算机——数据处理机。 1958 -1964:第二代晶体管计算机——工业控制机。 之后硬件技术飞速发…
数据库系统:1. 绪论
1.1 数据库系统概述 1.1.1 基本概念 数据(data) 数据是数据库中存储的基本对象。 描述事物的符号记录称为数据。 数据有多种表现形式,它们都可以经过数字化之后存入计算机。 数据的表现形式还不能完全表达其内容,需要经过解释,数据和关于数据的解释是不可分的。 数据的解释是指对数据含义的说明,…
最长算术
Original Link 思想: 双指针。 快指针 i 作为某一连续区间的右端点,慢指针 j 作为该区间的左端点; 初始化设差值为 t = a[1] - a[0],每当 a[i] - a[i - 1] == t 时更新区间, 更新区间时,i 不断右移,直到不满足 a[i] - a[i - 1] =…
火星购物
Original Link 思想: 前缀和,双指针。 快指针 i 作为某一分割区间的右端点,慢指针 j 作为该区间的左端点; 当 a[i] - a[j + 1] >= m 时,需要将 j 右移,直到满足 a[i] - a[j] <= m, 此时判断 a[i] - a[j] 的值,若满足 …