03 2019 档案

摘要:传送门完全背包。求最小价值(恰好装满)。有一个存钱罐,里面有很多个硬币,硬币分为很多种类,每种有各自的重量和价值。现在给你每种硬币的信息,和这个存钱罐存的重量,让你猜测里面硬币的最小价值。这个题让求最小价值,所以肯定是必须装满了(结合这个题意也必须是重量恰好... 阅读全文
posted @ 2019-03-31 22:36 CrossingOver 阅读(108) 评论(0) 推荐(0)
摘要:传送门分组背包,需要根据题意稍微转化一下。题中说最多学习课程M天,可视为背包容量;给的矩阵中的每列代表学习花费j天(不是第j天),所以同一行中每列都是互斥的,不能选择超过一个,所以每门课程(每一行)可视为一组,每组内物品最多只能选择一个;另外,这道题中的物品... 阅读全文
posted @ 2019-03-31 21:28 CrossingOver 阅读(167) 评论(0) 推荐(0)
摘要:传送门这道题和1595基本一样,但是有两个根本不同:这道题明确说了有重边这道题说不一定连通对于第一点,用邻接表就好了,在最短路算法中记录前驱,注意,记录的是前驱的边的索引,然后回溯的时候每次删一条边,体会这个循环的写法 for (int x = N; x !... 阅读全文
posted @ 2019-03-30 19:14 CrossingOver 阅读(150) 评论(0) 推荐(0)
摘要:传送门最短路。给一个无向图,随机删去一条边,问你在所有可能的删边情况下的给定两点间的最短路的最大值。想象删的这条边如果不在原最短路上,那么无影响,只有在原最短路上删边才可能会造成最短路的值提升。那么就在原最短路上一条边一条边的枚举好了。这道题说边数MN和N-... 阅读全文
posted @ 2019-03-30 15:16 CrossingOver 阅读(117) 评论(0) 推荐(0)
摘要:传送门最短路。这题瞎扯一大堆废话,其实就是一个有向图,先求从1到其他点的最短路,再求从其他点到1的最短路,上述2(n-1)个最短路的值的和作为答案(题目保证是强连通图)。从其他点到1的最短路,我们不可能把其他每个点都作为起点运行一下,肯定会超时的。这就要用到... 阅读全文
posted @ 2019-03-29 22:41 CrossingOver 阅读(97) 评论(0) 推荐(0)
摘要:由于上一道题涉及了环,所以我当时就在纠结一个问题,强连通图是否一定可以是环形的?(就是说强连通图是否一定是欧拉图?= 是否一定有欧拉回路?= 是否一定有一笔画的环形路线?)现在,我给出答案,不一定。下面所说的欧拉路径(4月4日注:半欧拉图,只有欧拉通路没有欧... 阅读全文
posted @ 2019-03-29 18:47 CrossingOver 阅读(1762) 评论(0) 推荐(0)
摘要:传送门最短路判负环问题。货币交换,通过其他货币汇率相乘最后绕回自己可能会多赚一点。问你所有货币中是不是至少有一种能这样获利。首先,这道题需要判定有没有这样的环(这个环每个边的乘积大于1.0),而且是全图判定,没有什么起点终点。想到大于我们可以知道,这道题需要... 阅读全文
posted @ 2019-03-29 02:09 CrossingOver 阅读(138) 评论(0) 推荐(0)
摘要:模拟题,其实就是字符串的处理。在main函数里处理三种区块,每个区块判别之后再对区块内容做行内处理(调用函数)。区块之间有空行隔开,但是,输入的最后一个区块之后不一定会有空行。第一个空行内需要对其中两种区块(段落、无序列表)作结束处理(因为这两个区块可以是多... 阅读全文
posted @ 2019-03-27 22:09 CrossingOver 阅读(233) 评论(0) 推荐(0)
摘要:传送门最短路。全源最短路,使用floyd。给你很多个矩阵,每个矩阵代表一个点,两点之间有一条有向边(A->C,权值为1)当且仅当A*B=C(矩阵运算),其中A,B,C代表不同的点。然后给很多个查询,每次问你从一个点到另一个点的最短路。主要注意上述A,B,C指... 阅读全文
posted @ 2019-03-26 23:36 CrossingOver 阅读(142) 评论(0) 推荐(0)
摘要:传送门属于动态规划。TSP(旅行商)问题的简化版本,双调旅行商问题。时间复杂度O(n^2)。可以参考这个。给你平面上n个点的坐标,这些点的x坐标依次增大,让你找一条满足这样的性质的最短的路:从1出发,沿着x增大的方向走到n,再沿着x减小的方向走回1,在这途中... 阅读全文
posted @ 2019-03-26 17:08 CrossingOver 阅读(127) 评论(0) 推荐(0)
摘要:传送门最短路。这道题题意比较烦,其实就是成语接龙。给你一个成语的列表(字典)(每个成语用十六进制字符串表示),规定字典的第一个成语和最后一个成语是你完成成语接龙的起点和终点,然后你在字典里面选成语接龙中间的成语,A->B当且仅当A的后四个字符等于B的前四个字... 阅读全文
posted @ 2019-03-25 01:28 CrossingOver 阅读(404) 评论(0) 推荐(0)
摘要:传送门最短路。很简单的一道多起点的求最短路的问题,注意是有向边,会有重边。当然我看到了我自己两年前写的版本是把图倒过来,终点当作起点,起点当作终点,每条边都取反向,从原终点开始dijkstra,然后看看哪个原起点的d最小。。。#include #includ... 阅读全文
posted @ 2019-03-24 16:57 CrossingOver 阅读(98) 评论(0) 推荐(0)
摘要:传送门最短路。涉及到了把求最长路转化为求最短路,还有bellman_ford判断负环(可从起点到,也应可到终点的负环)的问题。这道题比较综合。有最多100个房间,其中有一个是起点有一个是终点,每个房间都有一个能量值([-100,100]),单向的门(有向图)... 阅读全文
posted @ 2019-03-24 14:09 CrossingOver 阅读(142) 评论(0) 推荐(0)
摘要:传送门最短路。很坑的是,这道题没说清楚是不是有向边(其实是无向边),而且还有起点和终点相同的数据。两年前我写的是一个map和一个vector来对地名和下标双向关联,但是现在发现没必要了,只用一个map用来查重就行了,如果让你输出地名之类的才可能需要双向关联。... 阅读全文
posted @ 2019-03-23 16:55 CrossingOver 阅读(258) 评论(0) 推荐(0)
摘要:传送门最短路,只不过有多个开始点和结束点,选一条从任意开始点到任意结束点最短的路。再额外建立一个虚拟开始点和虚拟结束点即可。#include #include #include #include using namespace std;const int I... 阅读全文
posted @ 2019-03-23 16:02 CrossingOver 阅读(197) 评论(0) 推荐(0)
摘要:传送门最短路,没有任何变形,还是中文题。#include #include #include #include #include using namespace std;const int INF = 1e9;const int MAXN = 105;int... 阅读全文
posted @ 2019-03-23 13:47 CrossingOver 阅读(102) 评论(0) 推荐(0)
摘要:传送门最短路。有一个奇怪的电梯,每个楼层有两个数,分别代表从这层坐电梯能往上跑几层或能往下跑几层,层数只在1~N之间生效。问你给定的两层作为出发和到达点,最少坐几次电梯能到。隐含的建图,图上的边的权值是1,代表坐一次电梯,边的两个端点代表两个层,注意是有向边... 阅读全文
posted @ 2019-03-23 13:36 CrossingOver 阅读(77) 评论(0) 推荐(0)
摘要:传送门带权并查集。有N个块,刚开始,每个块自成一堆,下面进行P次操作或查询,操作是指把包含(编号为X的块)的堆整体摞到包含(编号为Y的块)的堆上;查询是指给定某个块编号,问你这个块下面压着几个块。因为在不停变化,这道题需要输入一个查询后立即输出一个结果。有点... 阅读全文
posted @ 2019-03-23 01:34 CrossingOver 阅读(316) 评论(0) 推荐(0)
摘要:传送门有N个人,M个星球,有一个N*M的矩阵,表示某个人是否可以去某个星球。问你这些人能不能全安排到这些星球上?做过了之前的几道题,这道题明显就是网络流了,但是,这道题考了缩点/状态压缩,因为N取值上限太大了,每个人都建一个点会超内存的,考虑M的上限很小(1... 阅读全文
posted @ 2019-03-21 23:17 CrossingOver 阅读(116) 评论(0) 推荐(0)
摘要:传送门带权并查集。有两个人,A先写一个数组(1~N),然后B在不看的前提下挑一个子序列,让A回答子序列的和,这么来M次,其中A会回答一些假话,但这些假话都是可以通过前面的话推断出来真假的那种假话,没法判别真假的话都是真话。问你这些话里面总共多少假话。首先,对... 阅读全文
posted @ 2019-03-21 00:15 CrossingOver 阅读(175) 评论(0) 推荐(0)
摘要:传送门带权并查集,和POJ 1182很像。一个圆形体育场,座椅也是圆形排列的,总共有300列,无穷多行,给你N个观众编号1~N,再给M个安排,每个安排是说B观众所在的列号等于A观众所在的列号加X(从A到B顺时针),如果某个安排与前面的安排冲突,那么这个安排就... 阅读全文
posted @ 2019-03-20 17:22 CrossingOver 阅读(103) 评论(0) 推荐(0)
摘要:传送门带权并查集。有N个龙珠和N个城市,刚开始是按照编号一一对应的,后来有些龙珠跑到别的城市去了。给你Q句话,分为事实和查询,事实是T A B : All the dragon balls which are in the same city with A ... 阅读全文
posted @ 2019-03-19 21:57 CrossingOver 阅读(102) 评论(0) 推荐(0)
摘要:传送门有N个顾客,每个顾客需要一些烤串,每个烤串的制作时间不同(一个顾客内是相同的),每个顾客有一个开始时间和截止时间,在小于等于截止时间的时候完成。这个老板可以最多同时烤M串,可以把一个串分为多个不连续的时间段来烤,甚至可以把一个串分为多个部分(根据时间划... 阅读全文
posted @ 2019-03-18 22:41 CrossingOver 阅读(100) 评论(0) 推荐(0)
摘要:传送门这道题应用了网络流,主要考的是怎么转化为网络流求解,重点是怎么建图。题意是给你一个n*m网格,每个格子可能有一个柱子,也可能没柱子,每个柱子上有一个最大跳出次数,用完了这个柱子就废了,每个柱子上可能有一个蜥蜴(也可能没有,但只能最多存在一个(不仅初始是... 阅读全文
posted @ 2019-03-14 21:06 CrossingOver 阅读(91) 评论(1) 推荐(1)
摘要:传送门作业调度,这道题还真没想到能用网络流。。。。乍一看跟背包问题差不多。有N个作业,M个机器,每个作业给你一个耗费时间(时间段)以及最早开始时间和最晚完成时间(这两个是时间点),单位是天。一个作业同时只能被一个机器做,一个机器同时也只能做一个作业,但是,可... 阅读全文
posted @ 2019-03-13 23:47 CrossingOver 阅读(122) 评论(0) 推荐(0)
摘要:传送门基础网络流,这次使用一下dinic算法,BFS+DFSBFS负责找一个流量可行(仅关注当前边)的层次图,DFS在层次图基础上找增广路,而边上流量的更新在DFS的回溯过程中负责。上述过程重复直到汇点(sink)在BFS层次遍历后不可达。DFS有两种写法,... 阅读全文
posted @ 2019-03-10 22:19 CrossingOver 阅读(142) 评论(0) 推荐(0)
摘要:传送门无向图,给定起点终点,找一条点权极值相差最小的路,在此基础上找最短路。下面的代码思想是对差值进行二分,因为题目要求差值最小。差值最小是0,差值最大是输入的最大值减最小值。我们取某个差值作为限制条件,拿这个差值来限制最短路算法寻找下一个点的过程。我想到的... 阅读全文
posted @ 2019-03-09 00:18 CrossingOver 阅读(89) 评论(0) 推荐(0)
摘要:传送门这道题是典型的 带权并查集。思想很巧妙,关键是怎么处理已有的事实来确定当前话的真假,关键是怎么存储已有事实,答案存储是在一颗颗边带权的树里,树是有向边,每条有向边上的权值表示上下结点的关系(也就是这两只动物的关系,到底是一样?还是A吃B?还是B吃A?)... 阅读全文
posted @ 2019-03-07 20:22 CrossingOver 阅读(111) 评论(0) 推荐(0)