07 2024 档案
摘要:题目链接:CodeForces 1883G1【Dances (Easy version)】 思路 为了使得数组a,b中的每个对应元素满足a[i] < b[i],所以将数组a,b按从小到大依次排列,优先删除数组a中较大的元素和数组b中较小的元素,由于删去的元素个数具有单调性,所以使用二分优化,计算最少
阅读全文
摘要:题目链接:CodeForces 1883F【You Are So Beautiful】 思路 要找出一个子数组使得在数组中只能找出一个子序列和当前子数组相等,则只需要找出首元素的数字必须为当前元素值第一次出现,尾元素的数字必须为当前元素值最后一次出现,则只能找出唯一的子序列和当前子数组相等。所以从前
阅读全文
摘要:题目链接:CodeForces 1883E【Look Back】 思路 若直接对每个元素进行操作累乘至大于相邻的前一个元素时,可能最后会数据溢出,而且乘的2个数可能会很多,会时间超限。所以可以对每两个相邻的元素进行判断,判断他们之间差了2的多少次方。cnt记录的是当前元素和上个元素之间差的2的cnt
阅读全文
摘要:题目链接:CodeForces 1883D【In Love】 思路 求能否找出两个区间不相交,所以将得到的区间先按区间左端点的大小从小到大排列,再按区间右端点的大小从小到大排列,此时取出最小的右端点和最大的左端点,若右端点在左端点左侧,则存在两个不相交的区间。由于需要动态操作增加减少区间,所以可以使
阅读全文
摘要:题目链接:CodeForces 1883C【Raspberries】 思路 依次枚举,特判k = 4的情况,因为k = 4可以由2个2拼凑起来,这2个2可以不在同一个元素上,如K = 4时,数组a可以为2, 3, 2, 5, 7, 9,此时数组中所有的元素乘积可以被4整除。若k = 4时,此时数组中
阅读全文
摘要:题目链接:CodeForces 1883A【Morning】 思路 模拟,特判当密码中的某个元素为0时,用10减去当前光标的位置,并修改光标的位置为当前元素,再操作依次显示当前元素。对于其他情况则直接使用光标的位置减去目标位置,修改光标位置为当前元素,然后再操作一次显示当前元素。 代码 #inclu
阅读全文
摘要:题目链接:CodeForces 1883B【Chemistry】 思路 判断最多删去k个字符后剩下的部分为回文字符串,所以优先删除将个数为奇数个的相同字符删为偶数,当最后留下的字符串中,奇数个数的相同字符种类小于等于1时才会是回文字符串,如:aaabbbccc,此时个数为奇数的相同字符种类有三种,分
阅读全文
摘要:题目链接:HDU 1020【Encoding】 思路 简单模拟,计算相同字母的连续子串个数。 代码 #include <iostream> #include <algorithm> #include <queue> using namespace std; #define ll long long
阅读全文
摘要:题目链接:POJ 2388【Who's in the Middle】 思路 求中位数,排序输出中间的数字。 代码 #include <iostream> #include <algorithm> using namespace std; #define ll long long const int
阅读全文
摘要:一、物理层 物理层:物理层主要任务是确定与传输媒体接口有关的一些特性,定义标准。 机械特性:定义物理连接的特性规定物理连接时所采用的规格、接口形状、引线数目、引脚数量和排列情况。 电气特性:规定传输二进制位时,线路上信号的电压范围、阻抗匹配、传输速率和距离限制等。 功能特性:指明某条线上出现的某一电
阅读全文
摘要:一、典型的数据通信模型 数据:传送信息的实体,通常是有意义的符号序列。 二、三种通信方式 单工通信:只有一个方向的通信而没有反方向的交互,且任何时候都不能改变信号的传输方向,仅需要一条信道。为了保证正确传输数据信号,接收方需要对接收到的数据进行校验,若校验出错,则通过监控信道发送重新请求重新发送数据
阅读全文
摘要:一、TCP/IP模型的层次结构 TCP/IP模型的网络接口层对应OSI模型的数据链路层和物理层,TCP/IP的应用层对应OSI模型的会话层、表示层和应用层。 二、TCP/IP模型的功能层次 1.应用层 TCP/IP的理念:如果某些应用需要数据格式转换、会话管理功能,就交给应用层的特定协议去实现,所以
阅读全文
摘要:一、术语 二、OSI模型的功能层次 对于OSI模型,主机实现了第1 ~ 7层的全部,集线器实现了第1层,交换机实现了第1 ~ 2层,路由器实现了第1 ~ 3层。 1、物理层 物理层的任务是实现相邻节点之间比特(0或1)的传输。 需要定义电路接口的参数(如:形状、尺寸、引脚数等)。 需要定义传输信号的
阅读全文
摘要:一、使用继承的好处 子类能继承父类的非私有成员,子类的对象是由子类、父类共同完成的,所以使用继承能减少重复代码的编写。
阅读全文
摘要:一、使用static修饰方法 类方法可以访问类变量,不能访问实例变量。 实例方法可以访问类变量,也可以访问实例变量。 实例方法中可以出现this关键字,类方法中不可以出现this关键字。 二、代码块 代码块是类的五大成分之一(成员变量、构造器、方法、代码块、内部类)。代码块主要分为两种——静态代码块
阅读全文
摘要:一、数据的传输过程(水平视角) 在数据传输的过程中,经过了压缩和解压,在用户的视角上来看,用户感受不到数据经过了压缩和解压的过程。为了支持这样功能,可以指定一个协议YSCS协议(如图)。从图上看,对等的两个实体的通信需要遵循水平的协议,而遵循这些协议是为了实现某些功能。 为什么要分层?为什么要制定协
阅读全文
摘要:一、分层的设计思想 分层的设计思想:将庞大而复杂的问题转化为若干较小的局部问题。 将复杂的计算机网络在逻辑上划分为多个层次,将各种功能安排在合适的层次,不同类型的节点,实现的功能层次可能不一样。分层结构的设计并不唯一,可以根据实际需求增加或减少层次,同一个功能可以在多个层次中重复出现,每个层次负责实
阅读全文
摘要:一、时延 时延:指数据(一个报文或分组,甚至比特)从网络(或链路)的一端传送到另一端所需的时间,有时也称为延迟或迟延,总时延 = 发送时延 + 传播时延 + 处理时延 + 排队时延。 发送时延又名传输时延,节点将数据推向信道所花的时间。 传播时延,电磁波在信道中传播一定距离所花的时间。 处理时延,被
阅读全文
摘要:一、计算机网络的性能指标 计算机的性能指标主要有七个——速率、带宽、吞吐量、时延、时延带宽积、往返时延、信道利用率。 计算机网络中常用的数量前缀有K->M->G->T,相邻符号之间的换算倍数为1e3,即为1T=1e12,1G=1e9,1M=1e6,1K=1e3。计组、操作系统中数量前缀含义有区别,即
阅读全文
摘要:题目链接:CodeForces 1983C【Have Your Cake and Eat It Too】 思路 先向上取整计算出tot/3,然后依次枚举abc三个数组取区间的前后顺序,对于每个顺序依次从前往后枚举,直到取得的区间数字之和大于等于tot/3,就对下一个数组进行枚举,直到所有数组都满足取
阅读全文
摘要:题目链接:CodeForces 1983A【Array Divisibility】 思路 按规律可得,当a[i] = i时满足题目要求。 代码 #include <functional> #include <iostream> #include <algorithm> #include <queue
阅读全文
摘要:题目链接:CodeForces 1983B【Corner Twist】 思路 可以发现操作一次,被操作位置的对应每一横行和每一纵行的加减数都是3,所以可以根据网格a和b的横纵状态确定是否通过操作使得网格a到达网格b。 代码 #include <bits/stdc++.h> using namespa
阅读全文
摘要:题目链接:CodeForces 1992A【Only Pluses】 思路 代码 #include <functional> #include <iostream> #include <algorithm> #include <queue> using namespace std; #define
阅读全文
摘要:题目链接:CodeForces 1992B【Angry Monk】 思路 找出最大的元素,除了最大的元素的所有元素全部分成1,所以操作次数为sum(数组) - max(数组) - (数组元素个数 - 1),然后全部合并到最大的元素上,操作次数为sum(数组) - max(数组),所以最最后得到sum
阅读全文
摘要:题目链接:CodeForces 1992D【Test of Love】 思路 从起点开始起跳,找出下一个木头的位置,若与当前位置的距离小于等于m,则可以直接跳过去,否则判断当前位置与下一个木头之间有没有鳄鱼,有鳄鱼则不能到达对岸,否则继续查找下一个木头,直到对岸。 代码 #include <func
阅读全文
摘要:题目链接:CodeForces 1992C【Gorilla and Permutation】 思路 根据题意只需要使得f(x)尽可能大,g(x)尽可能小,所以需要将大于等于n的数组排在序列的前端,且按由大到小的顺序依次排列,将小于等于m的数字排在序列的后端,且按从小到大的顺序依次排列。 代码 #in
阅读全文
摘要:题目链接:CodeForces 1992E 【Novice's Mistake】 思路 直接对a,b枚举肯定会超时,因为a,b数数字过大,但是通过结果a * n - b可以发现结果最多为6位数,所以对结果的位数进行枚举,然后枚举a,来计算出b并判断是否符合题意,同时需要去掉b不符合题目的范围的情况。
阅读全文
摘要:题目链接:POJ 2524 【Ubiquitous Religions】 思路 经典并查集模板,求集合个数。 代码 #include <iostream> using namespace std; #define ll long long const int N = 5e5 + 10; int fa
阅读全文
摘要:题目链接:HDU 1789【Doing Homework again】 思路 将输入的数据按分数排序,先将分数高的作业完成,但是考虑到一天只能写一种作业,为了不造成冲突需要预留头几天,从每种作业的结束期限开始安排,因为所有作业都可以在头几天完成,若从第1天开始安排则可能出现如下的情况:作业分数--9
阅读全文
摘要:POJ 1089【Intervals】题目链接: 思路 我们可以使得每个雷达尽可能多的覆盖小岛。我们可以枚举每个小岛求出能覆盖当前小岛的雷达放置位置的区间,从左往右看,为了尽量不浪费雷达的检测范围,对于第一个雷达,为了不浪费雷达的检测范围,所以将第一个雷达放在第一个放置区间的最右端,然后依次枚举下一
阅读全文
摘要:题目链接:HDU 2570【迷障】 思路 简单贪心,需要算出尽可能大的体积,所以先将浓度数组按从小到大的顺序排列,然后从小到大依次取出药水配置,直到浓度大于w,回溯到前一个状态并输出 代码 #include <bits/stdc++.h> #include <exception> using nam
阅读全文
摘要:题目链接:POJ 3126 【Prime Path】 思路 由于最多有100组样例,所以直接先初始化判断出1000-9999之间的数字是否是素数。然后再对每个题目所给的四位数进行BFS搜索,依次对每个数位进行枚举,使用0-9的每一个数字对每一个数位进行替换,注意千位上的数字不能为0。然后检验当前数字
阅读全文
摘要:一、按分布范围分类 计算机网络按覆盖范围主要可以分为广域网(Wide Area Network),城域网(Metropolitan Area Network),局域网(Local Area Network),个域网(Personal Area Network)。 广域网:通常是跨省/跨洲/跨国,覆盖
阅读全文
摘要:一、电路交换性能分析 电路交换主要分为三个部分——连接建立、数据传输、连接释放,电路交换的时间消耗包括: 连接建立时间:在通信开始之前必须要在发送方和接收方之间建立一条专用的通信路径,这个过程中电路交换机建立、释放和接收方处理连接请求、返回应答信号都需要时间。 数据传输时间:连接建立后可以连续传输数
阅读全文
摘要:题目链接:HDU 1213 How Many Tables 思路 经典并查集,将互相认识的人全部放在一个集合内,然后计算有几个集合就有几个桌子。 代码 #include <iostream> using namespace std; #define ll long long const int N
阅读全文
摘要:题目链接:POJ 1521【Entropy 】 思路 典型哈夫曼树,求哈夫曼树的带权路径长度。 代码 #include <iostream> #include <queue> #include <string> #include <cstdio> #include <algorithm> #incl
阅读全文
摘要:题目链接:HDU 2037【今年暑假不AC】’ 思路 典型区间贪心,按节目结束时间升序排序,结束时间相等时按开始时间升序排序,然后逐个查找满足要求的节目,下一个观看的节目开始时间要大于当前观看节目的结束时间。 代码 #include <bits/stdc++.h> using namespace s
阅读全文
摘要:题目链接:POJ 1077【Eight】 思路 将X看作9,本题可以视为1-9的全排列所以使用康拓展开作为哈希函数。所以结构体使用pre存储前一个状态的下标,number存储当前状态在结构体数组中的下标,oper存储上一个状态到当前状态的操作,zeroSite记录当前状态下0的位置,state存储当
阅读全文
摘要:题目链接:HDU 4460【Friend Chains】 思路 哈希使得每个人都有一个对应的数字,然后用邻接表存储,然后使用BFS搜索出最长的友人链。注意每一次搜索都需要初始化vis标记数组,在每一组测试样例完成后需要将mp哈希map和邻接表ve初始化为空,否则会影响计算。注意当出现两个联通块时需要
阅读全文
摘要:三种交换技术:电路交换——用于电话网络,报文交换——用于电报网络,分组交换——用于现代计算机网络。 一、人类史上的通信网络 公元前5世纪起——邮政网络(邮政员,信件) 1830s-1960s——电报网络(报文交换) 1870s-1960s——电话网络(电路交换) 1960s(ARPANET)——研发
阅读全文
摘要:一、计算机网络的组成 二、计算机网络的功能
阅读全文
摘要:一、什么是计算机网络? 计算机网络(computer network)是一个将众多分散的、自治的计算机系统,通过通信设备(路由器、5G基站)与线路(无线线路、网线)连接起来,由功能完善的软件实现资源共享和信息传递的系统。 计算机网络是互连的、自治的计算机集合。互连-通过通信链路互联互通,自治-无主从
阅读全文
摘要:题目链接:HDU 1240 【Asteroids!】 思路 代码 #include <iostream> #include <queue> #include <stdlib.h> #include <cstring> #define ll long long using namespace std;
阅读全文
摘要:题目链接:POJ 3414 【Pots】 思路 对于每个A、B瓶的每个状态,使用结构体存储,同时pre存储操作前的状态的下标,方便回溯查询正确路径的操作,oper存储使用什么操作得到当前状态,operNumber存储到达当前状态需要几步。由于需要求的是最少的操作次数,所以使用BFS,依次增加操作次数
阅读全文
摘要:题目链接:POJ 1426 【Find The Multiple】 思路 输入数据,直到0时停止计算,并在循环输入内,每次计算前初始化所有需要用到的变量或者数组,避免影响计算结果。 从1开始依次枚举每一位是0还是1。同时使用取模的计算公式对数字进行优化防止数据溢出,(a + b) % mod = (
阅读全文
摘要:题目链接:POJ 3278 【atch That Cow】 思路 将起点放入队列,然后一次取出队列中的元素,对其进行左右移动和乘2的移动,并判断移动后的位置是否合法,合法则放入队列中继续操作。每次取出队列中的元素后,通过假设剩下的步骤全部是左右移动一格来更新结果。 代码 #include <iost
阅读全文
摘要:题目链接:HDU 1312 【Red And Black】 思路 简单搜索,输入数据时,找出起点位置,然后从七点位置开始搜素能到达的所有位置并记录,使用check()函数判断当前位置可以走吗,可以走就把当前位置放入队列中,并将当前位置修改为非黑色位置,防止重复进入。 代码 #include <bit
阅读全文