<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Tsaid</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Tsaid]]></copyright><item><title><![CDATA[两个有序数组，求第K小数]]></title><link>https://blog.youkuaiyun.com/Tsaid/article/details/49332661</link><guid>https://blog.youkuaiyun.com/Tsaid/article/details/49332661</guid><author>Tsaid</author><pubDate>Thu, 22 Oct 2015 14:02:51 +0800</pubDate><description><![CDATA[两个有序数组A[0...m-1],B[0...n-1]，A与B中所有元素均不重复，求A[],B[]合成数组的第K小数
class Solution {
public:
    //there are no duplicate elements in array A or B.
    int findKthSmallest(int A[], int m, int B[], int n, int k]]></description><category></category></item><item><title><![CDATA[关于sizeof()函数]]></title><link>https://blog.youkuaiyun.com/Tsaid/article/details/49287083</link><guid>https://blog.youkuaiyun.com/Tsaid/article/details/49287083</guid><author>Tsaid</author><pubDate>Tue, 20 Oct 2015 23:53:04 +0800</pubDate><description><![CDATA[千万不要把数组名看成指针，尽管有些时候他们是相通的，但也仅限某些时候而已。
sizeof是一个奇特的函数，告诉你你也许不相信——sizeof在编译的时候就已经确定sizeof的结果了，这有点类似于宏。

char str[] = “Hello” ; sizeof (str ) = 6 
编译器编译的时候根据上下文完全知道str是一个数组，sizeof (str ) = 6 理所当然是在求数]]></description><category></category></item><item><title><![CDATA[HDU 3966 Aragorn's Story 树链剖分模板]]></title><link>https://blog.youkuaiyun.com/Tsaid/article/details/8997079</link><guid>https://blog.youkuaiyun.com/Tsaid/article/details/8997079</guid><author>Tsaid</author><pubDate>Thu, 30 May 2013 22:46:44 +0800</pubDate><description><![CDATA[题目：http://acm.hdu.edu.cn/showproblem.php?pid=3966
题解：
#include
#include
#include
#include
using namespace std;

#define MAXN 50010
#define L(u) (u<<1)
#define R(u) (u<<1|1)

//写在类里面爆栈
int n, m, q;
i]]></description><category></category></item><item><title><![CDATA[POJ 1330 Nearest Common Ancestors 最近公共祖先模板/在线/离线]]></title><link>https://blog.youkuaiyun.com/Tsaid/article/details/8986756</link><guid>https://blog.youkuaiyun.com/Tsaid/article/details/8986756</guid><author>Tsaid</author><pubDate>Tue, 28 May 2013 21:53:46 +0800</pubDate><description><![CDATA[题意：求树上两个节点的最近公共祖先


算法一：tarjan


LCA(u) {
　　Make-Set(u)
　　ancestor[Find-Set(u)]=u  //设置u所在集合的祖先
　　对于u的每一个孩子v {
　　 LCA(v)
　　 Union(v,u)              //把v生成的子集并入u中
　　 ancestor[Find-Set(u)]=u]]></description><category></category></item><item><title><![CDATA[ZOJ  3687 The Review Plan I 容斥原理/禁位排列]]></title><link>https://blog.youkuaiyun.com/Tsaid/article/details/8977996</link><guid>https://blog.youkuaiyun.com/Tsaid/article/details/8977996</guid><author>Tsaid</author><pubDate>Sun, 26 May 2013 23:25:09 +0800</pubDate><description><![CDATA[题意：
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4970



题解：
#include
#include
#include
using namespace std;

#define MOD 55566677
#define lint long long
#define MAXN 52

int fa[MA]]></description><category></category></item><item><title><![CDATA[POJ 1390]]></title><link>https://blog.youkuaiyun.com/Tsaid/article/details/8962898</link><guid>https://blog.youkuaiyun.com/Tsaid/article/details/8962898</guid><author>Tsaid</author><pubDate>Wed, 22 May 2013 23:05:47 +0800</pubDate><description><![CDATA[Blocks




Time Limit: 5000MS
 
Memory Limit: 65536K


Total Submissions: 3796
 
Accepted: 1506




Description

