题解
herobrineAC
信息学社会团体团长
展开
-
test-2020-10-27 (公交换乘 对称二叉树 photo)
时隔多月,终于准备再水一篇博客了,还有9天就CSP提高了,考完没一等奖就当中考er了,应该就不会怎么动这个博客了。这次考三道题,两道CSP2019-J原题,重温一下那种感觉吧。T1:公交换乘这道题是CSP2019-J的T3,满满的怀旧,当年就挫败在了这道题之下,现在一看,就一道模拟嘛。思路:题目给的很明确:如果可以使用优惠票一定会使用优惠票;如果有多张优惠票满足条件,则优先消耗获得最早的优惠票。我们保证出行记录是按照开始乘车的时间顺序给出的,且不会有两次乘车记录出现在同一分钟。记录既原创 2020-10-28 21:25:33 · 217 阅读 · 0 评论 -
Wormholes——SPFA判负环
题目:描述John在他的农场中闲逛时发现了许多虫洞。虫洞可以看作一条十分奇特的有向边,并可以使你返回到过去的一个时刻(相对你进入虫洞之前)。John的每个农场有M条小路(无向边)连接着N(从1…N标号)块地,并有W个虫洞。其中1<=N<=500,1<=M<=2500,1<=W<=200。现在John想借助这些虫洞来回到过去(出发时刻之前),请你告诉他能办到吗。John将向你提供F(1<=F<=5)个农场的地图。没有小路会耗费你超过10000秒的时原创 2020-07-31 20:30:58 · 281 阅读 · 0 评论 -
奖金——构造最小拓扑序
题目:描述Mr.Z心情好,决定给每位员工发奖金。公司决定以每个人本年在公司的贡献为标准来计算他们得到奖金的多少。于是Mr.Z下令召开m方会谈。每位参加会谈的代表提出了自己的意见:“我认为员工a的奖金应该比b高!”Mr.Z决定要找出一种奖金方案,满足各位代表的意见,且同时使得总奖金数最少。每位员工奖金最少为100元。输入第一行两个整数n,m,表示员工总数和代表数;以下m行,每行2个整数a,b,表示某个代表认为第a号员工奖金应该比第b号员工高。n<=10000,m<=20000原创 2020-07-31 19:14:15 · 279 阅读 · 0 评论 -
拓扑——判断是否有唯一的拓扑序
题目:描述从前有一个萌萌哒的图,它是一个有向无环图。它想知道自己的拓扑序是否唯一。但因为图不会写代码,所以它把这个任务交给了你。输入第一行两个正整数 n, m 表示图的点数和边数。接下来 m 行,每行两个整数 x, y,表示有一条从 x 到 y 的有向边。1 ≤ n ≤ 100000, 1 ≤ m ≤ 100000输入保证图中无环。输出如果图的拓扑序唯一,输出一行一个字符串 ”YES”。否则输出 “NO“样例输入4 41 22 32 41 3输出NO原创 2020-07-31 16:55:25 · 6140 阅读 · 1 评论 -
Revamping Trails 道路升级——多维最短路
题目:描述每天,农夫John需要经过一些道路去检查牛棚N里面的牛. 农场上有M(1<=M<=50,000)条双向泥土道路,编号为1…M.道路i连接牛棚P1_i和P2_i (1 <= P1_i <= N; 1 <= P2_i<= N). John需要T_i (1 <= T_i <= 1,000,000)时间单位用道路i从P1_i走到P2_i或者从P2_i 走到P1_i 他想更新一些路经来减少每天花在路上的时间.具体地说,他想更新K (1 <=原创 2020-07-30 16:59:08 · 242 阅读 · 0 评论 -
最短路上的统计——Floyd
题目:描述一个无向图上,没有自环,所有边的权值均为1,对于一个点对(a,b)我们要把所有a与b之间所有最短路上的点的总个数输出。输入第一行n,m,表示n个点,m条边接下来m行,每行两个数a,b,表示a,b之间有条边在下来一个数p,表示问题的个数接下来p行,每行两个数a,b,表示询问a,bn<=100,p<=5000输出对于每个询问,输出一个数c,表示a,b之间最短路上点的总个数样例输入5 61 21 32 32 43 54 532 55原创 2020-07-29 18:57:15 · 232 阅读 · 0 评论 -
Roadblocks——SPFA求次短路
题目:描述贝茜把家搬到了一个小农场,但她常常回到FJ的农场去拜访她的朋友。贝茜很喜欢路边的风景,不想那么快地结束她的旅途,于是她每次回农场,都会选择第二短的路径,而不象我们所习惯的那样,选择最短路。 贝茜所在的乡村有R(1<=R<=100,000)条双向道路,每条路都联结了所有的N(1<=N<=5000)个农场中的某两个。贝茜居住在农场1,她的朋友们居住在农场N(即贝茜每次旅行的目的地)。 贝茜选择的第二短的路径中,可以包含任何一条在最短路中出现的道路,并且,一条路可以重复走多原创 2020-07-29 16:38:45 · 360 阅读 · 4 评论 -
Hide and Seek 捉迷藏 USACO 最短路板子题
题目:描述贝茜在和约翰玩一个“捉迷藏”的游戏.她正要找出所有适合她躲藏的安全牛棚.一共有N(2≤N≤20000)个牛棚,被编为1到N号.她知道约翰(捉牛者)从牛棚1出发.所有的牛棚由M(1≤M≤50000)条双向路连接,每条双向路连接两个不同的牛棚.所有的牛棚都是相通的.贝茜认为同牛棚1距离最远的的牛棚是安全的.两个牛棚间的距离是指,从一个牛棚到另一个牛棚最少需要通过的道路数量.请帮贝茜找出所有的安全牛棚.输入第1行输入两个整数N和M,之后M行每行输入两个整数,表示一条路的两个端点.输出原创 2020-07-28 19:03:44 · 227 阅读 · 0 评论 -
方格取数——移动类DP
题目:设有N*N的方格图(N<=10),我们将其中的某些方格中填入正整数,而其他的方格中则放人数字0。如下图所示(见样例 ,黄色和蓝色分别为两次走的路线,其中绿色的格子为黄色和蓝色共同走过的):某人从图的左上角的A点出发,可以向下行走,也可以向右走,直到到达右下角的B 点。在走过的路上,他可以取走方格中的数(取走后的方格中将变为数字0)。此人从A点到B点共走两次,试找出2条这样的路径,使得取得的数之和为最大。输入输入的第一行为一个整数N(表示N*N的方格图),接下来的每行有三个整数原创 2020-07-27 20:42:53 · 240 阅读 · 0 评论 -
数字三角形3——移动类DP
题目:描述一个数字三角宝塔。设数字三角形中的数字为绝对值不超过1000的整数。小K从最顶层走到最底层,每一步可沿向下或右斜线向下走。每走过一个节点他会把这个节点的数字加在自己计数器中。另外他有一次机会,将他的计数器的数清零,他可以在任意时刻使用这次机会。现在小K想知道他到达底层后,计数器中可能的最大的值.输入输入数据的第1 行是数字三角形的行数n,1<=n<=1000。接下来n行是数字三角形各行中的数字。所有数字都小于1000。输出程序运行结束时,将计算出的最大原创 2020-07-27 20:07:23 · 230 阅读 · 0 评论 -
数字三角形2——含绝对值的移动类DP
题目:描述一个数字三角宝塔。设数字三角形中的数字为绝对值不超过1000的整数。现规定从最顶层走到最底层,每一步可沿向下或右斜线向下走。求解从最顶层走到最底层的一条路径,使得沿着该路径所经过的数字的总和的绝对值最大,输出最大值输入输入数据的第1 行是数字三角形的行数n,1<=n<=1000。接下来n行是数字三角形各行中的数字。所有数字都小于1000。输出程序运行结束时,将计算出的最大值输出。样例输入413 24 10 14 3 2 20输出24原创 2020-07-27 19:45:32 · 211 阅读 · 0 评论 -
传球游戏之最小总代价——状压DP
题目:描述n个人在做传递物品的游戏,编号为1-n。游戏规则是这样的:开始时物品可以在任意一人手上,他可把物品传递给其他人中的任意一位;下一个人可以传递给未接过物品的任意一人。即物品只能经过同一个人一次,而且每次传递过程都有一个代价;不同的人传给不同的人的代价值之间没有联系;求当物品经过所有n个人后,整个过程的总代价是多少。输入第一行为n,表示共有n个人(16>=n>=2);以下为n*n的矩阵,第i+1行、第j列表示物品从编号为i的人传递到编号为j的人所花费的代价,特别的有原创 2020-07-26 20:28:31 · 259 阅读 · 0 评论 -
旅行者的背包——分组背包类
题目:描述cici去远游,却发现他的背包不同于01背包,他的物品大致可分为k组,每组中的物品相互冲突,每组至多只能选一个,现在,他想知道最大的利用价值是多少。输入两个数m,n,表示一共有n件物品,总重量为m接下来n行,每行3个数ai,bi,ci,表示物品的重量,利用价值,所属组数1<=m<=1000 1<=n<=1000 组数t<=100输出一个数,最大的利用价值样例输入45 310 10 110 5 150 400 2输出10原创 2020-07-26 17:27:03 · 381 阅读 · 0 评论 -
石子合并2——环状合并DP
题目描述在一个环形跑道上有N堆石子,每次取相邻两堆进行合并最终合并成为一堆。请问将每次合并后的代价进行累加其总和最少为多少输入第一行为石子堆数N,N<=200第二行到第N行,每行一个正整数代表石子数,其小于10000输出一行,表示最小的总得分样例输入44594输出43此题是典型的合并类DP,板子题,它和石子合并1所不同的是这次的跑道是环状的,也就是首尾相连,最后一个可以和最开始一个合并了。所以我们可以将数组开成双倍的,从而达到环的效果。借此机会原创 2020-07-26 17:00:15 · 349 阅读 · 0 评论 -
马的遍历-DFS
题目:Description中国象棋大家都玩过吧!!!现在有只小马迷路了,它现在在0,0位置,它的家在m,n位置(棋盘大小为m*n),现规定小马只能往右走,请聪明的你帮帮小马算一下回到家有几种方案?Input家的位置m,n 比如4,8 1=<m,n<=200Output一个整数即方案数Sample Input4 8Sample Output37...原创 2019-07-10 08:41:50 · 1193 阅读 · 0 评论 -
Floyd最短路径算法
暑假,小哼准备去一些城市旅游。有些城市之间有公路,有些城市之间则没有,如下图。为了节省经费以及方便计划旅程,小哼希望在出发之前知道任意两个城市之前的最短路程。上图中有4个城市8条公路,公路上的数字表示这条公路的长短。请注意这些公路是单向的。我们现在需要求任意两个城市之间的最短路程,也就是求任意两个点之间的最短路径。这个问题这也被称为“多源最短路径”问题。现在需要一个数据结构来存储图的信息,我...转载 2019-06-22 13:49:38 · 590 阅读 · 0 评论 -
图解DFS(深度优先搜索)模拟全过程
DFS搜索是搜索中的一种,即深度优先搜索(Depth First Search),其过程简要来说是对每一个可能的分支路径深入到不能再深入为止,而且每个节点只能访问一次。图示:如图,这是邻接矩阵,我们要从s走到e,且“*”不能走,求所有方案。首先,从s出发,标记s然后通过s只能走到下面一个点,重复几次,我们走到了第一个岔路口。这时,我们有两个方向可以走,先向右走。现在只能...原创 2019-06-09 11:43:49 · 2286 阅读 · 0 评论 -
P3366 【模板】最小生成树
题目描述如题,给出一个无向图,求出最小生成树,如果该图不连通,则输出orz输入输出格式输入格式:第一行包含两个整数N、M,表示该图共有N个结点和M条无向边。(N<=5000,M<=200000)接下来M行每行包含三个整数Xi、Yi、Zi,表示有一条长度为Zi的无向边连接结点Xi、Yi输出格式:输出包含一个数,即最小生成树的各边的长度之和;如果该图不连通则输出orz...原创 2019-06-08 19:45:11 · 181 阅读 · 0 评论 -
图论之最小生成树之Kruskal算法
Kruskal算法,又称作为加边法,是配合并查集实现的。图示:如图,这是一个带权值无向图我们要求它的最小生成树。首先,我们发现在1的所有边上,连到3的边的边权值最小,所以加上这条边。然后在3上,连到4的边权值最小,加上这条边。最后,4连到2的边是最小的,加上这条边。现在,所有点都连通了,所以这个图的最小生成树就是2+2+1=5从上述操作中可以看出,Kruskal算法是...原创 2019-06-08 19:41:15 · 292 阅读 · 0 评论 -
单向公路
题目:描述某地区有许多城镇,但并不是每个城镇都跟其他城镇有公路连接,并且有的公路并不能双向行驶。现在我们把这些城镇间的公路分布及允许的行驶方向告诉你,你需要编程解决通过公路是否可以从一个城镇到达另一个城镇。(我们规定,城镇自己跟自己可互相到达,即 a 可到达 a)。输入第一行只有一个数 N ,下面将跟着 2N 行数据。在前 N 行数据中,每行数据开头第一个数字 number,表明这一行总...原创 2019-06-01 16:15:44 · 374 阅读 · 0 评论 -
关押罪犯
题目:描述S 城现有两座监狱,一共关押着 NNN 名罪犯,编号分别为 111 ~ NNN。他们之间的关系自然也极不和谐。很多罪犯之间甚至积怨已久,如果客观条件具备则随时可能爆发冲突。我们用 “怨气值”(一个正整数值)来表示某两名罪犯之间的仇恨程度,怨气值越大,则这两名罪犯之间的积怨越多。如果两名怨气值为 ccc 的罪犯被关押在同一监狱,他们俩之间会发生摩擦,并造成影响力为 ccc 的冲...原创 2019-05-25 16:24:44 · 556 阅读 · 0 评论 -
P1017 进制转换
题目描述我们可以用这样的方式来表示一个十进制数: 将每个阿拉伯数字乘以一个以该数字所处位置的(值减111)为指数,以101010为底数的幂之和的形式。例如:123123123可表示为 1×102+2×101+3×1001 \times 10^2+2\times 10^1+3\times 10^01×102+2×101+3×100这样的形式。与之相似的,对二进制数来说,也可表示成每个二进制数...原创 2019-04-30 22:02:48 · 360 阅读 · 0 评论 -
P2089 烤鸡
题目背景猪猪hanke得到了一只鸡题目描述猪猪Hanke特别喜欢吃烤鸡(本是同畜牲,相煎何太急!)Hanke吃鸡很特别,为什么特别呢?因为他有10种配料(芥末、孜然等),每种配料可以放1—3克,任意烤鸡的美味程度为所有配料质量之和现在,Hanke想要知道,如果给你一个美味程度,请输出这10种配料的所有搭配方案输入输出格式输入格式:一行,n<=5000输出格式:...原创 2019-04-20 16:25:53 · 611 阅读 · 0 评论 -
洛谷P1015 回文数
题目描述若一个数(首位不为零)从左向右读与从右向左读都一样,我们就将其称之为回文数。例如:给定一个十进制数565656,将565656加656565(即把565656从右向左读),得到121121121是一个回文数。又如:对于十进制数878787:STEP1:878787+787878 = 165165165STEP2:165165165+561561561 = 726726726ST...原创 2019-05-04 16:44:12 · 691 阅读 · 0 评论 -
营救铁达尼号
题目Description铁塔尼号遇险了!他发出了求救信号。距离最近的哥伦比亚号收到了讯息,时间就是生命,必须尽快赶到那里。通过侦测,哥伦比亚号获取了一张海洋图。这张图将海洋部分分化成n * n个比较小的单位,其中用1标明的是陆地,用0标明是海洋。船只能从一个格子,移到相邻的四个格子。为了尽快赶到出事地点,哥伦比亚号最少需要走多远的距离。Input第一行为n,下面是一个n * n的0,1矩...原创 2019-07-16 11:52:04 · 1863 阅读 · 0 评论 -
排队
Description今天,学校老师让同学们排成一队,准备带大家出去玩,一共有 n 名同学,排队的时候同学们向老师提了 m 条要求,每一条要求是说同学 x 一定要排在同学 y 之前,老师现在想找到一种排队方式可以满足所有的要求,你能帮帮他吗?Input第一行两个整数 n,m(1≤n≤10410^4104,1≤m≤10510^5105),表示同学数和要求数;以下 m 行,每行两...原创 2019-05-03 17:22:44 · 263 阅读 · 0 评论 -
危险的工作
题目Description给出一个数字N,N<=11.代表有N个人分担N个危险的工作。每个人对应每个工作,有个危险值每个人担任其中一项,问每个人危险值相加,最小值是多少。Input第一行给出数字N,接下来N行N列第i行第j列,代表第i个人担负第j个工作的危险值是多少Output如题Sample Input310 2 32 3 43 4 5Sample Outpu...原创 2019-07-10 09:01:05 · 360 阅读 · 0 评论 -
Lake Counting
题目:DescriptionDue to recent rains, water has pooled in various places in Farmer John’s field, which is represented by a rectangle of N x M (1 <= N <= 100; 1 <= M <= 100) squares. Each sq...原创 2019-07-10 09:26:47 · 741 阅读 · 1 评论 -
混合背包
题目混合背包Description一个旅行者有一个最多能装V公斤的背包,现在有n件物品,它们的重量分别是W_1,W_2,...,W_nW 1 ,W 2 ,...,W n ,它们的价值分别为C_1,C_2,...,C_nC 1 ,C 2 ,...,C n 。有的物品只可以取一次(01背包),有的物品可以取无限次(完全背包),有的物品...原创 2019-02-12 20:00:25 · 346 阅读 · 2 评论 -
狼和羊
题目:Description米基家的后院养着一群羊,米基由于疲劳睡着了,这时一群饿狼钻进了后院开始攻击羊群,后院是由许多个方格构成的长方形区域,每个方格中用字符‘?’表示空地,‘#’表示栅栏,‘o’表示羊,‘v’表示狼,羊和狼所在的格子都是空地。如果从一个空地A沿着水平方向或垂直方向经过一系列的空地能够到达空地B,则称空地A和空地B属于同一个羊圈。对于能够逃离后院的空地我们认为它不属于任...原创 2019-07-22 09:47:48 · 508 阅读 · 0 评论 -
筛法——欧拉筛和埃式筛(详细至极)
文章目录总埃式筛法欧拉筛总首先,筛法是一种用来判断质数的方法,可以刷出一个质数表,所以也叫刷表法。今天我就来给大家讲两种筛法:埃式筛法和线性筛法。埃式筛法基本思想:一个整数的1以上且为整数倍是一个合数。我们可以从小到大枚举n以内的质数,对其不超过n的倍数进行标记,剩下未标记的数即为质数。基本写法:for (int i=2;i<=n;i++){ if(!vis[i]){ ...原创 2019-07-25 11:11:56 · 1156 阅读 · 0 评论 -
最大约数和
题目:题目描述选取和不超过S的若干个不同的正整数,使得所有数的约数(不含它本身)之和最大。输入格式输入一个正整数S。输出格式输出最大的约数之和。输入输出样例输入 #111输出 #19说明/提示样例说明取数字4和6,可以得到最大值(1+2)+(1+2+3)=9。数据规模S<=1000思路:把它当做01背包来做就行了。s为物品个数和背包容量,c[i]为1至...原创 2019-07-25 09:39:27 · 392 阅读 · 0 评论 -
Knight Moves
题目:Description在一个8*8的棋盘上,一只中国象棋中的马要从一个点跳到另一个点。问最少需要多少步。Input整个测试组由多组数据组成,请做到文件底结束。对于每组数据,前两个坐标代表出发点,后两个代表结束点。注意坐标第一位为a至h中某个字母,第二位为1到8某个数字。Output对于每个测试请输出"To get from xx to yy takes n knight mov...原创 2019-07-17 09:59:11 · 1223 阅读 · 0 评论 -
求n阶乘
题目:Description输入一个正整数n,求n!n!=123*…*nInput输入一个正整数nOutput一行,包行一个整数代表n阶乘的值Sample Input5Sample Output120HINT5=1* 2 * 3 * 4* 5 =120思路:看到这道题,我最先想到了for循环,于是一篇暴力的不能再暴力的的代码出现了。#include <bit...原创 2019-07-12 16:03:03 · 399 阅读 · 0 评论 -
跳房子
题目:Description奶牛按不太传统的方式玩起小朋友玩的跳房子游戏,现给出一个5*5的由数字组成的网格。它们在格子中向前前跳,向后跳,向左跳,向右跳,跳到网格中另一个数字后,又这样继续跳(可能跳到某个已跳过的数字)。一共在网格中跳过五次后,它们经过的格子数组成一个六位数(可能是0开始头的,例如000201).现问所有可以被跳出来的不同整数的总数。Input输入共五行,每行五个数字....原创 2019-07-12 12:00:34 · 501 阅读 · 0 评论 -
自然数的拆分问题
题目:Description任何一个大于1的自然数n,总可以拆分成若干个小于n的自然数之和。Input待拆分的自然数n。Output对于数字N,输出每种拆分方式。拆分方式的排序方式为第一个数字小的在前面,如果第一个数字一样,则看第二个数字,以此类推。Sample Input7Sample Output1+1+1+1+1+1+11+1+1+1+1+21+1+1+1+3...原创 2019-07-07 14:27:40 · 1467 阅读 · 0 评论 -
细胞&求细胞个数
题目:Description一矩形阵列由数字0到9组成,数字1到9代表细胞,细胞的定义为沿细胞数字上下左右还是细胞数字则为同一细胞,求给定矩形阵列的细胞个数。Input整数m,n(m行,n列)1<=N,M<=100Output细胞的个数Sample Input4 100234500067103456050020456006710000000089Sample ...原创 2019-07-16 11:28:00 · 349 阅读 · 0 评论 -
周末舞会
题目:Description假设在周末舞会上,男士们和女士们进入舞厅时,各自排成一队。跳舞开始时,依次从男队和女队的队头上各出一人配成舞伴。规定每个舞曲能有一对跳舞者。若两队初始人数不相同,则较长的那一队中未配对者等待下一轮舞曲。现要求写一个程序,模拟上述舞伴配对问题。Input第一行两队的人数;第二行舞曲的数目。Output配对情况Sample Input4 67Sam...原创 2019-07-15 11:28:16 · 755 阅读 · 0 评论 -
间隔排列
题目:【题意描述】有2N个木块,每个木块标上1到N的自然数中的一个,每个数字会出现在两个木块上。把这些木块排成一排,要求是:标号为i的两个木块之间要间隔i个其它木块。比如说N=3的情况,下面就是一个可行的排列:3,1,2,1,3,2。编程实现,对给定的N,求出一个可行排列。【输入格式】输入只有一行,给出一个数字N,N<=40【输出格式】输出一个满足题意的排列,任两个数字间用一个空...原创 2019-07-14 09:23:50 · 2650 阅读 · 1 评论 -
P1091 合唱队形
题目描述NNN位同学站成一排,音乐老师要请其中的(N−KN-KN−K)位同学出列,使得剩下的KKK位同学排成合唱队形。合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2,…,K1,2,…,K1,2,…,K,他们的身高分别为T1,T2,…,TKT_1,T_2,…,T_KT1,T2,…,TK, 则他们的身高满足T1<...<Ti>Ti+1>…&...原创 2019-05-02 14:44:34 · 138 阅读 · 0 评论