<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Sd_Invol的专栏]]></title><description><![CDATA[New blog: Sd-invol.github.io/ ]]></description><link>https://blog.youkuaiyun.com/Sd_Invol</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Sd_Invol]]></copyright><item><title><![CDATA[BUAA Training 2014.03.29 Fukuoka-2011]]></title><link>https://blog.youkuaiyun.com/Sd_Invol/article/details/22602789</link><guid>https://blog.youkuaiyun.com/Sd_Invol/article/details/22602789</guid><author>Sd_Invol</author><pubDate>Sun, 30 Mar 2014 19:57:21 +0800</pubDate><description><![CDATA[题目真的都不错但是训练的时候结果不怎么好..
A切掉迅速干掉BDF三个简单题后在E,G,J间玩了三个小时泥巴……
以后这样真不好啊。。


http://acm.hust.edu.cn/vjudge/contest/view.action?cid=42606#overview



A：略
B：一个甜甜圈上有字符，从每个字符出发8个方向走能得到一堆字符串，求出现次数>1的最长串]]></description><category></category></item><item><title><![CDATA[BUAA Training 2014.03.06]]></title><link>https://blog.youkuaiyun.com/Sd_Invol/article/details/22216811</link><guid>https://blog.youkuaiyun.com/Sd_Invol/article/details/22216811</guid><author>Sd_Invol</author><pubDate>Wed, 26 Mar 2014 22:46:53 +0800</pubDate><description><![CDATA[为了缓解一下的焦躁情绪以及看了看有些强队每次训练都会写点总结
琢磨琢磨自己也写写好了，20天前的训练可以当回忆录写……


http://acm.hust.edu.cn/vjudge/contest/view.action?cid=41176#overview



开场后看题顺序之前都订好了，金爷在看A
随便翻了一下看到了C的图，画了画样例猜了题意就扑上去写，期间让他们也看这个]]></description><category></category></item><item><title><![CDATA[寒假训练的小总结]]></title><link>https://blog.youkuaiyun.com/Sd_Invol/article/details/19223185</link><guid>https://blog.youkuaiyun.com/Sd_Invol/article/details/19223185</guid><author>Sd_Invol</author><pubDate>Sat, 15 Feb 2014 03:01:07 +0800</pubDate><description><![CDATA[在过完年的时候在HUST的vjudge上开了几份小型的训练专题
可以再Contest里面搜索"BUAA"进入，现在把这些训练在这里小小的总结一下。


第一弹：http://acm.hust.edu.cn/vjudge/contest/view.action?cid=40319#overview
作为最初的一套，选择的是我刚接触Codeforces时还在打Div2，有些坑着没有看也没有做]]></description><category></category></item><item><title><![CDATA[关于实时开节点的可持久化线段树及区间/树链第K大值]]></title><link>https://blog.youkuaiyun.com/Sd_Invol/article/details/18942863</link><guid>https://blog.youkuaiyun.com/Sd_Invol/article/details/18942863</guid><author>Sd_Invol</author><pubDate>Wed, 05 Feb 2014 22:57:36 +0800</pubDate><description><![CDATA[又扯回这道经典的Dynamic Ranking了：
http://www.lydsy.com:808/JudgeOnline/problem.php?id=1901



一、树套树
之前写过，挺慢的，也挺长的。


二、树状数组套权值线段树


如果没有修改，可以直接开n棵权值线段树，每一棵线段树都是在前一棵的基础上只修改一位。
每一棵线段树也都是每一个前缀所代表的“权]]></description><category></category></item><item><title><![CDATA[ZOJ3733 Skycity]]></title><link>https://blog.youkuaiyun.com/Sd_Invol/article/details/16926731</link><guid>https://blog.youkuaiyun.com/Sd_Invol/article/details/16926731</guid><author>Sd_Invol</author><pubDate>Sun, 24 Nov 2013 21:50:57 +0800</pubDate><description><![CDATA[#include 
#include 
#include 
#include 
#include 
using namespace std;
typedef long long LL;
int R , r , H , F , S;
double radius , ans , height , dr , pi = acos(-1.);
double check()
{
    int top = 3]]></description><category></category></item><item><title><![CDATA[ZOJ3734	LIKE vs CANDLE]]></title><link>https://blog.youkuaiyun.com/Sd_Invol/article/details/16926447</link><guid>https://blog.youkuaiyun.com/Sd_Invol/article/details/16926447</guid><author>Sd_Invol</author><pubDate>Sun, 24 Nov 2013 21:41:40 +0800</pubDate><description><![CDATA[这题……
