<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[William_Fangs的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/William_Fangs</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; William_Fangs]]></copyright><item><title><![CDATA[树链剖分学习笔记]]></title><link>https://blog.youkuaiyun.com/William_Fangs/article/details/102606580</link><guid>https://blog.youkuaiyun.com/William_Fangs/article/details/102606580</guid><author>William_Fangs</author><pubDate>Thu, 17 Oct 2019 14:47:32 +0800</pubDate><description><![CDATA[私以为树链剖分的讲稿中秦淮岸的笔记最好
笔记
稍稍做个补充，边树剖怎么做呢?
将边的值赋给子节点,查询时若x,y为同一点,则直接返回即可。

]]></description><category></category></item><item><title><![CDATA[可持久化线段树学习笔记]]></title><link>https://blog.youkuaiyun.com/William_Fangs/article/details/102470364</link><guid>https://blog.youkuaiyun.com/William_Fangs/article/details/102470364</guid><author>William_Fangs</author><pubDate>Wed, 09 Oct 2019 21:41:23 +0800</pubDate><description><![CDATA[本文主要阐述自己对可持久化线段树的一些理解
可持久化线段树是一种数据结构，用于查询线段树的历史版本
实现基础在于，对于线段树的单点修改，每次只需改动logn（树高）个节点的信息，即可记录新的线段树的所有信息
如何实现？
首先建一棵线段树，这是最初版本，记为preprepre。
当对这棵线段树进行修改时，新建一个节点，在此记为 ppp
将pre的信息copy到p中去；
从初始节点开始下沉,如果修改位...]]></description><category></category></item><item><title><![CDATA[C++的卡常技巧]]></title><link>https://blog.youkuaiyun.com/William_Fangs/article/details/100181260</link><guid>https://blog.youkuaiyun.com/William_Fangs/article/details/100181260</guid><author>William_Fangs</author><pubDate>Sun, 01 Sep 2019 16:38:25 +0800</pubDate><description><![CDATA[C++的一系列卡常技巧 register 的运用 register 相当于一种“暗示”，它暗示你的内存cache这个变量将会频繁使用，使得你的cache存下该变量以便直接调用，常用于各种循环中 如 for(register int i=1;i&lt;=n;i++) { } ++i与i++ 在分别进行两种操作时,不同于++i，i++将会先把i的值在内存中存下再运用，一般花费时间是++i的1.5倍左右，常用于循环(据说现在不少编译器已经将此优化 ） 如 for(int i=1;i&lt;=n;++i) { } ]]></description><category></category></item><item><title><![CDATA["~"运算符在C++中的作用]]></title><link>https://blog.youkuaiyun.com/William_Fangs/article/details/89503590</link><guid>https://blog.youkuaiyun.com/William_Fangs/article/details/89503590</guid><author>William_Fangs</author><pubDate>Wed, 24 Apr 2019 21:39:55 +0800</pubDate><description><![CDATA[我们在学习新的知识或是观看某些代码时常常看到 “~” 的符号，它是什么意思，有什么作用呢？
1：“~”的作用
“~”的解释为：对某一常数转化为二进制时对各位进行取反，是一种位运算。
举个例子  “4”的二进制码为 “100” 取反之后——》变为 “011”同时正负颠倒，于是“~4”在数值上等于“-5”；
同理“~1046”=“-1047” ，“~0”=“-1”，
等等。
细心的读者已经发现了 “~...]]></description><category></category></item><item><title><![CDATA[洛谷P1795无穷的序列 题解（暴力）]]></title><link>https://blog.youkuaiyun.com/William_Fangs/article/details/89431965</link><guid>https://blog.youkuaiyun.com/William_Fangs/article/details/89431965</guid><author>William_Fangs</author><pubDate>Sun, 21 Apr 2019 13:42:30 +0800</pubDate><description><![CDATA[题目描述
有一个无穷序列如下：
110100100010000100000…
请你找出这个无穷序列中指定位置上的数字
输入输出格式
输入格式：
第一行一个正整数N，表示询问次数；
接下来的N行每行一个正整数Ai，Ai表示在序列中的位置。
输出格式：
N行，每行为0或1，表示序列第Ai位上的数字。
说明
对于100%的数据有N≤1500000，Ai≤10^9
解析：
看到本题的第一眼，我就想起了初中...]]></description><category></category></item></channel></rss>