<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[sidnee的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/sidnee</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; sidnee]]></copyright><item><title><![CDATA[志愿计算的两个项目]]></title><link>https://blog.youkuaiyun.com/sidnee/article/details/114993195</link><guid>https://blog.youkuaiyun.com/sidnee/article/details/114993195</guid><author>sidnee</author><pubDate>Fri, 19 Mar 2021 00:41:15 +0800</pubDate><description><![CDATA[概要
志愿计算是大家当志愿者提供自己的计算资源来帮助主办方计算大型科研项目的一种分布式计算。我去中国分布式计算总站上少了两个志愿计算的项目参加了一下试了试。大部分的志愿计算项目都是在BOINC（Berkeley Open Infrastructure for Network Computing）平台上建立起来的。
BOINC

本来加大伯克利分校是打算分析射电天文望远镜捕获的信号来找外星人的（SETI），但计算量很大，是计算密集型任务，要发动广大世界人民一起当志愿者提供计算资源。所以伯克利开发了BOINC平]]></description><category></category></item><item><title><![CDATA[大乱斗的魏晋南北朝梳理]]></title><link>https://blog.youkuaiyun.com/sidnee/article/details/111461336</link><guid>https://blog.youkuaiyun.com/sidnee/article/details/111461336</guid><author>sidnee</author><pubDate>Sun, 20 Dec 2020 20:44:16 +0800</pubDate><description><![CDATA[魏晋南北朝时期是中国历史上一段历时400多年的大乱斗时代。中原极度动荡，加上北方少数民族的掺和，军阀割据，政权更迭频繁，不多久就弄一场军变。所以我大致想清了这段历史的发展过程，记录一下。
三国（229-280）
190年左右，汉朝的中央集权统治崩溃，各方势力开始拼命做大，打架。经过208年赤壁之战，219年关羽大意失荆州等经典事件后。

220年曹丕篡汉称帝；
221年刘备称帝；
229年孙权称帝，三国正式开始（而这貌似是三国演义小说的末尾）。

三国中后期司马氏逐渐架空了曹魏统治集团。之后曹魏灭掉了刘禅的]]></description><category></category></item><item><title><![CDATA[java web抛出http状态码301重定位问题]]></title><link>https://blog.youkuaiyun.com/sidnee/article/details/111459728</link><guid>https://blog.youkuaiyun.com/sidnee/article/details/111459728</guid><author>sidnee</author><pubDate>Sun, 20 Dec 2020 18:06:34 +0800</pubDate><description><![CDATA[问题：
这几天弄app搞得焦头烂额。想整过来nasa的火星照片。得到JSON数据后解析出图片本身的url，然后就出大问题了。

先是告诉我不能传输未加密的数据。这个是SDK版本太高的问题，在mainfest.xml的application标签里加上android:usesCleartextTraffic="true"就完了。
完了java抛出  java.io.IOException: 告诉我permanently removed。然而我用浏览器直接打开图片网址好好的。卧槽我TM直接崩溃。做个实验真就每一步]]></description><category></category></item><item><title><![CDATA[CFround679div1b.Roads and Ramen]]></title><link>https://blog.youkuaiyun.com/sidnee/article/details/109281541</link><guid>https://blog.youkuaiyun.com/sidnee/article/details/109281541</guid><author>sidnee</author><pubDate>Mon, 26 Oct 2020 00:20:51 +0800</pubDate><description><![CDATA[题目链接
https://codeforces.ml/contest/1434/problem/D
题解
这题全场最傻逼题。比a题水到不知哪里去了。然鹅我想多了,考场想了很复杂的方法结果写挖了，完了又莽了一发基于这种方法的n方暴力，pp了。最后system testing不出意外的TLE了。

直接每个数填到他前面离他最近的空闲的地方就行了。如果填完发现不行，那无论如可也不行。为什么呢？不行是因为某次取数的时候，取得不是最小值。也就是当前最小值填的太靠前了，因为之后的空闲位置都被别的填满了。而造成这种局面的]]></description><category></category></item><item><title><![CDATA[ccpc2020秦皇岛Kingdom‘s Power（贪心）]]></title><link>https://blog.youkuaiyun.com/sidnee/article/details/109269729</link><guid>https://blog.youkuaiyun.com/sidnee/article/details/109269729</guid><author>sidnee</author><pubDate>Sun, 25 Oct 2020 10:13:32 +0800</pubDate><description><![CDATA[题意
题意是在树的根节点有无数个军队。每周可以命令仅一只军队沿一条边移动。文最短多久可以占领整棵树。
题解
这个我是贪心做的。可以发现，如果从某个叶子A走向下一个叶子B，如果lca(A,B)到A的距离比更到lca的距离大的话，就不能从A往回走，要再来一支新的军队。有几个贪心的原则。

