HDU2510符號三角形(位運算打表)

2021-07-26 10:14:14 字數 940 閱讀 2521

題意:中文題面。

思路:觀察規律,相同得『+』,不同得『-』,跟異或運算很相似,可用0代表『+』,1代表『-』。第一層有n位,n不大於24,因此可用n位二進位制數來表示當前一層的狀態,數字上的0和1分別代表相應的符號,求下一層的狀態時只需要當前層的各位數字兩兩異或即可組成下一層的狀態,每向下一層,位數就減一。

由於n位二進位制數共有2的n次方種情況,先求出最大的一種即2^n-1,然後依次-1列舉到0即可。二進位制不熟練,還有多重迴圈,寫的時候暈頭轉向,還好寫對了。

打表**:

#include#include#include#include#include#includeusing namespace std;

#define inf 0x3f3f3f3f

typedef long long ll;

int ans[25],a[25];//乙個記錄結果,乙個記錄中間狀態

int main()

}if(cnt1==cnt2)++ans[i];

--a[1];}}

for(int i=1;i<25;++i)

printf("%d\n",ans[i]);

}

ac**:

#includeusing namespace std;

#define inf 0x3f3f3f3f

typedef long long ll;

int main();

while(scanf("%d",&n),n)

}

hdu 2510 符號三角形

題目描述 problem description 符號三角形的 第1行有n個由 和 組成的符號 以後每行符號比上行少1個,2個同號下面是 2個異 號下面是 計算有多少個不同的符號三角形,使其所含 和 的個數相同 n 7時的1個符號三角形如下 input 每行1個正整數n 24,n 0退出.outpu...

符號三角形 HDU 2510

符號三角形的 第1行有n個由 和 組成的符號 以後每行符號比上行少1個,2個同號下面是 2個異 號下面是 計算有多少個不同的符號三角形,使其所含 和 的個數相同 n 7時的1個符號三角形如下 input每行1個正整數n 24,n 0退出.outputn和符號三角形的個數.sample input15...

HDU 2510 符號三角形 暴力打表

符號三角形的 第1行有n個由 和 組成的符號 以後每行符號比上行少1個,2個同號下面是 2個異 號下面是 計算有多少個不同的符號三角形,使其所含 和 的個數相同 n 7時的1個符號三角形如下 input 每行1個正整數n 24,n 0退出.output n和符號三角形的個數.sample input...