1、本网站免费注册后即可以下载,点击开通VIP会员可无限免费下载!
2、资料一般为word或PPT文档。建议使用IE9以上浏览器或360、谷歌、火狐浏览器浏览本站。
3、有任何下载问题,请联系微信客服。
扫描下方二维码,添加微信客服
选修5 人工智能初步《第四单元 机器如何解难题 第二节 趣味数学问题 斐波那契函数的程序设计》优秀教案
建一个辅助数组,用来记录每一个位置上的变化。如【L R】区间,在c[L]处加上K,在C[R+1]处减去一个k。最后求序列每个位置变成了多少,只需要求数组的前缀和,然后和原数组按位相加。
二、树上差分:
两种:
1、树上点的差分:在一条树上路径(x,y)的各个点的权值上增加和减小k;
2、树上边的差分:在一条树上路径(x,y)的各个边的权值上增加和减小k;
树上点的差分:维护一个数组sum,每次经过一条路径,让sum[x]++,sum[y]++;sum[lca(x,y)]--;
sum[f[lca(x,y)][0]]--;最后跑 dfs把sum数组推上去。
树上边的差分:sum[x],sum[y]记录点到边出现的次数,sum[x]++;sum[y]++;sum[lca(x,y)]-2;跑dfs 从叶子结点推上去,得到结果。
注意:lca 倍增法求最近的公共祖先。
例题:
松鼠的新家(洛谷p3258)
运输计划(洛谷2680)
疫情控制(洛谷p1084)