首先明确的是，当某只军队占领某个叶子结点后，他如果有多种从某个公共祖先去别的叶子结点，	且进入那些叶子结点就回不上去（由于太深）的走法，此时有几种选取下一个叶子的方法且互不相交，应该选哪个呢？应该选公共祖先最远离根的那个。应为]]></description><category></category></item><item><title><![CDATA[反尼姆游戏（anti-Nimm）]]></title><link>https://blog.youkuaiyun.com/sidnee/article/details/108944113</link><guid>https://blog.youkuaiyun.com/sidnee/article/details/108944113</guid><author>sidnee</author><pubDate>Tue, 06 Oct 2020 21:34:22 +0800</pubDate><description><![CDATA[题目描述
Alice and Bob are playing game of Misère Nim. Misère Nim is a game playing on k piles of stones, each pile containing one or more stones. The players alternate turns and in each turn a player can select one of the piles and can remove as many stones f]]></description><category></category></item><item><title><![CDATA[ICPC2018西南欧洲赛区F. Paris by Night（极角排序）]]></title><link>https://blog.youkuaiyun.com/sidnee/article/details/108934073</link><guid>https://blog.youkuaiyun.com/sidnee/article/details/108934073</guid><author>sidnee</author><pubDate>Mon, 05 Oct 2020 23:10:28 +0800</pubDate><description><![CDATA[题目链接
https://codeforces.com/gym/102465/problem/F
题解
思路很简单。枚举一个定点，完了一这个点为原点把其他点极角排序。然后按极角序枚举第二点形成分界边。这样直线一边包含的点是可以单调维护的。设置左右两个指针，分别是在当前分界向量（有第一点指向第二点）逆时针旋转180的点的起始和终止（像单调队列）。在边的一侧可以用向量叉积与0的关系来看。如果向量旋转角度是小于180的话，按右手定则叉积大于0。注意要弄两遍循环一下，因为可能转弯一圈回来了。可以当做极角排序的板子。]]></description><category></category></item><item><title><![CDATA[LightOj1296Again Stone Game（手推SG函数）]]></title><link>https://blog.youkuaiyun.com/sidnee/article/details/108913796</link><guid>https://blog.youkuaiyun.com/sidnee/article/details/108913796</guid><author>sidnee</author><pubDate>Sat, 03 Oct 2020 21:52:31 +0800</pubDate><description><![CDATA[题意
把Nimm游戏的任意改成每次取的数量不超过当前的一半。
题解
暴力递推SG函数的话复杂度是O(nm2)O(nm^2)O(nm2)，n是堆数，m是堆的大小。稍微思考（实际上我是打表找规律发现的）可以发现，状态k和状态2k+1拥有相同的SG值，而偶数的SG值是它除以2。所以对于一个奇数，把他减1在除以2，一直到变为偶数，SG值就是这个偶数除以2。注意开始的几项不太一样，要特判。
AC代码
#include &lt;bits/stdc++.h&gt;

using namespace std;
int n;]]></description><category></category></item><item><title><![CDATA[ICPC2019台北L-Largest Quadrilateral（求凸包+单调队列）]]></title><link>https://blog.youkuaiyun.com/sidnee/article/details/108908657</link><guid>https://blog.youkuaiyun.com/sidnee/article/details/108908657</guid><author>sidnee</author><pubDate>Sat, 03 Oct 2020 11:15:30 +0800</pubDate><description><![CDATA[文章目录题目链接模板题意题解AC代码
题目链接
https://codeforces.com/gym/102460/attachments
模板
这个题可以学会O(nlogn)求外围凸包的模板。
题意
给一堆点，选出四个点使得按某种顺序连接这4个点的四边形面积最大。点数是4096，大概是n方的复杂度。
题解

首先这个最大的四边形应该是个凸四边形。只有当最大凸包上只有3个点时才可能是凹四边形。如果是图凸包只有3个点，那就随便乱搞了。凸包上的3个点必选，我是枚举剩下不在凸包上的点作为第四个点，完了看看哪种连接]]></description><category></category></item><item><title><![CDATA[hdu6892Lunch(CCPC2020网络赛)SG定理]]></title><link>https://blog.youkuaiyun.com/sidnee/article/details/108883210</link><guid>https://blog.youkuaiyun.com/sidnee/article/details/108883210</guid><author>sidnee</author><pubDate>Thu, 01 Oct 2020 16:09:54 +0800</pubDate><description><![CDATA[文章目录题目链接题解
题目链接
http://acm.hdu.edu.cn/showproblem.php?pid=6892
题解

把一个数分成偶数组，子状态的SG值一定是0。因为偶数个相同数异或和一定为0。所以所有分成偶数的情况在状态树上等效为一种SG值是0的情况(即走到必败态)。
分成奇数组，子状态SG值相当于除以这个奇数得到的因数的状态的SG值。等效于拿掉任意个数的奇数质因数。