今天在完全搞清楚题意的情况和现场被这题的题意卡的后半场不能自理的情况比较一下，还是觉得经验太少了……


一棵点带权有根树，权可正可负，每次可以以X的代价让某个子树翻转。
但在之前已经有些子树被翻转过了，再翻回来需要Y的代价而不是X。
求怎么操作能让总权值最大？


状态很简单就是f[x][0/1]代表x这个节点有没有被翻过(0或1)的最大价值。
很明显f[x][i]]]></description><category></category></item><item><title><![CDATA[2013 Asia Hangzhou Regional Contest hdu4780 Candy Factory]]></title><link>https://blog.youkuaiyun.com/Sd_Invol/article/details/15813671</link><guid>https://blog.youkuaiyun.com/Sd_Invol/article/details/15813671</guid><author>Sd_Invol</author><pubDate>Wed, 13 Nov 2013 15:46:11 +0800</pubDate><description><![CDATA[现场赛这题就看了一眼就再没多想了，被别的题卡住的时候就更没心思想了，比较可惜。
模型一眼就是费用流，主要是题意的理解和构图方式。


首先机器的区别只在于一开始做每个糖果的花费和时间不同，除此之外没有任何区别。
每个糖果生产完毕的时间也是确定的（Ti），所以某机器生产完一个糖果又生产另一个糖果的花费也是确定的。
所以时间的意义只在于计算费用而已啦……


构图就比较清晰了：
从]]></description><category></category></item><item><title><![CDATA[2013 ACM/ICPC Asia Regional Changsha Online - I Grand Prix]]></title><link>https://blog.youkuaiyun.com/Sd_Invol/article/details/11911827</link><guid>https://blog.youkuaiyun.com/Sd_Invol/article/details/11911827</guid><author>Sd_Invol</author><pubDate>Mon, 23 Sep 2013 00:14:40 +0800</pubDate><description><![CDATA[离正解非常非常接近就差一步的感觉真让人忧伤_(:3」∠)_
先bia代码……题解起床写



#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#define pb push_ba]]></description><category></category></item><item><title><![CDATA[hdu4757 Tree]]></title><link>https://blog.youkuaiyun.com/Sd_Invol/article/details/11880131</link><guid>https://blog.youkuaiyun.com/Sd_Invol/article/details/11880131</guid><author>Sd_Invol</author><pubDate>Sat, 21 Sep 2013 20:15:52 +0800</pubDate><description><![CDATA[可持久化Trie，比赛的时候一直在想不到怎么样才可以做减法，赛后才想清楚。
首先异或最大就是在字典数上找它的按位取反，首先满足高位。
维护Trie的时候同时维护一下子树的叶子节点和，这样就可以做一个减法了，如果某棵子树没有叶子节点就意味着不能走。



#include 
#include 
#include 
#include 
#include 
#include 
#includ]]></description><category></category></item><item><title><![CDATA[2011 Asia Fuzhou Regional Contest]]></title><link>https://blog.youkuaiyun.com/Sd_Invol/article/details/11674621</link><guid>https://blog.youkuaiyun.com/Sd_Invol/article/details/11674621</guid><author>Sd_Invol</author><pubDate>Sat, 14 Sep 2013 10:52:40 +0800</pubDate><description><![CDATA[11年的福州题目质量都好高，选了5道最简单的来做……


