二模15day1解题报告

T1.合并序列(minval)

    给出长为 n的AB两个序列求两两相加中最小的n个。

据说有证明(在蓝书上,优先队列部分)先把A[1~n]+b[1]入队,然后每取一个a[x]+b[y]就把a[x]+b[y+1]入队,取n个即可。

 

 

T2.抓犯人(catch)

给出T组数据,每组n个点m条边判断是否为二分图。

用dfs染色判断,但是直接染色可能会被卡掉,所以要剪枝。如果采用bfs判断会好一些。。。。其实呢,用can[i][j]表示第i个城市能否在j(0或1,表示奇数偶数)。然后只要判断每个城市的can[][0]或can[][1] 是否都为1即可(即奇数天或偶数天能否到达所有城市)。

 

T3.收费站(cost)

N个点m条边每个点有点权f[i],每条边有边权c[i],要求一条u到v的路径使得边权和不超过s,点权最大值最小。

显然先二分答案,然后对两端点都不超过mid的边进行spfa。(注意:先对最大点权bfs,若无法到达v则先输出-1,免得后面重复判断)然而直接spfa只有90分,所以需要用SLF优化(LLL太难写)。优先队列双向队列问题都不大。

转载于:https://www.cnblogs.com/zcyhhh/p/6073887.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值