哈尔滨水题报告

在网上观战的时候群里算法都说的差不多了,然后杭电把题目挂出来以后和君爷又去做了下,据tracyzhu说知道算法以后再去做要损RP的,希望RP别降太多。基本把水题搞完了,还剩下一个3D凸包,一个DLX和一个O(n)DP,有空再去搞,斜率优化DP基本看完了,过几天估计就能a掉了。

A:

树形DP,treedp(cur,flag)表示访问到cur点,flag为1Alice走取最小的,0表示Bob走取最大的。

做的时候被时限恶心到了,用vectorTLE,改成临接表还是TLE,最后用输入外挂1000msa掉的,不用输入外挂的话把算到根节点距离的那个dfs集成到树形dp里也能1900ms卡过

B:

贪心,排序,a从大到小,b从小到大取过来。如果没听群里讨论的话有可能也会跳进匹配这个坑里。

C:

3D凸包不会

D:

DLX不会

E:

推公式,dp[i][k]=dp[i-1][k]*(k+1)+dp[i-1][k-1]*(i-k);

dp[i][k]放完前i个数产生k个e-value的个数,由两部分构成:

首先因为i当前是最大的所以i怎么放e-value都不会减少

1.

   前i-1个数已经有了k个e-value,然后第i个数放到i这个位置上e-value不会增加,放到前面已经产生k个e-value的地方上e-value也不会增加,所以第i个可以放k+1个位置,即dp[i-1][k]*(k+1);

2.

 前i-1个数只有k-1个e-value,所以i这个数放下去必须多出一个e-value,那就只能放到前i-1个位置中没有产生e-value的地方使其多出一个e-value来,可以放i-1-(k-1)个,即dp[i-1][k-1]*(i-k);

F:

10个点的最短路,floyd即可

G:

差分约束

题目要求是否存在2个数组a,b使得L=<a[i]*map[i][j]/b[j]<=U,两遍取对数变成:

log(L)<=log(a[i])+log(map[i][j])-log(b[j])<=U,这样就直接可以套差分约束方程了。

构图:

H:

 凸费用流,由于流量最多为5,可以将边拆开为(1,1)(1,3)(1,5)(1,7)(1,9)的边,由于是最小费用流,所以每次先流费用小的,要流(1,3)这条边的话(1,1)肯定已经先流过了,这是容量为2,费用为2^2,别的同理。。

I:

积分,君爷用龙贝格搞的,不解释,据说有O(1)的公式??

J:

几乎就是原题,USACO Monthly,March,2008 Gold,斜率优化DP,还没写过。。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值