Ejemplo n.º 1
0
String TileCell::Description(void) const {
    String result = mTile.Description();

    if (IsSwap()) {
        result += " to swap area";
    } else {
        result += " on " + String(mCell);
    }

    return result;
}
Ejemplo n.º 2
0
TileCell::operator String(void) const {
    String result = String(mTile.Id()) + SEPARATOR;

    if (IsSwap()) {
        result += SWAP;
    } else {
        result += String(mCell);
    }

    return result;
}
Ejemplo n.º 3
0
//k表示当前选取到第几个数, m表示共有多少数.
void PermutationHaveSameword(char *pszStr, int k, int m) {
    if (k == m) {
        printf("%s\n", pszStr);
    } else {
        for (int i = k; i <= m; i++) { //第i个数分别与它后面的数字交换就能得到新的排列
            if (IsSwap(pszStr, k, i)) {
                swap(pszStr[k], pszStr[i]);
                PermutationHaveSameword(pszStr, k + 1, m);
                swap(pszStr[k], pszStr[i]);
            }
        }
    }
LRModel::ReorderingType
LRModel::
GetOrientation(Range const& prev, Range const& cur,
               Bitmap const& cov) const
{
  return ((m_modelType == LeftRight)
          ? cur.GetStartPos() > prev.GetEndPos() ? R : L
        : IsMonotonicStep(prev,cur,cov) ? M
          : (m_modelType == Monotonic) ? NM
          : IsSwap(prev,cur,cov) ? S
          : (m_modelType == MSD) ? D
          : cur.GetStartPos() > prev.GetEndPos() ? DR : DL);
}
Ejemplo n.º 5
0
void permutation(vector<int> &num,int from,int to,vector<vector<int>> &ret)
{
    if(from==to)
    {
        vector<int> one;
        for(int i=0;i<num.size();i++)
        {
            one.push_back(num[i]);
        }
        ret.push_back(one);
        return;
    }
    for(int i=from;i<=to;i++)
    {
        if(IsSwap(num,from,i))
            continue;
        swap(num[i],num[from]);
        permutation(num,from+1,to,ret);
        swap(num[i],num[from]);
    }
}
Ejemplo n.º 6
0
void AllRange(char *pszStr, int k, int m)
{
	int i;
	if (k == m)
	{
		static int s_i = 1;
		printf("%d\t%s\n", s_i++, pszStr);
	}
	else
	{
		for (i = k; i <= m; i++)
		{
			if (IsSwap(pszStr, k, i))
			{
				Swap(pszStr + k, pszStr + i);
				AllRange(pszStr, k + 1, m);
				Swap(pszStr + k, pszStr + i);
			}
		}
	}
}
Ejemplo n.º 7
0
void P(char *a, int startpoint, int m) {
	if (startpoint == m)
	{
	
		printf("%s\n",a);
		//return;
	}

	else
	{
		for (int i = startpoint; i < m; i++) {

			if (IsSwap(a, startpoint, i))
			{
				change(a + i, a + startpoint);
				P(a, startpoint + 1, m);
				change(a + i, a + startpoint);
			}

		}
	}
	
}