您的位置:首页 > 理论基础 > 计算机网络

2016 计蒜之道 复赛 一些简单题的Solution

2016-07-04 07:34 633 查看
首先恭喜ShinFeb大神A4题险些前50

然后恭喜unicornt大神在罚时遥遥领先的情况下最后一题怒WA5次排在了我后面

E:微信钱包付款

Description

微信支付是腾讯公司的支付业务品牌,以绑定银行卡的快捷支付为基础,为用户提供安全、快捷、高效的支付服务。小 Q 和他的两位好朋友一起去吃大餐,吃完后小 Q 打开微信,扫了商家提供的二维码,用微信完成了支付。现在三个人要分摊下饭钱,每个人分别需要支付a 元,b元和c元,定义f(x)为数字 xx 的各位数字之和,例如f(123)=1+2+3。现在三个人想找到一种分摊方案,使得 f(a)=f(b)=f(c)。

Solution

首先大胆猜测只有当n≡0 (mod 3)时才有解。或者随便打个表找下规律。

关于怎么构造:首先你可以知道每个数字的数字和了,设它为k

然后对于数字n,我们从右往左扫,扫到一个数字和是k/3的时候换下一个数字。

如126:首先获得了12,然后3,最后3.

在如123456789,首先获得了12345,然后672,然后69

这样满足了f(a)=f(b)=f(c),然而不满足a+b+c=n。

其实没什么,在后面补个0就好了。

如126:120 3 3

如123456789: 123450000 6720 89

可以AC了。

F: 菜鸟物流的运输网络

Description

菜鸟物流有自己的运输网络,网络中包含n个城市物流集散中心,和m对城市之间的运输线路(线路是双向的)。菜鸟物流允许淘宝卖家自行确定包裹的运输路径,但只有一条限制规则:不允许经过重复的城市。淘宝卖家小明从a 城市寄出快递后,希望包裹在mid 城市进行包装加工以后再寄往 b 城市。

现在小明希望算出一个满足他需求的合法运输路径,你可以帮他算出来么?

已知这样的方案一定存在。请为小明输出任意一个可行方案。

Solution

在比赛刷到网络流有种泪奔的冲动==

然而这题尼玛神似SPOJ952

以mid为src,a和b向sink连边,每个点都拆点,连一条边权为1的边,跑一下最大流。

关于怎么找路径,以mid开始向增广后边权为1的点推进即可。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息