Some of you may have played a game called 'Blocks'. There are n bloc]]></description><category></category></item><item><title><![CDATA[HDU 1412 搬寝室 DP]]></title><link>https://blog.youkuaiyun.com/Tsaid/article/details/8947793</link><guid>https://blog.youkuaiyun.com/Tsaid/article/details/8947793</guid><author>Tsaid</author><pubDate>Sun, 19 May 2013 20:48:28 +0800</pubDate><description><![CDATA[题意：。。。
题解：
将所有的数从小到大排序。
证明一个性质：若一个数num[i]被选中，那么一定要选num[i-1]或者num[i+1]来与它配对，这样才能使差方最小。
例如有下面四个数，他们从小到大到分别为x, x+a, x+a+b, x+a+b+c
选择(x,x+a)，(x+a+b,x+a+b+c) ，差方=a^2+c^2
选择 (x,x+a+b), (x+a,x+a+b+c)，]]></description><category></category></item><item><title><![CDATA[HDU 4291 A Short problem 矩阵，多重函数求循环节]]></title><link>https://blog.youkuaiyun.com/Tsaid/article/details/8946641</link><guid>https://blog.youkuaiyun.com/Tsaid/article/details/8946641</guid><author>Tsaid</author><pubDate>Sun, 19 May 2013 13:34:09 +0800</pubDate><description><![CDATA[题意：
　According to a research, VIM users tend to have shorter fingers, compared with Emacs users.
　　Hence they prefer problems short, too. Here is a short one:
　　Given n (1 18), You should solve for]]></description><category></category></item><item><title><![CDATA[HDU 4288 Coder 离线线段树部分更新]]></title><link>https://blog.youkuaiyun.com/Tsaid/article/details/8945773</link><guid>https://blog.youkuaiyun.com/Tsaid/article/details/8945773</guid><author>Tsaid</author><pubDate>Sun, 19 May 2013 00:52:16 +0800</pubDate><description><![CDATA[题意：下标模5等于3的数的和。
题解：


可以这样，线段树的每个节点存一个数组 sum[5]，表示当前节点覆盖的区间中，从左到有编号，模 5 为 0,1,2,3,4的所有数的和

每个节点再保存一个当前节点所包含的区间中有多少个数的信息：cnt。那么：

        添加的时候就是在相应的位置把整数加进去，并把 cnt+1

        删除的时候就是在相应的位置赋值]]></description><category></category></item><item><title><![CDATA[HDU 3974 Assign the task 线段树（树映射到区间）]]></title><link>https://blog.youkuaiyun.com/Tsaid/article/details/8945424</link><guid>https://blog.youkuaiyun.com/Tsaid/article/details/8945424</guid><author>Tsaid</author><pubDate>Sat, 18 May 2013 22:24:14 +0800</pubDate><description><![CDATA[题意....
题解：
#include
#include
#include
#include
using namespace std;

#define MAXN 100001
#define L(u) (u<<1)
#define R(u) (u<<1|1)

struct A_NODE
{
    A_NODE *sun, *bro;
    int num;
} anode[MAXN],]]></description><category></category></item><item><title><![CDATA[划分树模板]]></title><link>https://blog.youkuaiyun.com/Tsaid/article/details/8915310</link><guid>https://blog.youkuaiyun.com/Tsaid/article/details/8915310</guid><author>Tsaid</author><pubDate>Sat, 11 May 2013 20:22:47 +0800</pubDate><description><![CDATA[#include
#include
#include
#include
using namespace std;

#define MAXN 100001
#define L(u) (u<<1)
#define R(u) (u<<1|1)
#define MID(l, r) ((l+r)>>1)

struct SegTree
{
    int l, r;
} node[MAXN*4];

in]]></description><category></category></item><item><title><![CDATA[ZOJ 1006 Do the Untwist 加密解密 模拟]]></title><link>https://blog.youkuaiyun.com/Tsaid/article/details/8811038</link><guid>https://blog.youkuaiyun.com/Tsaid/article/details/8811038</guid><author>Tsaid</author><pubDate>Tue, 16 Apr 2013 20:52:14 +0800</pubDate><description><![CDATA[题意：加密、解密
题解：
#include
#include
#include
using namespace std;

int key;
int c2i[1000];
char i2c[1000];

void init()
{
    for(int i = 'a'; i <= 'z'; i++)
        c2i[i] = i - 'a' + 1;
    c2i['_'] =]]></description><category></category></item><item><title><![CDATA[ZOJ 1005 Jugs]]></title><link>https://blog.youkuaiyun.com/Tsaid/article/details/8810712</link><guid>https://blog.youkuaiyun.com/Tsaid/article/details/8810712</guid><author>Tsaid</author><pubDate>Tue, 16 Apr 2013 19:54:46 +0800</pubDate><description><![CDATA[题意：两个罐子倒水
题解：

#include
#include
#include
using namespace std;

int a, b, n;
bool vis[1010][1010], flag;
int res[10100], step;

void print()
{
    for(int i = 0; i < step; i++)
    {
        switch]]></description><category></category></item><item><title><![CDATA[ZOJ 1003 Crashing Balloon 搜索]]></title><link>https://blog.youkuaiyun.com/Tsaid/article/details/8805932</link><guid>https://blog.youkuaiyun.com/Tsaid/article/details/8805932</guid><author>Tsaid</author><pubDate>Mon, 15 Apr 2013 21:29:03 +0800</pubDate><description><![CDATA[题意：100个气球，气球上标有1-100的号码，每踩一个气球，则自己的得分可以乘以该气球的标号（初始得分为1，每个气球只能踩一次）。
