51node 1522 上下序列

2021-08-20 11:11:48 字數 1592 閱讀 6648

現在有1到n的整數,每一種有兩個。要求把他們排在一排,排成乙個2*n長度的序列,排列的要求是從左到右看,先是不降,然後是不公升。

特別的,也可以只由不降序列,或者不公升序列構成。

例如,下面這些序列都是合法的:

·        [1,2,2,3,4,4,3,1];

·        [1,1];

·        [2,2,1,1];

·        [1,2,3,3,2,1].

除了以上的條件以外,還有一些其它的條件,形如"h[xi] signi h[yi]",這兒h[t]表示第t個位置的數字,signi是下列符號之一:'=' (相等), '<' (小於), '>' (大於), '<=' (小於等於), '>=' (大於等於)。這樣的條件有k個。

請計算一下有多少種序列滿足條件。

input

單組測試資料。

第一行有兩個整數 n 和k (1≤n≤35, 0≤k≤100),表示數字的種類和限制條件的數目。

接下來k行,每一行的輸入格式是這樣的:"xi signi yi" (1≤xi,yi≤2*n),signi是上面五種符號中的一種。

output

輸出乙個整數,表示有多少種序列滿足條件。
input示例

樣例輸入1

3 0樣例輸入2

3 12 > 3

output示例

樣例輸出1

9樣例輸出2

思路:

從大到小,每次放入兩個相同的數:比如n=3時,先把兩個3放進去,然後再放兩個2,每次放的時候判斷是否滿足限制條件。注意放的位置有3種,左,中,右。

#include using namespace std;

typedef long long ll;

#define inf 0x3f3f3f3f

const int n = 80, k = 105;

int n, k;

int lar[n][k], leq[n][k], equ[n][k];

ll dp[n][n];

void init()

else

if (sig[1] == '=')

else}}

}bool single_check(int a, int b, int l, int r)

}for (int i = 1; i <= leq[a][0]; i++)

}for (int i = 1; i <= equ[a][0]; i++)

}return true;

}bool check(int a, int b, int l, int r)

int main()

}for (int len = 2; len <= 2 * n; len += 2)

if (check(i, i + 1, i + 2, j))

if (check(j - 1, j, i, j - 2))}}

cout << dp[1][2 * n] << endl;

return 0;

}

51node 1459 迷宮遊戲

1459 迷宮遊戲 基準時間限制 1 秒 空間限制 131072 kb 分值 0 難度 基礎題 你來到乙個迷宮前。該迷宮由若干個房間組成,每個房間都有乙個得分,第一次進入這個房間,你就可以得到這個分數。還有若干雙向道路鏈結這些房間,你沿著這些道路從乙個房間走到另外乙個房間需要一些時間。遊戲規定了你的...

mac上配置node環境

原 分類 nodejs 16628 4 舉報 收藏如何大家之前做過web伺服器的人都知道,nginx lua與現在流行的node.js都是可以做web伺服器的,前者在程式的寫法和配置上要比後者麻煩,但用起來都是差不多.在這裡建議大家如果對lua指令碼語言不了解,可以多了解這門指令碼語言,他號稱是所有...

在IIS上執行node

目錄另外還需要安裝url rewrite。安裝iisnode之後,可以用 programfiles iisnode setupsamples.bat來安裝乙個例子,然後訪問http localhost node。安裝完之後,新建乙個站點,監聽80埠,配置好自己的網域名稱。web.config配置可以...