自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(97)
  • 资源 (2)
  • 问答 (1)
  • 收藏
  • 关注

原创 什么是二分答案(以洛谷P2678为例)

先看一下题目。

2023-05-03 09:21:06 876 1

原创 洛谷P2249 查找

输入n个不超过10^9的单调不减的(就是后面的数字不小于前面的数字)非负整数 a1,a2,,a3...aN然后进行m次询问。对于每次询问,给出一个整数q,要求输出这个数字在序列中第一次出现的编号,如果没有找到的话输出 -1。第三行 m 个整数,表示询问这些数字的编号,从 1 开始编号。第一行2个整数n和m,表示数字个数和询问次数。本题输入输出量较大,请使用较快的 IO 方式。输出一行,m 个整数,以空格隔开,表示答案。第二行n个整数,表示这些待查询的数字。

2023-04-30 09:49:54 265

原创 C++画一个简单的圣诞树

这不马上要生蛋节(圣诞节)了,鬼知道外国人生个蛋为啥还那么高兴。所以这次博主给大家带来一段自己编写一个圣诞树的简单代码,希望大家喜欢哦!

2022-12-27 15:06:24 1121

原创 洛谷 P1596 [USACO10OCT]Lake Counting S

由于近期的降雨,雨水汇集在农民约翰的田地不同的地方。我们用一个 N\times M(1\leq N\leq 100, 1\leq M\leq 100)N×M(1≤N≤100,1≤M≤100) 的网格图表示。一个网格与其周围的八个网格相连,而一组相连的网格视为一个水坑。给出约翰田地的示意图,确定当中有多少水坑。显而易见的,这是一道很基础的DFS题目,当然也可以用BFS,不过我觉得DFS更顺溜一点罢了。第 22 行到第 N+1N+1 行:每行 MM 个字符,每个字符是。,它们表示网格图中的一排。

2022-12-26 20:45:10 247

原创 【NOI1999】生日蛋糕

