自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 收藏
  • 关注

原创 hnu缓冲区溢出实验bufbomb---速通版

本教程在Ubuntu16.04 (32位)下完成解压文件,在文件夹buflab-handout下打开终端生成自己的cookie,输入 ./makecookie xxxxxx为自己随便设置的字符串,输入后会生成一个cookie(蓝色地方就是xxx,被我抹掉了)下面那串十六进制数就是我们的cookie新建一个文本文件,每次将level x 的答案放在里面,名字看个人,我把它命名为answer。每次只能放一个level的答案。拿到bufbomb的汇编代码我们的准备工作到这就

2022-05-02 01:10:18 775 1

原创 关于AT&T指令集的总结

首先:AT&T指令集中指令用的是小写字母,这一点上与intel指令集有所不同(intel指令集用的是大写字母)例如:AT&T:movl $1,%eaxintel:MOV EBX,1同时,我们还可以从上面的例子中看出:AT&T指令需要在立即数前加上$符号来说明这是一个立即数AT&T指令需要在寄存器前面加上%来说明这是一个寄存器AT&T指令源操作数在前,目的操作数在后......

2022-04-19 15:38:01 2189 3

原创 CS:APP Data Lab

CS:APP Data Lab /* * CS:APP Data Lab * * <Please put your name and userid here> * * bits.c - Source file with your solutions to the Lab. * This is the file you will hand in to your instructor. * * WARNING: Do not include the &lt

2022-03-24 18:21:30 504

原创 hnu 模型机时序部件的实现

模型机时序部件的实现Verilog代码实现和bdf图module SM( input clk,sm_en, output reg sm);initial sm=1'b0;always @(negedge clk) begin if(sm_en)begin sm<=~sm; end else begin sm<=sm; endend endmodule

2021-12-14 22:50:42 1412 4

原创 hnu 模型机组合部件的实现(一)

模型机组合部件的实现(一),包含译码器decoder的verilog代码和函数发生器alu的verilog的代码

2021-12-04 09:58:03 1877

原创 leetcode 9 回文数

原先第一次是用字符串写的,很简单。后来看了官方的题解,发现自己占用了大量不必要的内存,更应该往算法上考虑。官方题解的步骤大概分为:如果小于0或末位为0(两位数以上)则直接返回false如果大于等于0且末位不为0,则将数字反转即可为了避免数值溢出,只反转后半部分即可代码如下:class Solution {public: bool isPalindrome(int x) { if(x<0||(x%10==0&&x!=0)){ ..

2021-09-25 23:47:04 54

原创 sscanf与sprintf

sscanf与sprintf是处理字符串问题的利器,sscanf可以理解为string+scanf,sprintf可以理解为string+printf,两者均在stdio.h头文件下。如果想向整形变量n从屏幕输入:scanf(“%d”,&n);其实可以把上面表示成scanf(screen,“%d”,&n);其中screen表示屏幕。即scanf的输入其实是把screen上的内容以“%d”的格式传输到n中。而sscanf与上面格式是相同的,只不过把screen换成了字符数组,如下:

2021-09-24 15:40:57 220

原创 ccf真题 201912-2 回收站选址

本题中测试点保证1<=n<=10^3,并不是很大,所以可以先尝试直接使用暴力循环,可以发现提交结果是全部正确。代码如下:#include<iostream>using namespace std;struct point{ int x; int y;};int main(){ int n,end[5]={0}; cin>>n; point recycle[n]; for(int i=0;i<n;i++){ cin>>re...

2021-09-16 17:21:24 124

原创 ccf真题 稀疏向量

解决问题的时候,代码时间复杂度要为n。另外还需要注意一下的是后面四个点,测试的index和value数目多、value的值比较大。1、测试的index和value数目比较多:通过建立全局数组解决2、value值比较大:通过使用long long int变量类型解决#include<iostream>using namespace std;long long int v1[500001],v2[500001];int main(){ int n,a,b,record=0; c..

2021-09-16 15:15:19 112

原创 ccf真题 202006-1 线性分类器

样例(文本):9 31 1 a1 0 a1 -1 a2 2 b2 3 b0 1 a3 1 b1 3 b2 0 a0 2 -3-3 0 2-3 1 1#include<iostream>using namespace std;struct point{ int x; int y; char type; int record;};int main(){ int n,m; cin>>n>>m; point p[n]; f...

2021-09-15 16:53:26 198

原创 ccf真题 202009-2 风险人群筛查

题目背景某地疫情爆发后,出于“应检尽检”的原则,我们想要通知所有近期经过该高危区域的居民参与核酸检测。问题描述想要找出经过高危区域的居民,分析位置记录是一种简单有效的方法。具体来说,一位居民的位置记录包含 个平面坐标 ,其中 表示该居民 时刻所在位置。高危区域则可以抽象为一个矩形区域(含边界),左下角和右上角的坐标分别为 和 ,满足 且 。考虑某位居民的位置记录,如果其中某个坐标位于矩形内(含边界),则说明该居民经过高危区域;进一步地,如果其中连续 个或更多坐标均位于矩形内(含边界),则认为该居

2021-09-15 15:50:36 171

原创 ccf真题 202012-2 期末预测之最佳阈值

第一次的代码(70分):思路非常简单,建立一个长度为n的结构体,每个结构体包含三个数值,y、result、以每个y为标准判断的正确次数right。两个for循环嵌套求出每个y。快排(优先级:right较大->y较大),输出第一个结构体的y值。//由于使用了两层循环,会有部分样例超时。#include<iostream>#include<algorithm>using namespace std;struct classmate{ int y; int re.

2021-09-14 16:18:28 356

原创 ccf真题 202104-2 邻域均值

题目背景顿顿在学习了数字图像处理后,想要对手上的一副灰度图像进行降噪处理。不过该图像仅在较暗区域有很多噪点,如果贸然对全图进行降噪,会在抹去噪点的同时也模糊了原有图像。因此顿顿打算先使用邻域均值来判断一个像素是否处于较暗区域,然后仅对处于较暗区域的像素进行降噪处理。题目描述待处理的灰度图像长宽皆为 n 个像素,可以表示为一个 n×n 大小的矩阵 A,其中每个元素是一个 [0,L) 范围内的整数,表示对应位置像素的灰度值。 对于矩阵中任意一个元素 Aij(0≤i,j<n),其邻域定义为附近若干元素

2021-09-13 16:41:26 530

原创 ccf练习题 打牌

【问题描述】牌只有1到9,手里拿着已经排好序的牌a,对方出牌b,用程序判断手中牌是否能够压过对方出牌。规则:出牌牌型有5种[1]一张 如4 则5…9可压过[2]两张 如44 则55,66,77,…,99可压过[3]三张 如444 规则如[2][4]四张 如4444 规则如[2][5]五张 牌型只有12345 23456 34567 45678 56789五个,后面的比前面的均大。【输入形式】输入有多行,第一行代表手中的牌,长度不超过200个数字。接下来的每一行代表每次对方出的牌。【输出形

2021-09-09 15:53:20 253

原创 ccf练习题 A除以B

【问题描述】本题要求计算A/B,其中A是不超过1000位的整数(A>=0),B是1位正整数。你需要输出商数Q和余数R,使得A = B * Q + R成立。【输入形式】输入在1行中依次给出A和B,中间以1空格分隔。【输出形式】在1行中依次输出Q和R,中间以1空格分隔。【样例输入】123456789050987654321 7【样例输出】17636684150141093474 3(C++写起来麻烦一点,就用了python)a,b=input().split()q=int(a)//

2021-09-08 16:59:23 113

原创 ccf练习题17. 最小钱币数(贪心算法)

【问题描述】阿迪有很多钱。他在银行里有n元。出于安全考虑,他想用现金取款(此处不透露原因)。钞票的面额是1,5,10,20,100元。取出全部余额后能收到的最小钞票数是多少?【输入形式】输入一个正整数n,(1≤n≤109)【输出形式】阿迪能收到的最小钞票数【样例输入1】125【样例输出1】3【样例输入2】43【样例输出2】5【样例输入3】1000000000【样例输出3】10000000【样例说明】本题可以直接使用贪心策略(优先尽可能多选择大面额的钞票)解决:主要原因是

2021-09-08 15:29:57 200

原创 ccf练习题4. 日历问题

【问题描述】在我们现在使用的日历中, 闰年被定义为能被4整除的年份,但是能被100整除而不能被400整除的年是例外,它们不是闰年。例如:1700, 1800, 1900 和 2100 不是闰年,而 1600, 2000 和 2400是闰年。 给定从公元2000年1月1日开始逝去的天数,你的任务是给出这一天是哪年哪月哪日星期几。【输入形式】输入包含若干行,每行包含一个正整数,表示从2000年1月1日开始逝去的天数。输入最后一行是−1, 不必处理。可以假设结果的年份不会超过9999。【输出形式】对每个

2021-09-08 15:27:22 180

原创 ccf练习题3. 相同生日

【问题描述】在一个有n个人的大班级中,存在两个人生日相同的概率非常大,现给出每个学生的学号,出生月日,试找出所有生日相同的学生。【输入形式】第一行为整数n,表示有n个学生,n<=200。此后每行包含一个字符串和两个整数,分别表示学生的学号(字符串长度为11位)和出生月(1<=m<=12)日(1<=d<=31),学号、月、日之间用一个空格分隔。【输出形式】对每组生日相同的学生,输出一行,其中前两个数字表示月和日,后面跟着所有在当天出生的学生的学号,数字、学号之间都用一个

2021-09-08 15:24:21 508

原创 ccf练习题16. 逆序数

问题描述在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序。一个排列中逆序的总数就称为这个排列的逆序数。也就是说,对于n个不同的元素,先规定各元素之间有一个标准次序(例如n个 不同的自然数,可规定从小到大为标准次序),于是在这n个元素的任一排列中,当某两个元素的先后次序与标准次序不同时,就说有1个逆序。一个排列中所有逆序总数叫做这个排列的逆序数。比如:数列 1 7 3 5 4 8 9其中(7,3),(7,5),(7,4),(5,4)构成逆序,所以其逆序数

2021-09-07 11:27:31 1178

原创 ccf练习题15. 字频统计

问题描述在一个只有字母’a’和’b’组成的字符串中,统计子串"ab"和"ba"出现次数的差。输入格式有多组测试数据。每组测试数据第一行是一个正整数N,表示字符串长度,接下来一行是长度为N的字符串,字符串中只有字母’a’和’b’。N=0表示输入结束,并且不需要处理。40%的数列元素个数N 1 ≤ N≤ 100;30%的数列元素个数N 1 ≤ N≤ 1000;20%的数列元素个数N 1 ≤ N≤ 10000;10%的数列元素个数N 1 ≤ N≤ 100000;输出格式对于每组测试数据,输出

2021-09-07 11:26:10 132

原创 ccf练习题14. 组个最小数

【问题描述】给定数字0-9各若干个。你可以以任意顺序排列这些数字,但必须全部使用。目标是使得最后得到的数尽可能小(注意0不能做首位)。例如:给定两个0,两个1,三个5,一个8,我们得到的最小的数就是10015558。现给定数字,请编写程序输出能够组成的最小的数。【输入形式】每个输入包含1个测试用例。每个测试用例在一行中给出多个(不超过50个)数字(0~9之间),整数间用一个空格分隔,且至少拥有1个非0的数字。【输出形式】在一行中输出能够组成的最小的数。【样例输入】2 2 0 0 0 3 0

2021-09-07 11:24:50 47

原创 ccf练习题13. 7, 还是7

【问题描述】输出 7 和 7 的倍数,还有包含 7 的数字例如(17,27,37…70,71,72,73…)【输入形式】一个正整数 N。(N 不大于 30000)【输出形式】从小到大排列的不大于 N 的与 7 有关的正整数,每行一个。【样例输入】20【样例输出】71417#include<iostream>#include<sstream>using namespace std;int main(){ int n; cin>>n; strin

2021-09-07 11:23:36 60

原创 ccf练习题11. 蛇行矩阵

问题描述】蛇形矩阵是由 1 开始的自然数依次排列成的一个矩阵上三角形【输入形式】 正整数 N表示层数,N 不大于 100【输出形式】输出一个 N 行的蛇形矩阵,矩阵三角中同一行的数字用一个空格分开,行尾不要多余的空格。【样例输入】5【样例输出】1 3 6 10 152 5 9 144 8 137 1211#include<iostream>using namespace std;int main(){ int n,number=1; cin>>n; i

2021-09-07 11:21:57 59

原创 ccf练习题10. 选美比赛

【问题描述】在选美大奖赛的半决赛现场,有n名选手(2<n<100)参加比赛。比赛结束时,要在现场按照选手的出场顺序宣布最后名次,获得相同分数的选手具有相同的名次,名次连续编号,不用考虑同名次的选手人数。如:选手数量: 7选手得分: 5,3,4,7,3,5,6宣布名次: 3,5,4,1,5,3,2请编程帮助大奖赛组委会完成半决赛的评分排名工作。【输入形式】选手数量:7选手得分:5 3 4 7 3 5 6【输出形式】选手的排名:3 5 4 1 5 3 2【样例输入】7

2021-09-07 11:20:33 713

原创 ccf练习题8. 最少钱币数

【问题描述】这是一个古老而又经典的问题。用给定的几种钱币凑成某个钱数,一般而言有多种方式。例如:给定了 6 种钱币面值为 2、5、10、20、50、100,用来凑 15 元,可以用 5 个 2 元、1个 5 元,或者 3 个 5 元,或者 1 个 5 元、1个 10 元,等等。显然,最少需要 2 个钱币才能凑成 15 元。你的任务就是,给定若干个互不相同的钱币面值,编程计算,最少需要多少个钱币才能凑成某个给出的钱数。【输入形式】输入可以有多个测试用例。每个测试用例的第一行是待凑的钱数值 M(1 <

2021-09-07 11:18:28 60

原创 ccf练习题6. 数塔

【问题描述】给定一个数塔,如下图所示。在此数塔中,从顶部出发,在每一节点可以选择走左下或右下,一直走到底层。请找出一条路径,使路径上的数值和最大。9121510682189519710416【输入形式】输入时第一行一个整数n,表示该数塔的行数,其余n行表示该塔每行的数值【输出形式】输出包含两行,第一行为最大路径上的数值之和, 第二行n个数字为从上而下最大路径数值【样例输入】5912 1510 6 82 18 9 519 7 10 4 16【样例输出】

2021-09-07 11:16:37 171

原创 ccf练习题2. 最简单的计算机

【问题描述】一个名叫是 PigHeadThree 的研究组织设计了一台实验用的计算机,命名为 PpMm。PpMm只能执行简单的六种命令 A,B,C,D,E,F;只有二个内存 M1,M2;三个寄存器 R1,R2,R3。六种命令的含义如下:命令 A:将内存 M1 的数据装到寄存器 R1 中;命令 B:将内存 M2 的数据装到寄存器 R2 中;命令 C:将寄存器 R3 的数据装到内存 M1 中;命令 D:将寄存器 R3 的数据装到内存 M2 中;命令 E:将寄存器 R1 中的数据和寄存器 R2 中的数

2021-09-07 11:14:12 228

原创 ccf练习题 1. 在霍格沃茨找零钱

【问题描述】如果你是哈利·波特迷,你会知道魔法世界有它自己的货币系统 —— 就如海格告诉哈利的:“十七个银西可(Sickle)兑一个加隆(Galleon),二十九个纳特(Knut)兑一个西可,很容易。”现在,给定哈利应付的价钱P和他实付的钱A,你的任务是写一个程序来计算他应该被找的零钱。【输入形式】输入在1行中分别给出P和A,格式为“Galleon.Sickle.Knut”,其间用1个空格分隔。这里Galleon是[0, 107]区间内的整数,Sickle是[0, 17)区间内的整数,Knut是[0,

2021-09-07 11:12:37 88

原创 ccf练习题 部分A+B

【问题描述】正整数A的“DA(为1位整数)部分”定义为由A中所有DA组成的新整数PA。例如:给定A = 3862767,DA = 6,则A的“6部分”PA是66,因为A中有2个6;给定A = 3862767,DA = 1,则A的“1部分”PA是0,因为A中有0个1。现给定A、DA、B、DB,请编写程序计算PA + PB。【输入形式】输入在一行中依次给出A、DA、B、DB,中间以空格分隔,其中0 < A, B < 1010。【输出形式】在一行中输出PA + PB的值。【样例输入】3

2021-08-02 17:05:34 60

原创 ccf练习题 最小的K个数

最小的K个数【问题描述】输入n个整数,找出其中最小的k(k<=n)个不同数。例如输入4,5,1,6,1,7,3,8这8个数字,则最小的4个数字是1,3,4,5。【输入形式】每个测试案例包括2行:第一行为2个整数n,k(1<=n,k<=200000),表示数组的长度。第二行包含n个整数,表示这n个数,数组中的数的范围是[0,1000 000 000]。【输出形式】对应每个测试案例,输出最小的k个数,并按从小到大顺序打印(如果不存在k个不同的数,则按照实际数量进行输出)。【样

2021-07-15 15:32:19 183

原创 ccf练习题 拼写检查

拼写检查【问题描述】 作为一个新的拼写检查程序开发团队的成员,您将编写一个模块,用已知的所有形式正确的词典来检查给定单词的正确性。 如果字典中没有这个词,那么可以用下列操作中的一个来替换正确的单词(从字典中): 1. 从单词中删除一个字母; 2. 用一个任意字母替换单词中的一个字母; 3. 在单词中插入一个任意字母。 你的任务是编写一个程序,为每个给定的单词找到字典中所有可能的替换。【输入形式】 输入的第一部分包含所有字典中的词,每个单词占用一行,以一个单一字

2021-07-15 14:51:45 96

原创 ccf练习题 飞行棋

飞行棋【问题描述】 大家当年一定都下过飞行棋吧。现在Lele和Yueyue要下的棋和这个很相似,只是更简单一点而已。 棋盘由N个格子组成,分别标记为第0格到第N-1格。格子分为两种,一种是普通格子,即表示在该格可以停留。否则是特殊的格子,一旦走到上面,就要根据上面标记的数飞到相应的格子上。如果飞到一个特殊的格子上,则可以继续飞。 除了第0格外,其他格子都只能容纳一个玩家。即一旦A玩家已经在某个格子上,B玩家又走到这里,A玩家则会被踢回第0格,而B玩家留在这个格子上面。 第N-

2021-07-13 16:52:22 351

原创 ccf练习题 点球大战

点球大战【问题描述】在足球比赛中,有不少赛事,例如世界杯淘汰赛和欧洲冠军联赛淘汰赛中,当比赛双方经过正规比赛和加时赛之后仍然不分胜负时,需要进行点球大战来决定谁能够获得最终的胜利。点球大战的规则非常简单,两方轮流派出球员罚点球,每方各罚5个。当5轮点球结束以后如果仍然不分胜负,则进入一轮定胜负的阶段。两方各派一名球员罚点球,直到有一方罚进而另一方没有进为止。在北美职业冰球联赛中,也有点球大战。与足球的规则不同的是,它只先罚3轮点球,随后就进入一轮定胜负的阶段,而其他的规则完全一样。在本题中,输入将给

2021-07-13 16:03:41 554

原创 ccf练习题 487-3279

487-3279每个人都喜欢有令人难忘的电话号码。要想让电话号码变得令人难忘的一种方法是拼出一个令人难忘的单词或短语。例如,你可以拨打滑铁卢大学的电话,拨打令人难忘的电话号码TUT-GLOP。 有时只有一部分号码被用来拼写一个单词,例如,你可以拨打310-gino从Gino's订购披萨。 要使电话号码令人难忘的另一种方法是以一种令人难忘的方式对数字进行分组。你可以从比萨饼小屋中订购比萨饼,方法是拨打他们的“3个10”,即号码3-10-10-10。 电话号码的标准格式是七位的十进制数字

2021-07-13 15:01:02 189

原创 ccf练习题 字符串反转2

字符串反转2【问题描述】 给定一个句子(只包含字母和空格), 将句子中的单词位置反转,单词用空格分割, 单词之间只有一个空格,前后没有空格。 比如: “hello xiao mi”-> “mi xiao hello”【输入形式】 输入数据有多组,每组占一行,包含一个句子(句子长度小于1000个字符)【输出形式】 对于每个测试示例,要求输出句子中单词反转后形成的句子【样例输入】hello xiao miI am a student【样例输出】mi xiao hel

2021-07-12 09:51:42 123

原创 ccf练习题 众数

众数【问题描述】一组数据中出现最多的数,称为众数。比如1 2 3 3众数为3。一组数据中也可能有多个众数,以最先出现的作为众数。比如2 2 3 3众数为2。问题是一组按升序排好的数据,指出它的众数。【输入形式】有多组测试数据(不超过100组测试数据)。每组测试数据占两行,第一行是正整数N:表示这组测试数据中数据项数。第二行是N个用空格隔开的正整数,表示这组测试数据的数据元素。每个数据元素都不大于10000。N=0,表示输入结束,并且不需要处理。40%的测试数据N 1 ≤N≤ 10;

2021-07-08 23:14:39 191

原创 ccf练习题 字符串反转3

字符串反转3【问题描述】 给出一个字符串,请将其每个单词反转后输出。【输入形式】 输入第一行为一个正整数N,表示测试用例数,接下来的N行,每行一个字符串。【输出形式】 输出N行,每行对应一个反转后的字符串。【样例输入】3olleh !dlrowm’I morf .unhI ekil .tae【样例输出】hello world!I’m from hnu.I like eat.#include<iostream>#include<string&g

2021-07-08 15:48:56 375

原创 ccf练习题 IP地址

IP地址【问题描述】一个IP地址由32位二进制的数组成,比如:111111111111111111111111000000002为了便于记忆,我们将8个二进制位用一个十进制数表示,一个IP地址由四个十进制数表示,上述的IP地址表示为:255.255.255.0现在给你一个上述形式的IP地址,请回答IP地址的32个二进制位中,有多少位是1。如IP地址为255.255.255.0,其中24位是1。【输入形式】有多组测试数据。测试数据第一行是一个正整数T,表示测试数据组数。每组测试数据是一个

2021-07-08 12:15:45 299

原创 ccf练习题 F1方程式冠军

F1方程式冠军【问题描述】一级方程式F1锦标赛由一系列称为大奖赛的分站赛组成。每一场比赛的车手都根据他们的最后位置获得积分。只有前10名车手按以下顺序获得分数:25、18、15、12、10、8、6、4、2、1。在锦标赛结束时,得分最多的车手是冠军。如果有平分,则冠军是赢的最多的人(即排位第一)。如果还是平分,则选择得到排位第二最多的人,依此类推,直到没有更多的排位进行比较。后来又提出了另一个得分制度,其中冠军是赢的最多的。如果有平手,冠军是得分最多的。如果仍然存在平手,则按原来的得分制度进行,即比较第

2021-07-07 15:54:33 378

原创 ccf练习题 世界杯来了

【问题描述】 2018年俄罗斯世界杯结束了,法国获得冠军,全世界球迷度过了一个非常愉快的夏天。作为中国球迷,不能总是看别人踢球,这不福利来了,根据FIFA(国际足联)及全体成员协会的一致决定,2118年世界杯将在中国举办,作为东道主,中国队将无需参加预选赛而直接参加决赛阶段的比赛。比赛规则如下:总共n(n为偶数)个球队参加比赛按照分组赛积分排名,前n/2的球队进入淘汰赛积分排名的规则如下:球队获胜得3分,平局得1分,失利得0分,按照积分递减、净胜球递减以及进球数递减方式排名编写一个程序,根

2021-07-06 23:49:41 825

空空如也

空空如也

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

TA关注的人

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