BZOJ
文章平均质量分 52
蒟蒻pzjdsg666
一个初一的中学生
展开
-
C++城市公交网建设问题
题目描述有一张城市地图,图中的顶点为城市,无向边代表两个城市间的连通关系,边上的权为在这两个城市之间修建高速公路的造价,研究后发现,这个地图有一个特点,即任一对城市都是连通的。现在的问题是,要修建若干高速公路把所有城市联系起来,问如何设计可使得工程的总造价最少?输入格式n(城市数,1≤n≤100)e(边数)以下e行,每行3个数i , j , w[i][j],表示在城市 (i,j) 之间修建高速公路的造价。输出格式n-1行,每行为两个城市的序号(a,b)(a<=b),表明这.原创 2021-08-25 13:27:12 · 641 阅读 · 0 评论 -
图的搜索遍历(三道模板题:有向图的DFS+有向图的BFS)
【例一】有向图的DFS题目描述给定一个有向图,有N个顶点,M条边,顶点从1..N依次编号,求出字典序最小的深度优先搜索顺序。输入格式第1行:2个整数,N(1≤N≤200)和M(2≤M≤5000) 接下来M行,每行2个整数I,J,描述一条边从顶点I指向顶点J输出仅一行,一个顶点编号序列,表示字典序最小的深度优先搜索序列.顶点之间用一个空格分开样例样例输入3 31 21 32 3样例输出1 2 3模板一:有向图的DFS。AC Code:#inc原创 2021-08-16 13:22:45 · 1364 阅读 · 0 评论 -
C++多源最短路
题目描述有 $n$ 个城市,从 $1$ 到 $n$ 给他们编号,它们之间由一些单向道路(即一条道路只能从一个方向走向另一个方向,反之不行)相连,每条路还有一个花费 $c_i$,表示通过第 $i$ 条边需要花费$c_i$的时间。求任意两点间的最快路径。输入格式第一行一个整数 $n$,表示有多少个城市和多少条道路。接下来 $n$行,每行 $n$个整数第 $i+1$ 行第 $j$ 个数 $x$ 表示从i到j有一条花费为 $x$ 的边。(第 $i+1$ 行第 $i$ 个数为 $0$)输出原创 2021-08-15 23:40:17 · 751 阅读 · 1 评论 -
C++——「NOIP2005」校门外的树(BZOJ8347\25166)
题目描述某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米。我们可以把马路看成一个数轴,马路的一端在数轴0的位置,另一端在L的位置;数轴上的每个整数点,即0,1,2,……,L,都种有一棵树。由于马路上有一些区域要用来建地铁。这些区域用它们在数轴上的起始点和终止点表示。已知任一区域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分。现在要把这些区域中的树(包括区域端点处的两棵树)移走。你的任务是计算将这些树都移走后,马路上还有多少棵树。输入格式第一行有两个整数L(1 &原创 2021-08-05 23:40:46 · 956 阅读 · 1 评论 -
C++——「NOIP2005」采药
题目描述辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师。为此,他想拜附近最有威望的医师为师。医师为了判断他的资质,给他出了一个难题。医师把他带到一个到处都是草药的山洞里对他说:“孩子,这个山洞里有一些不同的草药,采每一株都需要一些时间,每一株也有它自身的价值。我会给你一段时间,在这段时间里,你可以采到一些草药。如果你是一个聪明的孩子,你应该可以让采到的草药的总价值最大。”如果你是辰辰,你能完成这个任务吗?(能,但是我就是不想完成)输入格式第一行有两个整数T(1 <= T原创 2021-08-04 16:09:49 · 426 阅读 · 0 评论 -
C++——树的统计(附毒瘤数据)
题目描述输入森林中的节点关系,统计森林中树的数量,输出树的根。输入格式第1行:输入两个整数n, k第2~k+1行:每行两个节点编号:i, ji是j的父节点输出格式第一行:树的数量第二行:依次输出森林中树的根节点编(从小到大)样例输入:9 71 22 34 64 57 89 19 4输出:27 9数据范围与提示:n<=100k<=100i<=100j<=100(毒瘤数据)63 12...原创 2021-08-03 12:27:27 · 529 阅读 · 0 评论 -
并查集的故事
并查集: : 查找x属于哪个集合,如果x属于某一个集合,则返回该集合的代表。 :如果元素与元素,分别属于不同的集合,则将两个集合合并,否则不操作。 并查集基础操作:初始化void makeSet(int n){ for(int i=1;i<=n;i++) dad[i]=i;}并查集基础操作:合并只需要将每个集合的代表进行链接即可void unionSet(int x,int y){ dad[findSet(x)]=findSet(y);}...原创 2021-07-19 18:36:43 · 82 阅读 · 4 评论 -
C++:亲戚(relation)
题目简介:一道并查集的模板题题目描述或许你并不知道,你的某个朋友是你的亲戚。他可能是你的曾祖父的外公的女婿的外甥女的表姐的孙子(辈分挺长)。如果能得到完整的家谱,判断两个人是否是亲戚应该是可行的,但如果两个人的最近公共祖先与他们相隔好几代,使得家谱十分庞大,那么检验亲戚关系实非人力所能及。在这种情况下,最好的帮手就是计算机。为了将问题简化,你将得到一些亲戚关系的信息,如Marry和Tom是亲戚,Tom和Ben是亲戚,等等。从这些信息中,你可以推出Marry和Ben是亲戚。请写一个程序,对于我们的原创 2021-07-19 20:39:38 · 1146 阅读 · 0 评论 -
C++: 队列及其操作
内存限制:128 MiB 时间限制:1000 ms 标准输入输出题目类型:传统 评测方式:文本比较题目描述队列(queue):在线性表的一端插入元素,在另一端删除元素,所以遵循先进先出( **FIFO**)原则,元素从队尾进,队首出,不允许插队!其中删除元素的一端称为队首(front),插入元素的一端称为队尾(rear)。队列就像我们排队打饭,先来的先打饭,后来的只能排在队尾。输入格式第1行包含一个整数,表示有条关于queue的操作,在进行任何操作之前,queue...原创 2021-07-19 12:58:22 · 2650 阅读 · 2 评论 -
C++:去重
夕阳西下,断肠人在天涯。 ——元·马致远《天净沙·秋思》题目描述明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了个随机整数,对于其中重复的数字,只保留一个,把其余相同的数去掉,并把去重后的数由小到大输出。输入格式第行为个正整数,表示所生成的随机数的个数:;第行有个用空格隔开的正整数,为所产生的随机数。输出格式第行为个正整数,表示不相同的随机数的个数。第行为个用空格隔开的正整数,为从小到大排好序的不相同的随...原创 2021-07-18 17:08:36 · 847 阅读 · 0 评论 -
C++上网统计
内存限制:256 MiB时间限制:1000 ms题目类型:传统评测方式:文本比较题目描述在一个网络系统中有N个用户1≤N≤1000、M次上网记录1≤M≤5000。每个用户可以自己注册一个用户名,每个用户名是一个只含小写字母的字符串。每个上网的账号每次上网都会浏览网页,网页名是一串只含小写字母的字符串,每次上网日志都会留下记录,现在请你统计一次上网日志中,每个用户浏览了多少个网页。(输出按照输入顺序输出)输入格式第一行N和M 第2行到第M+1行为M条上网日志,每行两个字符串,用空格原创 2021-07-17 23:50:18 · 957 阅读 · 2 评论 -
BZOJ3343——C++:小球(drop)
题目描述许多的小球一个一个的从一棵满二叉树上掉下来组成FBT(Full Binary Tree,满二叉树),每一时间,一个正在下降的球第一个访问的是非叶子节点。然后继续下降时,或者走右子树,或者走左子树,直到访问到叶子节点。决定球运动方向的是每个节点的布尔值。最初,所有的节点都是false,当访问到一个节点时,如果这个节点是false,则这个球把它变成true,然后从左子树走,继续它的旅程。如果节点是true,则球也会改变它为false,而接下来从右子树走。满二叉树的标记方法如下图:因为所有的节原创 2021-07-16 19:48:55 · 689 阅读 · 0 评论 -
C++:合并果子
题目描述在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。 多多决定把所有的果子合成一堆。每一次合并,多多可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过n-1次合并之后,就只剩下一堆了。多多在合并果子时总共消耗的体力等于每次合并所耗体力之和。因为还要花大力气把这些果子搬回家,所以多多在合并果子时要尽可能地节省体力。 假定每个果子重量都为1,并且已知果子的种类数和每种果子的数目,你的任务是设计出合并的次序方案,使多多耗费的体力最少,并输出原创 2021-07-09 22:18:48 · 428 阅读 · 5 评论 -
C++:#155. 括号配对
题目描述Hecy 又接了个新任务:BE 处理。BE 中有一类被称为 GBE。以下是 GBE 的定义:空表达式是 GBE 如果表达式A是 GBE,则[A]与(A)都是 GBE 如果A与B都是 GBE,那么AB是 GBE下面给出一个 BE,求至少添加多少字符能使这个 BE 成为 GBE。输入格式输入仅一行,为字符串 BE。输出格式输出仅一个整数,表示增加的最少字符数。样例样例输入复制[])样例输出复制1数据范围与提示对...原创 2021-07-14 23:02:09 · 220 阅读 · 1 评论 -
C++:#6744. 去重
题目描述明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了个随机整数,对于其中重复的数字,只保留一个,把其余相同的数去掉,并把去重后的数由小到大输出。输入格式第行为个正整数,表示所生成的随机数的个数:;第行有个用空格隔开的正整数,为所产生的随机数。输出格式第行为个正整数,表示不相同的随机数的个数。第行为个用空格隔开的正整数,为从小到大排好序的不相同的随机数。样例样例输入复制1020 40 32 ...原创 2021-07-14 22:55:37 · 84 阅读 · 0 评论