题意:有n个城市,m条航线,每条航线都有一个权值,并且还多了k次免费航行的机会,求1~n的最短路; 做法:分层图+最短路; 1.分层图;因为多了k次免费航行,所以可以考虑建出k+1个图,然后跑一遍最短路; 2.最短路;既然能写分层图,那么最短路应该都会了吧,可以用 dijkstra 或 SPFA ; ...
分类:
其他好文 时间:
2019-09-07 10:38:21
阅读次数:
59
SET bzoj2761: [JLOI2011]不重复数字 这题。。。 count() 的用法,返回这个值出现的次数,但是在set里只会出现0次和1次,这个可以判断某个值是否在set里出现过 代码 1 #include <bits/stdc++.h> 2 #define nmax 50005 3 4 ...
分类:
编程语言 时间:
2019-09-01 14:46:17
阅读次数:
102
题面 https://www.luogu.org/problem/P4568 题解 英才计划的时候,等考试之前打的(话说我怎么没看到我女神呢) ...
分类:
其他好文 时间:
2019-07-31 18:30:09
阅读次数:
85
传送 gg给的题解 这道题的k很小,把k看作一种状态,可以考虑用分层的方法解决。 把每个点分成k个,dis[x][k] 代表使用了k次免费机会,到达x的最短距离。 从u到v,可以不使用免费机会,费用为val,或者使用免费机会,边权为0。 那么连边的时候,每条边实际要连2*(k+1)条:(i = 0~ ...
分类:
其他好文 时间:
2019-05-21 21:11:37
阅读次数:
128
题解 题目大意:给出N个数,要求把其中重复的去掉,只保留第一次出现的数。最后按顺序输出N <= 50000 然这题是个哈希的典型题目 HASH,我对于它的理解就是一个桶%一个数,当然并不是如此,有很多更好的HASH函数可以更好的减少冲突,例如非十进制数等。 HASH一般用来处理一个元素是否在一个集合 ...
分类:
其他好文 时间:
2019-02-19 20:05:46
阅读次数:
217
题面 "题面" 题解 这题不是很难,因为删代价的次数不多,因此我们只需要将最短路中的状态加一维表示已经删了几次,再转移即可 include using namespace std; define R register int define AC 11000 define ac 130000 int ...
分类:
其他好文 时间:
2019-02-07 09:15:27
阅读次数:
147
题目描述 Alice和Bob现在要乘飞机旅行,他们选择了一家相对便宜的航空公司。该航空公司一共在nn个城市设有业务,设这些城市分别标记为00到n-1n?1,一共有mm种航线,每种航线连接两个城市,并且航线有一定的价格。 Alice和Bob现在要从一个城市沿着航线到达另一个城市,途中可以进行转机。航空 ...
分类:
其他好文 时间:
2018-11-03 02:24:09
阅读次数:
221
https://www.luogu.org/problemnew/show/P4568 题目中 k 的大小只有 10,我们可以考虑建立分层图跑最短路 相同层中 a b 的权值仍为 val,不同层中 a b 的权值为 0,相当于免费乘坐了一次飞机 写一个最短路就可以啦 cpp include defi ...
分类:
其他好文 时间:
2018-10-28 19:26:59
阅读次数:
156
"传送门" 看到免费次数$k$最多只有10,可以考虑构建$k+1$层的分层图,即每一层正常连边,上下两层对应点连边权为0的单向边,最后对所有层里面的$di_t$取$\max$救星了 ...
分类:
其他好文 时间:
2018-10-10 23:40:09
阅读次数:
183
Description Alice和Bob现在要乘飞机旅行,他们选择了一家相对便宜的航空公司。该航空公司一共在nn个城市设有业务,设这些城市分别标记为$0$到$n?1$,一共有$m$种航线,每种航线连接两个城市,并且航线有一定的价格。 Alice和Bob现在要从一个城市沿着航线到达另一个城市,途中可 ...
分类:
其他好文 时间:
2018-10-07 12:12:39
阅读次数:
145