题解：假如a>b，求出a，b所有可能的分解情况（分解为1-100的数的乘积）。然后比对，只要存在一种分解情况，使得a的因子中不含b的因子，a就是可能的。

#include
#include
#include
#include
using namespace]]></description><category></category></item><item><title><![CDATA[线段树模板（lazy标记）ZOJ 3686]]></title><link>https://blog.youkuaiyun.com/Tsaid/article/details/8757949</link><guid>https://blog.youkuaiyun.com/Tsaid/article/details/8757949</guid><author>Tsaid</author><pubDate>Wed, 03 Apr 2013 23:25:22 +0800</pubDate><description><![CDATA[题解：先搜索用将树上的点给定时间戳，以此当做该节点的区间。
#include 
#include
#include
using namespace std;

#define N 150005
bool vis[N], check[N];
int dep, k, n;

struct treeNode
{
	int id;
	treeNode *brother;
	treeNode *son;]]></description><category></category></item><item><title><![CDATA[归并树 第K大值]]></title><link>https://blog.youkuaiyun.com/Tsaid/article/details/8756189</link><guid>https://blog.youkuaiyun.com/Tsaid/article/details/8756189</guid><author>Tsaid</author><pubDate>Wed, 03 Apr 2013 15:28:14 +0800</pubDate><description><![CDATA[/*
1.O(n*(logn)^2)
2.树的节点node从1开始（方便位运算）
3.树的层数h从0开始（节约空间）
4.数组a的下标从1开始
5.我们在queryVal中二分的是[1,n]整个区间，而不是[l,r]区间，这似乎是不正确的。因为假如[l,r]区间
中的值为[2,10,22,23]，我们要求第3大的值，如果二分到的值是11，他的在[l,r]中的rank为3，这不就错了么？]]></description><category></category></item><item><title><![CDATA[ZOJ 1002 回溯]]></title><link>https://blog.youkuaiyun.com/Tsaid/article/details/8733326</link><guid>https://blog.youkuaiyun.com/Tsaid/article/details/8733326</guid><author>Tsaid</author><pubDate>Thu, 28 Mar 2013 19:35:31 +0800</pubDate><description><![CDATA[题目：http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=2


#include
#include
#include
using namespace std;

int a[5][5], w[5][5];
int n, ans;

bool check(int r, int c)
{
    int i;
    if(w[]]></description><category></category></item><item><title><![CDATA[A*B mod C的计算方法]]></title><link>https://blog.youkuaiyun.com/Tsaid/article/details/8709681</link><guid>https://blog.youkuaiyun.com/Tsaid/article/details/8709681</guid><author>Tsaid</author><pubDate>Sat, 23 Mar 2013 13:43:42 +0800</pubDate><description><![CDATA[A*B mod C的计算方法



方法一：

大家都能想到，计算A*B的值，然后在计算A*B mod C的值。这是最简单的，但是这个有个弊端，即a*b的值不能太大，太大可能溢出。



方法二：

回顾进制转换的知识，二进制转换为10进制可以以2的权值相加（貌似是这样描述的）。比如13=(1101)2=1*2^3+1*2^2+0*2^1+1*2^0。同样的，当我们计算A*]]></description><category></category></item><item><title><![CDATA[2013腾讯编程马拉松初赛第〇场]]></title><link>https://blog.youkuaiyun.com/Tsaid/article/details/8702251</link><guid>https://blog.youkuaiyun.com/Tsaid/article/details/8702251</guid><author>Tsaid</author><pubDate>Thu, 21 Mar 2013 17:19:08 +0800</pubDate><description><![CDATA[小明系列故事——买年货
Time Limit: 5000/2000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)
Total Submission(s): 374    Accepted Submission(s): 162



Problem Description

　　春节将至，小明要去超市购置年]]></description><category></category></item><item><title><![CDATA[POJ 3678 2-sat]]></title><link>https://blog.youkuaiyun.com/Tsaid/article/details/8273178</link><guid>https://blog.youkuaiyun.com/Tsaid/article/details/8273178</guid><author>Tsaid</author><pubDate>Sat, 08 Dec 2012 18:30:22 +0800</pubDate><description><![CDATA[#include
#include
#include
#include
using namespace std;

const int SIZE = 2010;
int n, m;

int head[SIZE], E;
bool instk[SIZE];
int stk[SIZE], top;
int blk[SIZE], blkCnt;
int low[SIZE], dfn[SIZE], ti]]></description><category></category></item></channel></rss>