<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[wang_wins的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/wang_wins</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; wang_wins]]></copyright><item><title><![CDATA[Codeforces Round 911 (Div. 2) D题]]></title><link>https://blog.youkuaiyun.com/wang_wins/article/details/134649106</link><guid>https://blog.youkuaiyun.com/wang_wins/article/details/134649106</guid><author>wang_wins</author><pubDate>Mon, 27 Nov 2023 17:30:51 +0800</pubDate><description><![CDATA[为了避免ans[2x]、ans[3x]对于x的重复减去，所以我们计算贡献消除的时候，从大到小枚举当前处理的gcd，对其进行贡献个数消除，最后的ans[x]表示的就是x = gcd做出的贡献个数。那么gcd(a,b)的贡献就是gcd(a,b)*（数组中>=max(a,b)且不等于a、b的数字的个数)。设num[x] = 已经枚举出的x的倍数的个数，vis[x] = 数组中y的个数，dz[y] = 数组中>=y的个数。定义gcd(a,b,c)为(a,b,c)中最小的两个数的gcd。]]></description><category></category></item><item><title><![CDATA[CodeTON Round 7 (Div. 1 + Div. 2, Rated, Prizes!) E题]]></title><link>https://blog.youkuaiyun.com/wang_wins/article/details/134631944</link><guid>https://blog.youkuaiyun.com/wang_wins/article/details/134631944</guid><author>wang_wins</author><pubDate>Sun, 26 Nov 2023 20:21:46 +0800</pubDate><description><![CDATA[处理方法：询问vi时，将vi+n，就变成了vi>=i问题，需要查询区间(i,vi+n)，那么我们也需要对[n+1,2*n]区间进行维护，维护影响跳过次数的点。进行维护时，考虑影响跳过次数的点，可以发现点是满足该点目标节点在该点右侧，即某一点，i属于[n+1,2*n]，v[i]+n >= i。对于i到vi的路径上，假如某个点可以跳过，那么这个点一定初始位置j>i，否则该点一直在i点左侧，无法被i点跳过；最后该点的vj也需要>=j，否则该点无法在i跳到vi之前，跳到vj，对于vi做出贡献。]]></description><category></category></item></channel></rss>