最优性剪枝1:在dfs的过程中可能会有很多次搜索到不合法的方案,若是不合法的方案用到的面积刚好等于n的时候(也就是说给定的面积全部都用完了),那么最优解的ans一定小于此时的答案,这个时候在ban掉这个方案之前可以对答案进行进一步的更新;再之后,我就打开了我亲爱的蓝皮书,一字一字的翻看,结果还是看不懂,我就开始颓了,在海亮的时候就已经开始要着手打这道题的代码,但是这种状态一直持续到今天上午,我才敲完这道题,还是在磨着题解的情况下,我才敲完了这一道题。(当前的加上最优的都已经是不合法的了,还能怎么办?

2022-12-20 10:15:38 585

原创 洛谷P1331 海战(DFS)

题目相信大家都看明白了吧,很显然,这是一个深度优先搜索题目哈,也就是说对于每一个“."(没有遍历过的)我们进行一次搜索,找到它的四连通块也就是船,定义cnt来统计船的数目,这个相信大家都知道,但此题的难点在于所谓的Bad placement.那么要如何判断Bad placement.呢?所以我们只需要在一次正式的搜索前面,对每一个2x2的方块进行一次搜索,判断是否有不合法方块,有的话直接输出 Bad placement. 代码结束,return 0;否则进行下面的搜索,搜索还简单的吧,那么代码如下。

2022-12-10 13:02:40 377

原创 substr的定义以及用法(C++)

substr是C++语言函数,主要功能是复制子字符串,要求从指定位置开始,并具有指定的长度。如果没有指定长度_Count或_Count+_Off超出了源字符串的长度,则子字符串将延续到源字符串的结尾。定义和用法basic_string::substrbasic_string substr(size_type _Off = 0,size_type _Count = npos) const;参数_Off所需的子字符串的起始位置。字符串中第一个字符的索引为 0,默认值为0。_Count复制的字符数目返回值一个子字

2022-12-03 19:53:04 274

原创 信息学奥赛一本通1272 【例9.16】分组背包

一个旅行者有一个最多能装V公斤的背包,现在有n件物品,它们的重量分别是W1,W2,...,WnW1,W2,...,Wn,它们的价值分别为C1,C2,...,CnC1,C2,...,Cn。这些物品被划分为若干组,每组中的物品互相冲突,最多选一件。第一行:三个整数,V(背包容量,V≤200),N(物品数量,N≤30)和T(最大组号,T≤10);第2..N+1行:每行三个整数Wi,Ci,PWi,Ci,P,表示每个物品的重量,价值,所属组号。仅一行,一个数,表示最大总价值。

2022-10-02 14:41:33 147

原创 哈夫曼编码的理解(Huffman Coding)

哈夫曼编码(Huffman Coding),又称霍夫曼编码,是一种编码方式,可变字长编码(VLC)的一种。Huffman于1952年提出一种编码方法,该方法完全依据字符出现概率来构造异字头的平均长度最短的码字,有时称之为最佳编码,一般就叫做Huffman编码(有时也称为霍夫曼编码)。如果考虑到进一步节省存储空间,就应该将出现概率大(占比多)的字符用尽量少的0-1进行编码,也就是更靠近根(节点少),这也就是最优二叉树-哈夫曼树。哈夫曼编码,主要目的是根据使用频率来最大化节省字符(编码)的存储空间。

2022-10-02 14:39:09 616

原创 信息学奥赛一本通1272【例9.16】分组背包

一个旅行者有一个最多能装V公斤的背包,现在有n件物品,它们的重量分别是W1,W2,...,Wn,它们的价值分别为C1,C2,...,Cn。这些物品被划分为若干组,每组中的物品互相冲突,最多选一件。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。第一行:三个整数,V(背包容量,V≤200),N(物品数量,N≤30)和T(最大组号,T≤10);第2..N+1行:每行三个整数Wi,Ci,P,表示每个物品的重量,价值,所属组号。仅一行,一个数,表示最大总价值。...

2022-08-15 13:31:00 300

原创 信息学奥赛一本通 1249 Lake Counting

题意有一块N×M的土地,雨后积起了水,有水标记为‘W’,干燥为‘.’。八连通的积水被认为是连接在一起的。请求出院子里共有多少水洼?第一行为N,M(1≤N,M≤110)。下面为N*M的土地示意图。一行,共有的水洼数。...

2022-07-25 13:56:36 777

原创 信息学奥赛一本通1245 不重复的输出数

输入n个数,从小到大将它们输出,重复的数只输出一次。保证不同的数不超过500个。一行,从小到大不重复地输出这些数,相邻两个数之间用单个空格隔开。第一行是一个整数n。1≤n≤100000。之后n行,每行一个整数。整数大小在int范围内。...

2022-07-23 19:26:17 327

原创 信息学奥赛一本通1244 和为给定数

若存在和为m的数对,输出两个整数,小的在前,大的在后,中间用单个空格隔开。若有多个数对满足条件,选择数对中较小的数更小的。若找不到符合要求的数对,输出一行No。第三行是一个整数m(0≤m≤230)m(0≤m≤230),表示需要得到的和。第一行是整数n(0...

2022-07-23 11:17:05 243

原创 信息学奥赛一本通 1226 装箱问题

【题目描述】一个工厂制造的产品形状都是长方体,它们的高度都是h,长和宽都相等,一共有六个型号,他们的长宽分别为1×1,2×2,3×3,4×4,5×5,6×6。这些产品通常使用一个6×6×h的长方体包裹包装然后邮寄给客户。因为邮费很贵,所以工厂要想方设法的减小每个订单运送时的包裹数量。他们很需要有一个好的程序帮他们解决这个问题从而节省费用。现在这个程序由你来设计。【输入】输入包括几行,每一行代表一个订单。每个订单里的一行包括六个整数,中间用空格隔开,分别为1×1至6×6这六种产品的数量。输入将以6个0组成

2022-07-07 19:47:18 477

原创 信息学奥赛一本通1220

【题目描述】单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的“龙”(每个单词都最多在“龙”中出现两次),在两个单词相连时,其重合部分合为一部分,例如beast和astonish,如果接成一条龙则变为beastonish,另外相邻的两部分不能存在包含关系,例如at和atide间不能相连。【输入】输入的第一行为一个单独的整数n(n≤20)表示单词数,以下n行每行有一个单词(只含有大写或小写字母,长度不超过20),输入的最后一行为一个单

2022-07-01 19:29:30 151

原创 信息学奥赛一本通1319 排队接水

有nn个人在一个水龙头前排队接水,假如每个人接水的时间为TiTi,请编程找出这nn个人排队的一种顺序,使得nn个人的平均等待时间最小。共两行,第一行为n(1≤n≤1000)n(1≤n≤1000);第二行分别表示第11个人到第nn个人每人的接水时间T1,T2,…,TnT1,T2,…,Tn,每个数据之间有11个空格。有两行,第一行为一种排队顺序,即11到nn的一种排列;第二行为这种排列方案下的平均等待时间(输出结果精确到小数点后两位)。10 56 12 1 99 1000 234 33 55 9

2022-07-01 19:25:06 151

原创 return 函数

return其英文含义就是返回,用在函数中,退出当前函数。这个想必都知道,分两种情况:函数不带返回值时,如对于不带返回值函数返回,其语法为 return;对于void函数,通常不显式加return语句,程序会自动返回到其调用者现场。所以上述函数如下改写一下,效果是一样的: 函数带返回值,如对于带返回值函数返回,其语法为 return ;返回值可以是一些几种情况:一个常数一个变量计算式,例如(a + b)* c调用另一个返回值的函数注意:返回值的类型须与函数返回值类型一致...

2022-06-30 13:40:00 9375 3

原创 1219:马走日

马在中国象棋以日字形规则移动。请编写一段程序,给定n×m大小的棋盘,以及马的初始位置(x,y),要求不能重复经过棋盘上的同一个点,计算马可以有多少途径遍历棋盘上的所有点。第一行为整数T(T < 10),表示测试数据组数。每一组测试数据包含一行,为四个整数,分别为棋盘的大小以及初始位置坐标n,m,x,y。(0≤x≤n-1,0≤y≤m-1, m < 10, n < 10)。每组测试数据包含一行,为一个整数,表示马能遍历棋盘的途径总数,0为无法遍历一次。...

2022-06-30 13:34:33 119

原创 俗世奇班(序章)

序章 说起我们班啊,那都是人见人不爱,花见花不开,车见车爆胎的N叉班级。但凡有一个老师被任命为我们班的老师,他的嗓门绝对会被自己吼哑。最令我们班闻名于世的绝对是讲话。对,不是别的,就是讲话。老师教导我们:要老师在不在教师都一个样(意思是:老师在不在教师,都要保持安静)。我们认真的“听取了老师的意见,不管老师在不在,都积极的讲起了空话!老师对此也甚是无能为力。我们班干啥啥不行,空话第一名,为了防止老师突击检查,我们都有明确的分工,后2排的同学,管后面,绝对不能让老师从后门偷袭。第一组的同学们看窗

2022-06-23 14:50:07 111

原创 信息学奥赛一本通1215 迷宫

一天Extense在森林里探险的时候不小心走入了一个迷宫,迷宫可以看成是由n×n的格点组成,每个格点只有22种状态,和,前者表示可以通行后者表示不能通行。同时当Extense处在某个格点时,他只能移动到东南西北(或者说上下左右)四个方向之一的相邻格点上,Extense想要从点A走到点B,问在不走出迷宫的情况下能不能办到。如果起点或者终点有一个不能通行(为),则看成无法办到。第1行是测试数据的组数k,后面跟着k组输入。每组测试数据的第1行是一个正整数n(1≤n≤100),表示迷宫的规模是n×n的。接下来是一个

2022-06-23 14:28:07 345

原创 信息学奥赛一本通1212 LETTERS

给出一个roe×col的大写字母矩阵,一开始的位置为左上角,你可以向上下左右四个方向移动,并且不能移向曾经经过的字母。问最多可以经过几个字母。第一行,输入字母矩阵行数RR和列数SS,1≤R,S≤20。接着输出R行S列字母矩阵。最多能走过的不同字母的个数。3 6HFDFFBAJHGDHDGAGEH【输出样例】6【思路】这道题的思路还是比较简单的哈,就是普通的深搜,代码如下,看不懂的我在旁边有注释,可以看看,懂得当我没说!【代码】......

2022-06-21 13:09:51 482

原创 随便还是随变,这是个问题

遥想当年,放学回家,路过一家小店。那时啊天气炎热,我们都满头大汗,于是乎,我们就进小店准备买根冰棍吃吃。这时,一位同学豪爽地说:“我请客!”大家一拥而上,去挑冰棍去了,我在外面看管书包(呜呜呜)。大家都买完了,里面的同学问我:“你要什么冰棍啊?” “随便” ”别这样嘛,今天我请客,吃啥?” “随便” “都说了我请客,给我个面子,兄弟!” “。。。” 我大步流星地冲进便利店,打开冰柜,吼道:“他奶奶的,我只想要一根’随变‘而已啊!” 同学们:“。。。。。。。。。。。。。。。。。。” 老婆:以后孩子

2022-03-26 16:20:35 517 2

原创 汇编语言程序 将字符串复制为相反次序

编写循环程序,用变址寻址将一个字符串从源复制到目的,并实现字符串的反向排序。变量定义如下:source BYTE "This is the source string",0target BYTE SIZEOF SOURCE DUP('#')代码如下:;将字符串复制为相反顺序.386.model flat,stdcall.stack 4096ExitProcess proto,dwExitCode:dword.datasource BYTE "This is ...

2022-03-06 11:49:02 1091

原创 汇编语言 比较大小代码

输入两个数字,他可以告诉你那个数字大,哪个数字小噢注意,这个汇编语言代码是连接了Irvine32.inc链接库的哦,大家没链接的,可以看我以前的博文,连接好了,就能用了.386.model flat,stdcall.stack 4096include Irvine32.incExitProcess PROTO, dwExitCode:DWORD.dataa DWORD ?b DWORD ?st2 BYTE "请输入A: ",0st1 BYTE "请输入B: ",0string

2022-02-27 11:00:21 2639

原创 汇编语言 XOR 指令

XOR指令在两个操作数的对应位之间进行(按位)逻辑异或(XOR)操作,并将结果存在目标操作数中XOR destination,sourceXOR指令操作数组合和大小于AND指令以及OR指令相同。两个操作数的每一对对应位都应用如下操作原则:如果两个位值相同(同为0或同为1),则结果位等于0;否则结果位等于1。下标描述的是布尔运算x⊕y: y x x⊕y 0 0 0 0 1 1 1 0 1..

2022-02-26 16:27:24 20407 2

原创 汇编语言 基于X86处理器 5.9.10 斐波那契生成器 汇编代码

题目描述编程一个过程,生成含有N个数值的斐波那契(Fibonacci)数列,并将它们保存到1个双子数组中。需要输入的参数为:双子数组指针和生成数组个数的计数器。编写1个测试程序来调用该过程,使N=47 .数组中的第一个值为1,最后一个值为2 971 215 073.使用Visual Studio调试器打开并查看数组内容注意:本次的代码用到了Irvine32的链接库,如果大家有人没有安装的话,可以看我以前发布的文章《汇编语言如何链接到Irvine32链接库!代码如下.386.model

2022-02-25 21:08:20 444

转载 汇编语言如何链接到Irvine32链接库

一、VS2019配置汇编环境1、打开VS2019,菜单栏中选择“文件 ” ——“新建”——“项目”,新建一个空的项目,前提是VS2019已经安装了VC++的编译环境,新项目名字自定义设置2、新项目建立完成之后,在“解决方案资源管理器”中右键项目名称,选择“生成依赖项”——“生成自定义”,在弹出的窗口中勾上masm,点击确定。3、还是右键点击项目名称,选择“属性”——“链接器”——“系统”——“子系统”设置为“控制台 (/SUBSYSTEM:CONSOLE)”。提示:配置选择所有配置(debug版

2022-02-25 21:02:35 429

原创 从0开始创建1个CPU

第一部分 预备知识Chapter 0 预备知识§ 0.1 布尔逻辑与逻辑门(一)我们将进入一段“抽象”的旅程。忽略底层细节,构造更复杂的系统。只用开/关两种状态也可以表示信息,这叫二进制,意思是“用两种状态表示”。就像自行车有两个轮子。你可能觉得两个状态太少了,没错,你是对的。但是如果只需要表示true和false,两个值就够了。电路闭合,电流流过,代表真;电路断开,无电流流过,代表假。二进制也可以写成1和0而不是true和false,只是不同的表示方式罢了。晶体管的确可

2022-02-21 20:55:58 463

原创 从0开始认识1个CPU

第一部分 预备知识Chapter 0 预备知识§ 0.1 布尔逻辑与逻辑门(一)我们将进入一段“抽象”的旅程。忽略底层细节,构造更复杂的系统。只用开/关两种状态也可以表示信息,这叫二进制,意思是“用两种状态表示”。就像自行车有两个轮子。你可能觉得两个状态太少了,没错,你是对的。但是如果只需要表示true和false,两个值就够了。电路闭合,电流流过,代表真;电路断开,无电流流过,代表假。二进制也可以写成1和0而不是true和false,只是不同的表示方式罢了。晶体管的确可

2022-02-21 20:53:38 282

原创 信息学奥赛一本通1342:【例4-1】最短路径问题

这道题目可真复杂,烦烦烦烦烦烦烦烦烦

2022-02-09 14:00:38 312 2

原创 信息学奥赛一本通1374 铲雪车(snow)

啊八八八八八八

2022-02-08 14:10:46 663

原创 信息学奥赛一本通1372 小明的账单

烦烦烦烦烦烦烦烦烦烦烦烦烦烦烦

2022-01-26 14:48:31 568

原创 multiset 的用法(c++)

c++语言中,multiset是<set>库中一个非常有用的类型,它可以看成一个序列,插入一个数,删除一个数都能够在O(logn)的时间内完成,而且他能时刻保证序列中的数是有序的,而且序列中可以存在重复的数。简单应用:通过一个程序来看如何使用multiset:#include <string>#include <iostream>#include <set>using namespace std;void main(){ int...

2022-01-26 14:27:55 267

原创 信息学奥赛一本通 1369 合并果子

【题目描述】在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。多多决定把所有的果子合成一堆。每一次合并,多多可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过n−1n−1次合并之后,就只剩下一堆了。多多在合并果子时总共消耗的体力等于每次合并所耗体力之和。因为还要花大力气把这些果子搬回家,所以多多在合并果子时要尽可能地节省体力。假定每个果子重量都为11,并且已知果子的种类数和每种果子的数目,你的任务是设计出合并的次序方案,使多多耗费

2022-01-24 19:11:33 330

原创 信息学奥赛一本通1368 对称二叉树

【题目描述】如果二叉树的左右子树的结构是对称的,即两棵子树皆为空,或者皆不空,则称该二叉树是对称的。编程判断给定的二叉树是否对称.例:如下图中的二叉树T1是对称的,T2是不对称的。二叉树用顺序结构给出,若读到#则为空,二叉树T1=ABCDE,T2=ABCD#E,如果二叉树是对称的,输出“Yes”,反之输出“No”。【输入】二叉树用顺序结构给出,若读到#则为空。【输出】如果二叉树是对称的,输出“Yes”,反之输出“No”。【输入样例】ABCDE【输出样例】Y

2022-01-24 14:34:48 266

原创 信息学奥赛一本通1364 二叉树遍历

题目描述】树和二叉树基本上都有先序、中序、后序、按层遍历等遍历顺序,给定中序和其它一种遍历的序列就可以确定一棵二叉树的结构。假定一棵二叉树一个结点用一个字符描述,现在给出中序和按层遍历的字符串,求该树的先序遍历字符串。【输入】两行,每行是由字母组成的字符串(一行的每个字符都是唯一的),分别表示二叉树的中序遍历和按层遍历的序列。【输出】一行,表示二叉树的先序序列。【输入样例】DBEACABCDE【输出样例】ABDEC思路:此题的搜索思路呢,有点

2022-01-20 13:33:39 337

原创 C++中的&和*运算符

C++ 提供了两种指针运算符,一种是取地址运算符 &,一种是间接寻址运算符 *。指针是一个包含了另一个变量地址的变量,您可以把一个包含了另一个变量地址的变量说成是"指向"另一个变量。变量可以是任意的数据类型,包括对象、结构或者指针。取地址运算符 && 是一元运算符,返回操作数的内存地址。例如,如果 var 是一个整型变量,则 &var 是它的地址。该运算符与其他一元运算符具有相同的优先级,在运算时它是从右向左顺序进行的。您可以把 & 运算符读作"取地址

2022-01-12 14:10:12 1021

原创 信息学奥赛一本通1339 【例3-4】求后序遍历

【题目描述】输入一棵二叉树的先序和中序遍历序列,输出其后序遍历序列。【输入】共两行,第一行一个字符串,表示树的先序遍历,第二行一个字符串,表示树的中序遍历。树的结点一律用小写字母表示。【输出】一行,表示树的后序遍历序列。【输入样例】abdecdbeac【输出样例】debca思路:略(我坏吧,哈哈哈哈哈哈),怎么简单还要看思路吗?#include<iostream>#include<cstdio>#include.

2022-01-12 13:38:43 267

原创 Python中的find()函数

描述find() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果指定范围内如果包含指定索引值,如果不包含索引值,返回-1。返回的是需要查找的字符串的下标语法find()方法语法:str.find(str, beg=0, end=len(string);参数str :指定检索的字符串 beg :开始索引,默认为0。 end :结束索引,默认为字符串的长度。实例以下实例展示了find().

2022-01-12 11:22:20 30755 5

原创 信息学奥赛一本通 1336 【例3-1】找树根和son(附含解题思路)

题目描述】给定一棵树,输出树的根rootroot,孩子最多的结点maxmax以及他的孩子。【输入】第一行:nn(结点个数≤100≤100),mm(边数≤200≤200)。以下mm行:每行两个结点xx和yy,表示yy是xx的孩子(x,y≤1000x,y≤1000)。【输出】第一行:树根:rootroot;第二行:孩子最多的结点maxmax;第三行:maxmax的孩子(按编号由小到输出)。【输入样例】8 74 14 21 31 52 62 72 8【输

2022-01-11 14:10:41 512 1

汇编语言 基于X86处理器习题全解

所有的习题解答以及思路都在这哦

2022-02-26

汇编语言题解,有详细的解答哦

汇编语言题解,有详细的解答哦

2022-02-26

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

TA关注的人

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