hdu4121 Xiangqi
直接枚举将下一步怎么走，然后看会不会被将死。把帅当只能垂直行动的车看。
有一个点没考虑到，就是将走这一步正好能吃掉红色一个子，后来发现判断是否将死的时候已经处理了这种情况。
代码比较长，一气呵成1Y

#include 
#include 
#include 
#include 
#inclu]]></description><category></category></item><item><title><![CDATA[2012 Asia Hangzhou/Jinhua Regional Contest]]></title><link>https://blog.youkuaiyun.com/Sd_Invol/article/details/11574089</link><guid>https://blog.youkuaiyun.com/Sd_Invol/article/details/11574089</guid><author>Sd_Invol</author><pubDate>Wed, 11 Sep 2013 17:39:49 +0800</pubDate><description><![CDATA[hdu4453 Looploop
好题……虽然有一系列区间翻转区间求和等等平衡树才能玩得起的操作，但翻转的长度和增加的长度都是固定的。
而且题目中给了各种的条件，比如k1


开3个双端队列，第一个存指针后1~k1，第二个存k1+1~k2，第三个存剩下的数字。
那么对于区间翻转和区间求和，只需要修改两个deque的标记。
插入和删除也是只要修改第一个双端队列的头或尾，并且维护后两个队]]></description><category></category></item><item><title><![CDATA[2012 Asia Tianjin Regional Contest]]></title><link>https://blog.youkuaiyun.com/Sd_Invol/article/details/11396619</link><guid>https://blog.youkuaiyun.com/Sd_Invol/article/details/11396619</guid><author>Sd_Invol</author><pubDate>Sun, 08 Sep 2013 21:58:05 +0800</pubDate><description><![CDATA[hdu4431 Mahjong
日麻XD
枚举/模拟，之前用一个桶来装牌来搜索结果一直TLE，后来改了一种更直接的搜索方法就可以AC了。
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include]]></description><category></category></item><item><title><![CDATA[2010 Asia Hangzhou/Fuzhou Regional Contest]]></title><link>https://blog.youkuaiyun.com/Sd_Invol/article/details/11276981</link><guid>https://blog.youkuaiyun.com/Sd_Invol/article/details/11276981</guid><author>Sd_Invol</author><pubDate>Sat, 07 Sep 2013 02:31:22 +0800</pubDate><description><![CDATA[hdu3681 Prison Break
二分+状压DP...
因为懒得写dx和dy导致BFS完全写错...过了样例查不出错 = = 
怒而重写BFS就过了，虽然还是没有写dxdy
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#incl]]></description><category></category></item><item><title><![CDATA[2012 Asia ChangChun Regional Contest]]></title><link>https://blog.youkuaiyun.com/Sd_Invol/article/details/11275627</link><guid>https://blog.youkuaiyun.com/Sd_Invol/article/details/11275627</guid><author>Sd_Invol</author><pubDate>Sat, 07 Sep 2013 01:58:43 +0800</pubDate><description><![CDATA[hdu4421 Bit Magic
2-SAT，也可以根据异或的关系用并查集直接把解求出来，然后判定是否满足与或非的限制。
还是2-SAT写起来爽……
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#]]></description><category></category></item><item><title><![CDATA[可以区间修改区间查询的树状数组云云]]></title><link>https://blog.youkuaiyun.com/Sd_Invol/article/details/10814857</link><guid>https://blog.youkuaiyun.com/Sd_Invol/article/details/10814857</guid><author>Sd_Invol</author><pubDate>Sun, 01 Sep 2013 03:50:52 +0800</pubDate><description><![CDATA[一维区间异或：
XOR(a , b , c) =>  XOR(1 , a - 1 , c) , XOR(1 , b , c)
QUERY(a , b) => QUERY(1 , a - 1) ^ QUERY(1 , b)