...]]></description><category></category></item><item><title><![CDATA[博弈论和SG定理详解]]></title><link>https://blog.youkuaiyun.com/sidnee/article/details/108814522</link><guid>https://blog.youkuaiyun.com/sidnee/article/details/108814522</guid><author>sidnee</author><pubDate>Sat, 26 Sep 2020 19:14:39 +0800</pubDate><description><![CDATA[文章目录博弈简介Nimm GameSG函数SG定理SG理论在基本Nimm Game的体现SG定理的理解与证明
博弈简介
有很多经典博弈模型，想都看是不可能的，简单列举如下：

Bash Game
Fibonacci’s Game（要借助Zeckendorf定理）
Wythoff Game（要借助Betty定理）
还有最重要的Nimm Game，一类最基本的组合游戏（借助SG定理）

所有博弈的基本思想都是一样的，都是先手想要赢，就必须尽力维持在自己操作后，所达到的局面能满足某些特殊的性质，而这些性质是终结态]]></description><category></category></item><item><title><![CDATA[搞技术的人生技巧——装贪财]]></title><link>https://blog.youkuaiyun.com/sidnee/article/details/108363654</link><guid>https://blog.youkuaiyun.com/sidnee/article/details/108363654</guid><author>sidnee</author><pubDate>Wed, 02 Sep 2020 16:35:00 +0800</pubDate><description><![CDATA[很多君王都在做皇帝后大杀功臣，比如汉高祖刘邦，唐中宗李显，明太祖朱元璋等。历史上有一些装贪财而成功全身而退的例子。因为比起钱，一个统治君王跟担心的是他的权力。


战国四大名将之一——王翦。

当时老将王翦已经帮助秦国横扫天下，只剩楚国苦苦支撑。第一次伐楚的秦将李信率领二十万大军同楚国名将项燕对峙，结果大败而回。嬴政不得已又派出了老将王翦。
王翦开口就问嬴政要60万大军。秦赵长平之战，白起坑杀赵军40万，赵国军队就几乎死完了，很快就被灭掉了。当时全国的人口可能也就几百万，所以60万在当时是个天文数字，是秦国]]></description><category></category></item><item><title><![CDATA[计算机和抑郁症]]></title><link>https://blog.youkuaiyun.com/sidnee/article/details/108362383</link><guid>https://blog.youkuaiyun.com/sidnee/article/details/108362383</guid><author>sidnee</author><pubDate>Wed, 02 Sep 2020 15:35:10 +0800</pubDate><description><![CDATA[可能抑郁的原因

作为一个学计科的学生，很容易得抑郁症。这个我感觉可能有几点起因：长期写代码总调不对，或者打比赛总是打不过别人，或者看到很多原来没有自己厉害的人现在比自己厉害多了。也可能是老是半夜刷网抑云音乐。
还有一个很重要的原因：总是被人控制。如果父母或老师总是强迫你做一些事情，总想打探你的一切，总是想看你的社交记录或日记，或者总是和你不讲道理或道德绑架，或者你的一次小失误就逼逼叨叨挖苦半天甚至爆粗口。这会导致抑郁，自卑，做什么都没兴趣，不敢做选择，不想承担重要责任，或更严重的心理扭曲变态。

轻度抑郁]]></description><category></category></item><item><title><![CDATA[hihocoder1457【后缀自动机+拓扑排序DP】]]></title><link>https://blog.youkuaiyun.com/sidnee/article/details/108020631</link><guid>https://blog.youkuaiyun.com/sidnee/article/details/108020631</guid><author>sidnee</author><pubDate>Sat, 15 Aug 2020 12:12:37 +0800</pubDate><description><![CDATA[题目链接
http://hihocoder.com/problemset/problem/1457
题解
所有乐章，用#隔开拼接起来建立sam。在自动机上按照拓扑序递推求出初始状态到当前点的不含#的路径数，然后用这个递推出初始到当前点所有子串的和。递推式见代码。
注意
我开始直接入度和递推都忽略自动机的#边。但这是不对的。因为这样忽略会导致有的点入度永远不是0，而不被算到。因为去掉#边可能导致某个入度和初始状态失去连接路径。所以拓扑就老老实实算上所有边弄，dp在忽略#边才对。
AC代码
#include&l]]></description><category></category></item><item><title><![CDATA[洛谷P3975【天津省选2015】（后缀自动机DP）]]></title><link>https://blog.youkuaiyun.com/sidnee/article/details/108018209</link><guid>https://blog.youkuaiyun.com/sidnee/article/details/108018209</guid><author>sidnee</author><pubDate>Sat, 15 Aug 2020 10:01:52 +0800</pubDate><description><![CDATA[题目链接
https://www.luogu.com.cn/problem/P3975
题解
此题非常经典且重要，是sam的函谷关，必须拿下。

