摘要: 传送门 sbw太神啦orz 首先N<=20可以直接暴搜 然后玄学剪枝可以过18个点 那么N<=40的时候,就把它拆成两半分别暴搜,再用dp拼起来 对于前半段,设f[i][j]是开始高度为i,获得金币为j的方案数;对于后半段,设g[i][j]是结束高度为i,获得金币为j的方案数(离散化一下高度) 然而 阅读全文
posted @ 2018-11-01 09:08 Ressed 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 我当然想选最大的子段和啦 但要选M次 那不一定就是最好的 所以提供一个反悔的选项,我选了一段以后,就把它们乘个-1,然后再选最好的(类似于网络流的思路) 这个可以用线段树来维护,记一个区间包含左端点/右端点的最大值、最小值(因为要乘-1),还有它们的端点位置 然后一直找 直到最大值<=0 阅读全文
posted @ 2018-11-01 08:55 Ressed 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 我每次都想选那个最大的、或者是它旁边的两个一起选,如果这两个一起选会大于那个最大的的话 那我就先把那个最大的选了,再提供一个反悔的选项(类似于网络流的思路?),就是我可以再把种的树换成它旁边那两个,也是相当于又多种了一个,这个的权值是v[l]+v[r]-v[x] 所以用一个双向链表维护这个l、r,用 阅读全文
posted @ 2018-11-01 08:48 Ressed 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 并查集,不仅记fa,还记与fa的距离,还记根对应的尾节点 路径压缩的时候更新那个距离就行了 阅读全文
posted @ 2018-11-01 08:42 Ressed 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 设f[i][j]是到第i位 已经匹配上了j位的状态数 然后通过枚举下一位放0~9,可以用kmp处理出一个转移的矩阵 然后就可以矩阵快速幂了 阅读全文
posted @ 2018-11-01 08:40 Ressed 阅读(159) 评论(0) 推荐(0) 编辑