Bestcoder#70

hdu5615-Jam’s math problem
枚举a的因子p和q,c的因子k和m,只需要到sqrt(a)和sqrt(c),然后计算一下qk+mp或者qm+kp是否和b相等。

hdu5616-Jam’s balance
01背包,先计算一遍正常的01背包,即只考虑砝码放在右边的托盘上,再反向计算一遍01背包,即考虑砝码放在左边托盘的情况

hdu5617-Jam’s maze
考虑dp,求回文串,即相当于从(1,1)和(n,n)点出发,走相同的点直到相遇。所以dp[x1][y1][x2][y2]表示(x1,y1)和(x2,y2)相同时,有多少中组合。然后优化,到达(x1,y1)和(x2,y2)的步数是相同的,而且只要知道x1和步数k就可以计算出来y1,即x1-1+y1-1=k,同理可以x2和k计算y2。所以优化为dp[k][x1][x2],
之后发现k只和k-1有关系,所以最终简化为滚动数组。dp[k][x1][x2]=dp[!k][x1][x2]+dp[!k][x1-1][x2]+dp[!k][x1-1][x2+1]+dp[!k][x1][x2+1]。初始dp[0][1][n]=s[1][1]==s[n][n]。最终结果ans=sum(dp[k][i][i])(1<=i<=n),即无论某种方案必在对角线初相交。

hdu5619-Jam’s store
费用流问题,难在建图。把顾客和起点相连,把员工拆成n个点,代表倒数第几个找他来修电脑,顾客和每一个员工每一个点相连,假设与一个员工的倒数第k个点相连,修一个条费用为w[i][j]k
的边,因为在他后面还有k-1个人要等待

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值