记录每个点endpos大小的方法是在parent树从下往上递推。开始的is_pre就是看看当前点与没有包含原串前缀，有的话，这个会在parent tree分叉时候丢掉。也就是当前节点并不是所有子节点的endpos的并集，并集还得加上那个前缀的结束位置才是当前点的endpos集合。
求endpos大小的dp非常经典。
dp数组表示从某个点出发沿自动机往下走的子串有多]]></description><category></category></item><item><title><![CDATA[hdu6832（2020hdu多校6t6）]]></title><link>https://blog.youkuaiyun.com/sidnee/article/details/107869409</link><guid>https://blog.youkuaiyun.com/sidnee/article/details/107869409</guid><author>sidnee</author><pubDate>Fri, 07 Aug 2020 21:15:36 +0800</pubDate><description><![CDATA[题解
所有最短路肯定都出现在最小生成树上。因为克鲁斯卡尔按顺序连边，前面已经连上的肯定最优，所有加起来比当前的还小。
这个我感觉求单源多汇最短路后的剩余图其实和最小生成树其实是一样的。因为如果最小生成树的结论是对的，那么源点到所有点的最短路一定都在树上，剩余图就是这个最小生成树。我试了试都是可以AC的。
开始初始化错了，少初始化了一堆东西，dfs停不下来，MLE。后来wa，因为枚举边端点dp计数没想清。
AC代码

dij版本（跑的较慢）

#include&lt;cstdio&gt;
#include&l]]></description><category></category></item><item><title><![CDATA[windows对拍批处理脚本]]></title><link>https://blog.youkuaiyun.com/sidnee/article/details/107869330</link><guid>https://blog.youkuaiyun.com/sidnee/article/details/107869330</guid><author>sidnee</author><pubDate>Fri, 07 Aug 2020 19:47:09 +0800</pubDate><description><![CDATA[@echo off  
:loop  
    data.exe &gt; data.in
    xx.exe &lt; data.in &gt; std.out
    baoli.exe &lt; data.in &gt; my.out
    fc my.out std.out 
if not errorlevel 1 goto loop  
pause
goto loop


]]></description><category></category></item><item><title><![CDATA[（对拍）随机生成一棵树]]></title><link>https://blog.youkuaiyun.com/sidnee/article/details/107869315</link><guid>https://blog.youkuaiyun.com/sidnee/article/details/107869315</guid><author>sidnee</author><pubDate>Fri, 07 Aug 2020 19:44:47 +0800</pubDate><description><![CDATA[#include&lt;cstdio&gt;
#include&lt;cstring&gt;
#include&lt;cmath&gt;
#include&lt;ctime&gt;
#include&lt;cstdlib&gt;
#include&lt;iostream&gt;
using namespace std;
int fa[100015];
int find(int x){
	return x==fa[x]?x:fa[x]=find(fa[x]);
}
int main(){
	srand(tim]]></description><category></category></item><item><title><![CDATA[2020hdu多校round2第五题New Equipments]]></title><link>https://blog.youkuaiyun.com/sidnee/article/details/107565691</link><guid>https://blog.youkuaiyun.com/sidnee/article/details/107565691</guid><author>sidnee</author><pubDate>Fri, 24 Jul 2020 17:25:14 +0800</pubDate><description><![CDATA[题目链接
http://acm.hdu.edu.cn/showproblem.php?pid=6767
题解
一个工人对应一个二次函数，尽量往函数对称轴配对。而又n个工人，所以每个工人一定能连到对称轴周围n个最近的点之一。所以从n个工人节点向他的对称轴周围n个点连边，边流量1，费用aij2+bij+cia_ij^2+b_ij+c_iai​j2+bi​j+ci​，完了超级源流量限制为k，枚举k建立n次图，跑n次费用流。
AC代码
尽量不用宏定义字符串替换，括号老是丢。找错找一天。。哭了。
#include&l]]></description><category></category></item><item><title><![CDATA[最小费用最大流dij板子]]></title><link>https://blog.youkuaiyun.com/sidnee/article/details/107565555</link><guid>https://blog.youkuaiyun.com/sidnee/article/details/107565555</guid><author>sidnee</author><pubDate>Fri, 24 Jul 2020 17:16:04 +0800</pubDate><description><![CDATA[不说了，宏定义害死人
#include&lt;bits/stdc++.h&gt;
#define Pair pair&lt;long long, long long&gt;
#define fi first
#define se second
/*宏定义害死人*/
//#define AddEdge(x,y,f,z) add_edge(x,y,f,z);add_edge(y,x,0,-z);
// #define getchar() (p1==p2&amp;&amp;(p2=(p1=buf)+fread(b]]></description><category></category></item></channel></rss>