- 博客(142)
- 问答 (4)
- 收藏
- 关注
原创 Roads in the North
描述:Building and maintaining roads among communities in the far North is an expensive business. With this in mind, the roads are build such that there is only one route from a village to a village that does not pass through some other village twice.Given
2022-03-24 19:26:51
272
原创 Cows(树状数组)
k树状数组简单易懂的详解_FlushHip的博客-CSDN博客_树状数组可以参考以上文章先行理解树状数组。描述:Farmer John's cows have discovered that the clover growing along the ridge of the hill (which we can think of as a one-dimensional number line) in his field is particularly good.Farmer John
2022-03-22 05:30:00
579
原创 快速幂次乘法
一定要加上(long long)#include<iostream>const long long mod=1e+9+7;using namespace std;int fun(int n,int m){ int sum=1; while(m) { if(m&1)sum=(long long)sum*n%mod; n=(long long)n*n%mod; m>>=1; } return sum;}//int fun(int a,int
2022-03-21 23:29:08
142
原创 二叉搜索树数组版构造
这个思路看上去比较新型一点,可以参考#include<iostream>#include<map>using namespace std;int f[105]={0},l[105],r[105],bns[105],d[105]={0};map<int,int> mp;void create(int& root,int n,int fa,int dp){ if(root=-1) { root=n; f[bns[n]]=fa; d[b
2022-03-21 22:36:56
248
原创 L3-1 二叉搜索树的结构 (30 point(s))
二叉搜索树或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;它的左、右子树也分别为二叉搜索树。(摘自百度百科)给定一系列互不相等的整数,将它们顺次插入一棵初始为空的二叉搜索树,然后对结果树的结构进行描述。你需要能判断给定的描述是否正确。例如将{ 2 4 1 3 0 }插入后,得到一棵二叉搜索树,则陈述句如“2是树的根”、“1和4是兄弟结点”、“3和0在同一层上”(指自顶向下的深度相同)
2022-03-21 22:34:14
149
原创 L2-4 部落 (25 point(s))
L2-4 部落 (25 point(s))在一个社区里,每个人都有自己的小圈子,还可能同时属于很多不同的朋友圈。我们认为朋友的朋友都算在一个部落里,于是要请你统计一下,在一个给定社区中,到底有多少个互不相交的部落?并且检查任意两个人是否属于同一个部落。输入格式:输入在第一行给出一个正整数N(≤104),是已知小圈子的个数。随后N行,每行按下列格式给出一个小圈子里的人:K P[1] P[2] ⋯ P[K]其中K是小圈子里的人数,P[i](i=1,⋯,K)是小圈子里每个人的编号。这里所有人的
2022-03-21 18:37:34
170
原创 L2-2 重排链表 (25 point(s))
给定一个单链表 L1→L2→⋯→Ln−1→Ln,请编写程序将链表重新排列为 Ln→L1→Ln−1→L2→⋯。例如:给定L为1→2→3→4→5→6,则输出应该为6→1→5→2→4→3。输入格式:每个输入包含1个测试用例。每个测试用例第1行给出第1个结点的地址和结点总个数,即正整数N (≤105)。结点的地址是5位非负整数,NULL地址用−1表示。接下来有N行,每行格式为:Address Data Next其中Address是结点地址;Data是该结点保存的数据,为不超过
2022-03-21 16:40:38
184
原创 L2-1 点赞狂魔 (25 point(s))
微博上有个“点赞”功能,你可以为你喜欢的博文点个赞表示支持。每篇博文都有一些刻画其特性的标签,而你点赞的博文的类型,也间接刻画了你的特性。然而有这么一种人,他们会通过给自己看到的一切内容点赞来狂刷存在感,这种人就被称为“点赞狂魔”。他们点赞的标签非常分散,无法体现出明显的特性。本题就要求你写个程序,通过统计每个人点赞的不同标签的数量,找出前3名点赞狂魔。输入格式:输入在第一行给出一个正整数N(≤100),是待统计的用户数。随后N行,每行列出一位用户的点赞标签。格式为“NameKF1⋯FK”,..
2022-03-21 15:26:41
337
原创 L1-3 阅览室 (25 point(s))
天梯图书阅览室请你编写一个简单的图书借阅统计程序。当读者借书时,管理员输入书号并按下S键,程序开始计时;当读者还书时,管理员输入书号并按下E键,程序结束计时。书号为不超过1000的正整数。当管理员将0作为书号输入时,表示一天工作结束,你的程序应输出当天的读者借书次数和平均阅读时间。注意:由于线路偶尔会有故障,可能出现不完整的纪录,即只有S没有E,或者只有E没有S的纪录,系统应能自动忽略这种无效纪录。另外,题目保证书号是书的唯一标识,同一本书在任何时间区间内只可能被一位读者借阅。输入格式:输入在第
2022-03-21 11:52:20
123
原创 7-60 球队“食物链” (30 point(s))
某国的足球联赛中有N支参赛球队,编号从1至N。联赛采用主客场双循环赛制,参赛球队两两之间在双方主场各赛一场。联赛战罢,结果已经尘埃落定。此时,联赛主席突发奇想,希望从中找出一条包含所有球队的“食物链”,来说明联赛的精彩程度。“食物链”为一个1至N的排列{T1T2⋯TN},满足:球队T1战胜过球队T2,球队T2战胜过球队T3,⋯,球队T(N−1)战胜过球队TN,球队TN战胜过球队T1。现在主席请你从联赛结果中找出“食物链”。若存在多条“食物链”,请找出字典序最小的。...
2022-03-21 10:58:34
183
原创 Minority
描述:You are given a stringss, consisting only of characters '0' and '1'.You have to choose a contiguous substring ofssand remove all occurrences of the character, which is a strict minority in it, from the substring.That is, if the amount of '0's i...
2022-03-21 05:30:00
296
原创 7-57 功夫传人 (25 point(s))
一门武功能否传承久远并被发扬光大,是要看缘分的。一般来说,师傅传授给徒弟的武功总要打个折扣,于是越往后传,弟子们的功夫就越弱…… 直到某一支的某一代突然出现一个天分特别高的弟子(或者是吃到了灵丹、挖到了特别的秘笈),会将功夫的威力一下子放大N倍 —— 我们称这种弟子为“得道者”。这里我们来考察某一位祖师爷门下的徒子徒孙家谱:假设家谱中的每个人只有1位师傅(除了祖师爷没有师傅);每位师傅可以带很多徒弟;并且假设辈分严格有序,即祖师爷这门武功的每个第i代传人只能在第i-1代传人中拜1个师傅。我们假设已知祖师
2022-03-21 05:30:00
197
原创 7-59 周游世界 (30 point(s))
周游世界是件浪漫事,但规划旅行路线就不一定了…… 全世界有成千上万条航线、铁路线、大巴线,令人眼花缭乱。所以旅行社会选择部分运输公司组成联盟,每家公司提供一条线路,然后帮助客户规划由联盟内企业支持的旅行路线。本题就要求你帮旅行社实现一个自动规划路线的程序,使得对任何给定的起点和终点,可以找出最顺畅的路线。所谓“最顺畅”,首先是指中途经停站最少;如果经停站一样多,则取需要换乘线路次数最少的路线。输入格式:输入在第一行给出一个正整数N(≤100),即联盟公司的数量。接下来有N行,第i行(i=1,⋯,N)
2022-03-20 22:11:10
270
原创 Number of Ways
描述:You've got arraya[1], a[2], ..., a[n], consisting ofnintegers. Count the number of ways to split all the elements of the array into three contiguous parts so that the sum of elements in each part is the same.More formally, you need to find the nu...
2022-03-20 05:30:00
221
原创 不带头节点的单链表
(1)编写函数删除不带头结点单链表head中的第一个值为x 的结点,并构造测试用例进行测试。(2)假设线性表(a1,a2,a3,…an)采用不带头结点的单链表存储,请设计算法将不带头结点的单链表head就地倒置,使表变成(an,an-1,…a3.a2,a1)。并构造测试用例进行测试。(3)假设不带头结点的单链表head是升序排列的,设计算法将值为x的结点插入到链表head中,并保持链表有序性。分别构造插入到表头、表中和表尾三种情况的测试用例进行测试。(4)编写算法函数删除不带头结点单链表head
2022-03-19 05:30:00
1566
原创 7-55 多项式A除以B (25 point(s))
这仍然是一道关于A/B的题,只不过A和B都换成了多项式。你需要计算两个多项式相除的商Q和余R,其中R的阶数必须小于B的阶数。输入格式:输入分两行,每行给出一个非零多项式,先给出A,再给出B。每行的格式如下:N e[1] c[1] ... e[N] c[N]其中N是该多项式非零项的个数,e[i]是第i个非零项的指数,c[i]是第i个非零项的系数。各项按照指数递减的顺序给出,保证所有指数是各不相同的非负整数,所有系数是非零整数,所有整数在整型范围内。输出格式:分两行先后输出商和余,输
2022-03-18 20:41:06
560
原创 关于string的输出问题
在printf中,加入直接string a;printf("%s",a);回乱码,对于string这类,要用一下加.c_str()的方式,这个函数是返回字符串string的首地址,应为%s要的是char*,但是string只是字符串,要通过函数名来返回其首地址。string a;printf("%s",a.c_str());并且string还有一些将字符串转换成数字的函数#include<iostream>using namespace std;int main
2022-03-18 15:31:56
2314
1
原创 7-45 水果忍者 (30 point(s))
2010年风靡全球的“水果忍者”游戏,想必大家肯定都玩过吧?(没玩过也没关系啦~)在游戏当中,画面里会随机地弹射出一系列的水果与炸弹,玩家尽可能砍掉所有的水果而避免砍中炸弹,就可以完成游戏规定的任务。如果玩家可以一刀砍下画面当中一连串的水果,则会有额外的奖励,如图1所示。图 1现在假如你是“水果忍者”游戏的玩家,你要做的一件事情就是,将画面当中的水果一刀砍下。这个问题看上去有些复杂,让我们把问题简化一些。我们将游戏世界想象成一个二维的平面。游戏当中的每个水果被简化成一条一条的垂直于水平线的竖直线
2022-03-18 11:42:19
219
原创 7-43 是否完全二叉搜索树 (30 point(s))
将一系列给定数字顺序插入一个初始为空的二叉搜索树(定义为左子树键值大,右子树键值小),你需要判断最后的树是否一棵完全二叉树,并且给出其层序遍历的结果。输入格式:输入第一行给出一个不超过20的正整数N;第二行给出N个互不相同的正整数,其间以空格分隔。输出格式:将输入的N个正整数顺序插入一个初始为空的二叉搜索树。在第一行中输出结果树的层序遍历结果,数字间以1个空格分隔,行的首尾不得有多余空格。第二行输出YES,如果该树是完全二叉树;否则输出NO。样例1:">样例1:">样例1:"
2022-03-17 18:52:52
271
原创 7-40 列车调度 (25 point(s))
火车站的列车调度铁轨的结构如下图所示。两端分别是一条入口(Entrance)轨道和一条出口(Exit)轨道,它们之间有N条平行的轨道。每趟列车从入口可以选择任意一条轨道进入,最后从出口离开。在图中有9趟列车,在入口处按照{8,4,2,5,3,9,1,6,7}的顺序排队等待进入。如果要求它们必须按序号递减的顺序从出口离开,则至少需要多少条平行铁轨用于调度?输入格式:输入第一行给出一个整数N (2 ≤ N ≤105),下一行给出从1到N的整数序号的一个重排列。数字间以空格分隔。输出格式:
2022-03-16 11:45:45
148
原创 7-39 红色警报 (25 point(s))
战争中保持各个城市间的连通性非常重要。本题要求你编写一个报警程序,当失去一个城市导致国家被分裂为多个无法连通的区域时,就发出红色警报。注意:若该国本来就不完全连通,是分裂的k个区域,而失去一个城市并不改变其他城市之间的连通性,则不要发出警报。输入格式:输入在第一行给出两个整数N(0 < N ≤ 500)和M(≤ 5000),分别为城市个数(于是默认城市从0到N-1编号)和连接两城市的通路条数。随后M行,每行给出一条通路所连接的两个城市的编号,其间以1个空格分隔。在城市信息之后给出被攻占的信息,
2022-03-16 11:14:18
130
原创 7-29 喊山 (30 point(s))
喊山,是人双手围在嘴边成喇叭状,对着远方高山发出“喂—喂喂—喂喂喂……”的呼唤。呼唤声通过空气的传递,回荡于深谷之间,传送到人们耳中,发出约定俗成的“讯号”,达到声讯传递交流的目的。原来它是彝族先民用来求援呼救的“讯号”,慢慢地人们在生活实践中发现了它的实用价值,便把它作为一种交流工具世代传袭使用。(图文摘自:http://news.xrxxw.com/newsshow-8018.html)一个山头呼喊的声音可以被临近的山头同时听到。题目假设每个山头最多有两个能听到它的临近山头。给定任意一个发出原始
2022-03-15 17:46:00
381
原创 7-28 天梯地图 (30 point(s))
本题要求你实现一个天梯赛专属在线地图,队员输入自己学校所在地和赛场地点后,该地图应该推荐两条路线:一条是最快到达路线;一条是最短距离的路线。题目保证对任意的查询请求,地图上都至少存在一条可达路线。输入格式:输入在第一行给出两个正整数N(2≤N≤500)和M,分别为地图中所有标记地点的个数和连接地点的道路条数。随后M行,每行按如下格式给出一条道路的信息:V1 V2 one-way length time其中V1和V2是道路的两个端点的编号(从0到N-1);如果该道路是从V1到V2的...
2022-03-15 12:14:17
315
原创 Til the Cows Come Home
描述:Bessie is out in the field and wants to get back to the barn to get as much sleep as possible before Farmer John wakes her for the morning milking. Bessie needs her beauty sleep, so she wants to get back as quickly as possible.Farmer John's field has
2022-03-13 10:31:45
132
原创 迷宫问题(非int型数组)
描述:定义一个二维数组:int maze[5][5] = {0, 1, 0, 0, 0,0, 1, 0, 1, 0,0, 0, 0, 0, 0,0, 1, 1, 1, 0,0, 0, 0, 1, 0,};它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短路线。输入:一个5 × 5的二维数组,表示一个迷宫。数据保证有唯一解。输出:左上角到右下角的最短路径,格式如样例所示。样例输
2022-03-12 23:51:43
474
原创 Quantity of Strings
描述:Just in case somebody missed it: this winter is totally cold in Nvodsk! It is so cold that one gets funny thoughts. For example, let's say there are strings with the length exactlyn, based on the alphabet of sizem. Any its substring with length equa..
2022-03-12 22:50:44
137
原创 7-27 关于堆的判断 (25 point(s))
将一系列给定数字顺序插入一个初始为空的小顶堆H[]。随后判断一系列相关命题是否为真。命题分下列几种:x is the root:x是根结点; x and y are siblings:x和y是兄弟结点; x is the parent of y:x是y的父结点; x is a child of y:x是y的一个子结点。输入格式:每组测试第1行包含2个正整数N(≤1000)和M(≤20),分别是插入元素的个数、以及需要判断的命题数。下一行给出区间[−10000,10000]内的N个要被插入..
2022-03-12 14:54:30
89
原创 汇编语言下载安装及使用(hello world,仅供学习参考)
初次汇编语言编写程序输出HELLO,WORLD!初次编写汇编语言,其中遇到了很多困难和问题,下载了很多东西,也查阅了很多关于汇编的资料内容,最后为方便大家直接可以使用快速上手,我把自己花费大量时间和精力整理的配置的资源,免费分享给有需要的朋友,以及本篇文章也会提供基本操作过程,希望能够帮助到各位。温馨提示:因为博主已经下载好的MASM编译汇编代码在64位windows中不兼容无法操作运行,所以会通过使用DOSBox0.74软件挂载MASM到其他盘,在其他盘中进行编译操作完成实验。一、点击下载博主关于M
2022-03-12 00:05:14
4069
2
原创 7-26 玩转二叉树 (25 point(s))
给定一棵二叉树的中序遍历和前序遍历,请你先将树做个镜面反转,再输出反转后的层序遍历的序列。所谓镜面反转,是指将所有非叶结点的左右孩子对换。这里假设键值都是互不相等的正整数。输入格式:输入第一行给出一个正整数N(≤30),是二叉树中结点的个数。第二行给出其中序遍历序列。第三行给出其前序遍历序列。数字间以空格分隔。输出格式:在一行中输出该树反转后的层序遍历的序列。数字间以1个空格分隔,行首尾不得有多余空格。输入样例:71 2 3 4 5 6 74 1 3 2 6 5 7输出样
2022-03-11 23:54:26
149
原创 7-25 排座位 (25 point(s))
布置宴席最微妙的事情,就是给前来参宴的各位宾客安排座位。无论如何,总不能把两个死对头排到同一张宴会桌旁!这个艰巨任务现在就交给你,对任何一对客人,请编写程序告诉主人他们是否能被安排同席。输入格式:输入第一行给出3个正整数:N(≤100),即前来参宴的宾客总人数,则这些人从1到N编号;M为已知两两宾客之间的关系数;K为查询的条数。随后M行,每行给出一对宾客之间的关系,格式为:宾客1 宾客2 关系,其中关系为1表示是朋友,-1表示是死对头。注意两个人不可能既是朋友又是敌人。最后K行,每行给出一对需要查询
2022-03-11 22:37:07
177
原创 并查集(Union,find,father)
并查集是个数据结构,围绕着一个就是根节点展开,若两点的根节点相同那么就肯定在一棵树内,所以我们只需要维护一个点的父亲节点就好了,然后每次询问都查找根节点是否相同。但若树退化成链的话,我们就需要判断两点和根节点的关系,保留当前点的根节点关系就好了,这样的优化方式我们叫做路径压缩。1.普通并查集模板初始化:void mem(int n) { for (int i=0;i<=n;i++) { father[i]=i; R[i]=1;//秩优化
2022-03-11 22:35:10
582
原创 7-12 最长对称子串 (25 point(s))
对给定的字符串,本题要求你输出最长对称子串的长度。例如,给定Is PAT&TAP symmetric?,最长对称子串为s PAT&TAP s,于是你应该输出11。输入格式:输入在一行中给出长度不超过1000的非空字符串。输出格式:在一行中输出最长对称子串的长度。样例:">样例:">输入样例:Is PAT&TAP symmetric?输出样例:11先计算长度为2时先标记一下n与n+l之间的关系,这里的二维数组只是用来方便使用而已,并
2022-03-09 00:03:23
142
原创 7-13 肿瘤诊断 (30 point(s))
在诊断肿瘤疾病时,计算肿瘤体积是很重要的一环。给定病灶扫描切片中标注出的疑似肿瘤区域,请你计算肿瘤的体积。输入格式:输入第一行给出4个正整数:M、N、L、T,其中M和N是每张切片的尺寸(即每张切片是一个M×N的像素矩阵。最大分辨率是1286×128);L(≤60)是切片的张数;T是一个整数阈值(若疑似肿瘤的连通体体积小于T,则该小块忽略不计)。最后给出L张切片。每张用一个由0和1组成的M×N的矩阵表示,其中1表示疑似肿瘤的像素,0表示正常像素。由于切片厚度可以认为是一个常数,于是我们只要数连通体
2022-03-08 23:59:38
127
原创 7-11 家庭房产 (25 point(s))
给定每个人的家庭成员和其自己名下的房产,请你统计出每个家庭的人口数、人均房产面积及房产套数。输入格式:输入第一行给出一个正整数N(≤1000),随后N行,每行按下列格式给出一个人的房产:编号 父 母 k 孩子1 ... 孩子k 房产套数 总面积其中编号是每个人独有的一个4位数的编号;父和母分别是该编号对应的这个人的父母的编号(如果已经过世,则显示-1);k(0≤k≤5)是该人的子女的个数;孩子i是其子女的编号。输出格式:首先在第一行输出家庭个数(所有有亲属关系的人都属于同一个家庭
2022-03-07 23:19:56
304
原创 vector(向量)的简单操作
操作 功能size() 返回元素总数get() 获取秩为r的元素put(r,e) 用e替换秩为r的元素insert(r,e) e作为秩为r的元素插入,原后继元素后移remove(r) 删除秩为r的元素,返回其值disordered() 判断是否降序,返回逆序...
2022-03-07 22:26:03
246
原创 7-10 树的遍历 (25 point(s))
给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列。这里假设键值都是互不相等的正整数。输入格式:输入第一行给出一个正整数N(≤30),是二叉树中结点的个数。第二行给出其后序遍历序列。第三行给出其中序遍历序列。数字间以空格分隔。输出格式:在一行中输出该树的层序遍历的序列。数字间以1个空格分隔,行首尾不得有多余空格。输入样例:72 3 1 5 7 6 41 2 3 4 5 6 7输出样例:4 1 6 3 5 7 2#include<iostream
2022-03-06 23:55:36
77
原创 7-9 集合相似度 (25 point(s))
给定两个整数集合,它们的相似度定义为:Nc/Nt×100%。其中Nc是两个集合都有的不相等整数的个数,Nt是两个集合一共有的不相等整数的个数。你的任务就是计算任意一对给定集合的相似度。输入格式:输入第一行给出一个正整数N(≤50),是集合的个数。随后N行,每行对应一个集合。每个集合首先给出一个正整数M(≤104),是集合中元素的个数;然后跟M个[0,109]区间内的整数。之后一行给出一个正整数K(≤2000),随后K行,每行对应一对需要计算相似度的集合的编号(集合从1到N编号)。数字间以
2022-03-06 23:52:41
93
原创 在数组中或关联容器中查找方法
有序区间算法中:1.binary_search:查找某个元素是否出现函数模板:binary_search(arr[],arr[]+size,indx)出现为1,不出现为0;2.lower_bound:查找第一个小于某个元素的位置函数模板:lower_bound(arr[],arr[]+size,indx)关于这个位置[begin,it),在it之前的那些都要比index小,但是返回的是比那些最小后面一个位置。3.upper_bound : 查找第一个大于某个元素的位置函数模板
2022-03-04 23:22:43
115
原创 迭代器(iterator和const_iterator)
定义容器类迭代器的方法:容器类名::iterator 变量名或者:容器类名::const_iterator 变量名访问迭代器指向的元素:*i批注:stack/queue/priority_queue均不支持迭代器#include<iostream>#include<vector>using namespace std;int main(){ vector<int> bns; bns.push_back(1); bns.push_ba
2022-03-04 19:06:20
174
空空如也
广告怎么处理,去都去不掉
2022-01-16
链表之间删除一个元素,但是我遇到下面这种情况,求解
2022-01-02
用python求整型的字节长度
2022-01-01
eclipse怎么安装并且正常使用,安装了elipse用不了
2021-12-31
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