设一个XOR操作为XOR(1 , L , D)
则对于一个询问QUERY(1 , k)
当L 
贡献答案为 (L & 1) ? D : 0 // L * D]]></description><category></category></item><item><title><![CDATA[Shanghai 2004 Preliminary]]></title><link>https://blog.youkuaiyun.com/Sd_Invol/article/details/10423351</link><guid>https://blog.youkuaiyun.com/Sd_Invol/article/details/10423351</guid><author>Sd_Invol</author><pubDate>Wed, 28 Aug 2013 03:26:29 +0800</pubDate><description><![CDATA[有一段时间没有更新博客了。。就简单记录一套比较简单的题目的题解吧。。
POJ2078~POJ2085
http://poj.org/searchproblem?field=source&key=Shanghai+2004+Preliminary



POJ2078
一个矩阵，可以将每一行随意转动，求每一列权值和最大值的最小值。
直接7^7搜索，要加最优性剪枝，不然会TLE。]]></description><category></category></item><item><title><![CDATA[hdu 4674 Trip Advisor]]></title><link>https://blog.youkuaiyun.com/Sd_Invol/article/details/9963985</link><guid>https://blog.youkuaiyun.com/Sd_Invol/article/details/9963985</guid><author>Sd_Invol</author><pubDate>Wed, 14 Aug 2013 14:34:14 +0800</pubDate><description><![CDATA[昨天比赛的所有价值都展现在这道题上了……


给一个无向图，保证每个图都只在一个简单环上，每次询问是否存在一条从x到y且要经过z的路径，每个点只能走一次。
因为图的特殊性质，可以把每个环缩点，这样原图就可以变成森林，在森林里用LCA询问从x到y的路径上是否经过z，好像就搞定了？……


因为每个点只能走一次，所以有很多种情况是No……




诸如这样的……


所以]]></description><category></category></item><item><title><![CDATA[hdu4582 DFS spanning tree]]></title><link>https://blog.youkuaiyun.com/Sd_Invol/article/details/9963741</link><guid>https://blog.youkuaiyun.com/Sd_Invol/article/details/9963741</guid><author>Sd_Invol</author><pubDate>Wed, 14 Aug 2013 14:21:41 +0800</pubDate><description><![CDATA[给定一个无向图，求出它的DFS生成树。
非树边与树边会构成环，现在选择树上的最少的边数，使得每一个环都至少有一条边被选中。


一个环对应的就是树上的一条路径，因为DFS树的性质这条路径只可能是从一个节点出发连向它的儿子。
所以问题就转化成了给定树上的一些简单链，给树上的边染黑白两色，使得每条给定的链上都至少有一条黑边，求最小黑边数量。


假如树是一条长链，则每一个链对应的就是一]]></description><category></category></item><item><title><![CDATA[2013多校联合训练第五场]]></title><link>https://blog.youkuaiyun.com/Sd_Invol/article/details/9795253</link><guid>https://blog.youkuaiyun.com/Sd_Invol/article/details/9795253</guid><author>Sd_Invol</author><pubDate>Tue, 06 Aug 2013 18:12:56 +0800</pubDate><description><![CDATA[。。。被05卡了全场


06 
保存前缀和的模m值，对于每一个值找它第一次出现的地方即可。
const int N = 1e5 + 5;
int n , m , a[N];
int s[N] , p[N];
int main()
{
  int  i , j;
  while (~scanf("%d%d",&n,&m))
  {
    for (i = 1 ; i <= n ; ++]]></description><category></category></item><item><title><![CDATA[2013多校联合训练第四场]]></title><link>https://blog.youkuaiyun.com/Sd_Invol/article/details/9706699</link><guid>https://blog.youkuaiyun.com/Sd_Invol/article/details/9706699</guid><author>Sd_Invol</author><pubDate>Thu, 01 Aug 2013 19:33:57 +0800</pubDate><description><![CDATA[A
求一个字符串的回文子序列个数
很直观的DP但一开始看着这个题目愣了好久……
  scanf("%s" , s + 1);
  n = strlen(s + 1);
  memset(f , 0 , sizeof(f));
  for (i = 1 ; i <= n ; ++ i) f[i][i] = 1;
  for (k = 2 ; k <= n ; ++ k)
  {
    for]]></description><category></category></item></channel></rss>