/*
給定一個(gè)由n行數(shù)字組成的數(shù)字三角形如下圖所示。
試設(shè)計(jì)一個(gè)算法,計(jì)算出從三角形的頂至底的一條路徑,使該路徑經(jīng)過的數(shù)字總和
對(duì)于給定的由n行數(shù)字組成的數(shù)字三角形,
編程計(jì)算從三角形的頂至底的路徑經(jīng)過的數(shù)字和的最大值
*/
#include <stdio.h>
#include <string.h>
const int MAXN = 100 + 10;
int a[MAXN][MAXN],d[MAXN][MAXN];
int n;
inline int max(int a,int b) { return a > b ? a : b;}
int dfs(int i,int j)
{
if (d[i][j] >= 0) return d[i][j];
return d[i][j] = a[i][j] + (i == n ? 0 : max(dfs(i+1,j),dfs(i+1,j+1)));
}
int main()
{
int i;
int j;
freopen("1.txt","r",stdin);
while (scanf("%d",&n) != EOF)
{
memset(d,-1,sizeof(d));
for (i = 1; i <= n; ++i)
{
for (j = 1; j <= i; ++j)
scanf("%d",&a[i][j]);
}
printf("%d\n",dfs(1,1));
}
return 0;
}
給定一個(gè)由n行數(shù)字組成的數(shù)字三角形如下圖所示。
試設(shè)計(jì)一個(gè)算法,計(jì)算出從三角形的頂至底的一條路徑,使該路徑經(jīng)過的數(shù)字總和
對(duì)于給定的由n行數(shù)字組成的數(shù)字三角形,
編程計(jì)算從三角形的頂至底的路徑經(jīng)過的數(shù)字和的最大值
*/
#include <stdio.h>
#include <string.h>
const int MAXN = 100 + 10;
int a[MAXN][MAXN],d[MAXN][MAXN];
int n;
inline int max(int a,int b) { return a > b ? a : b;}
int dfs(int i,int j)
{
if (d[i][j] >= 0) return d[i][j];
return d[i][j] = a[i][j] + (i == n ? 0 : max(dfs(i+1,j),dfs(i+1,j+1)));
}
int main()
{
int i;
int j;
freopen("1.txt","r",stdin);
while (scanf("%d",&n) != EOF)
{
memset(d,-1,sizeof(d));
for (i = 1; i <= n; ++i)
{
for (j = 1; j <= i; ++j)
scanf("%d",&a[i][j]);
}
printf("%d\n",dfs(1,1));
}
return 0;
}
#include <stdio.h>
const int MAXN = 100 + 10;
int a[MAXN][MAXN],d[MAXN][MAXN];
int n;
inline int max(int a, int b) { return a > b ? a : b; }
int main()
{
int i,j;
freopen("1.txt","r",stdin);
while (scanf("%d",&n) != EOF)
{
for (i = 1; i <= n; ++i)
for (j = 1; j <= i; ++j)
scanf("%d",&a[i][j]);
for (j = 1; j <= n; j++) d[n][j] = a[n][j];
for (i = n - 1; i >= 1; i--)
for (j = 1; j <= i; j++)
d[i][j] = a[i][j] + max(d[i+1][j],d[i+1][j+1]);
printf("%d\n",d[1][1]);
}
return 0;
}
const int MAXN = 100 + 10;
int a[MAXN][MAXN],d[MAXN][MAXN];
int n;
inline int max(int a, int b) { return a > b ? a : b; }
int main()
{
int i,j;
freopen("1.txt","r",stdin);
while (scanf("%d",&n) != EOF)
{
for (i = 1; i <= n; ++i)
for (j = 1; j <= i; ++j)
scanf("%d",&a[i][j]);
for (j = 1; j <= n; j++) d[n][j] = a[n][j];
for (i = n - 1; i >= 1; i--)
for (j = 1; j <= i; j++)
d[i][j] = a[i][j] + max(d[i+1][j],d[i+1][j+1]);
printf("%d\n",d[1][1]);
}
return 0;
}
1 /*
2 輸入正整數(shù)k,找到所有的正整數(shù)x>=y,使得1/k = 1/x + 1/y.
3 樣例輸入:
4 2
5 12
6 樣例輸出
7 2
8 1/2=1/6+1/3
9 1/2=1/4+1/4
10
11 8
12 1/12 = 1/156 + 1/13
13 1/12 = 1/84 + 1/14
14 1/12 = 1/60 + 1/15
15 1/12 = 1/48 + 1/16
16 1/12 = 1/36 + 1/18
17 1/12 = 1/30 + 1/20
18 1/12 = 1/28 + 1/21
19 1/12 = 1/24 + 1/24
20 */
21 #include <stdio.h>
22
23 const int MAXN = 1000 + 10;
24 int x[MAXN],y[MAXN];
25
26 int main()
27 {
28 int k;
29 int ans;
30 int i;
31 while (scanf("%d",&k) != EOF)
32 {
33 ans = 0;
34 for (i = k + 1; i <= 2*k; ++i)
35 {
36 if ((k * i) % (i-k) == 0) { x[ans] = (k*i)/(i-k),y[ans++] = i; }
37 }
38 printf("%d\n",ans);
39 for (i = 0; i < ans; ++i)
40 {
41 printf("1/%d = 1/%d + 1/%d\n",k,x[i],y[i]);
42 }
43 }
44 return 0;
45 }
46
2 輸入正整數(shù)k,找到所有的正整數(shù)x>=y,使得1/k = 1/x + 1/y.
3 樣例輸入:
4 2
5 12
6 樣例輸出
7 2
8 1/2=1/6+1/3
9 1/2=1/4+1/4
10
11 8
12 1/12 = 1/156 + 1/13
13 1/12 = 1/84 + 1/14
14 1/12 = 1/60 + 1/15
15 1/12 = 1/48 + 1/16
16 1/12 = 1/36 + 1/18
17 1/12 = 1/30 + 1/20
18 1/12 = 1/28 + 1/21
19 1/12 = 1/24 + 1/24
20 */
21 #include <stdio.h>
22
23 const int MAXN = 1000 + 10;
24 int x[MAXN],y[MAXN];
25
26 int main()
27 {
28 int k;
29 int ans;
30 int i;
31 while (scanf("%d",&k) != EOF)
32 {
33 ans = 0;
34 for (i = k + 1; i <= 2*k; ++i)
35 {
36 if ((k * i) % (i-k) == 0) { x[ans] = (k*i)/(i-k),y[ans++] = i; }
37 }
38 printf("%d\n",ans);
39 for (i = 0; i < ans; ++i)
40 {
41 printf("1/%d = 1/%d + 1/%d\n",k,x[i],y[i]);
42 }
43 }
44 return 0;
45 }
46
Genealogical tree. 家譜樹 Time Limit: 1 second Memory Limit: 16M
Background 大意:火星人的種族關(guān)系比較混亂。宗族管理委員會(huì)進(jìn)行開會(huì)發(fā)言等活動(dòng)時(shí),又想遵守先長輩,后晚輩的順序。 于是有下面的問題:
Problem 編寫一個(gè)程序?qū)o定的人員,決定一個(gè)先后順序, 這個(gè)順序必須遵守先長輩,后晚輩的原則。
Input 首行為N, 1 <= N <= 100 ,N為總?cè)藬?shù)。根據(jù)百年傳統(tǒng),給人員用自然數(shù)編號(hào)為1至N。以下的N行,第I行為第I個(gè)人的子孫列表,子孫的順序是任意的,用空格隔開,且以0為結(jié)束。子孫列表可以是空的。
Output 在一行內(nèi)輸出發(fā)言的順序。 如有多個(gè)順序滿足條件,則輸出任一個(gè)。至少會(huì)有一個(gè)滿足的順序的。
Sample Input
5 0 4 5 1 0 1 0 5 3 0 3 0
Sample Output
2 4 5 3 1
/* URAL 1022 Genealogical tree
* 900803 09:04:18 21 Aug 2005 RoBa 1022 C++ Accepted 0.001 190 KB
* 拓?fù)渑判?nbsp;
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
const int MAX = 101;
int map[MAX][MAX],inde[MAX],taken[MAX];
int main()
{
int i,n,tmp,j;
while (scanf("%d",&n)!=EOF)
{
memset(map,0,sizeof(map));
memset(inde,0,sizeof(inde));
for (i = 1 ; i <= n ; i++)
while (scanf("%d",&tmp),tmp)
{
map[i][tmp] = 1;
++inde[tmp];
}
while (1)
{
for (i = 1 ; i <= n ; i++)
if (inde[i] == 0 && taken[i] == 0) break;
if (i > n) break;
for (j = 1 ; j <= n ; j++)
if (map[i][j])
{
map[i][j] = 0;
--inde[j];
}
taken[i] = 1;
printf("%d ",i);
}
printf("\n");
}
return 0;
}
* 900803 09:04:18 21 Aug 2005 RoBa 1022 C++ Accepted 0.001 190 KB
* 拓?fù)渑判?nbsp;
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
const int MAX = 101;
int map[MAX][MAX],inde[MAX],taken[MAX];
int main()
{
int i,n,tmp,j;
while (scanf("%d",&n)!=EOF)
{
memset(map,0,sizeof(map));
memset(inde,0,sizeof(inde));
for (i = 1 ; i <= n ; i++)
while (scanf("%d",&tmp),tmp)
{
map[i][tmp] = 1;
++inde[tmp];
}
while (1)
{
for (i = 1 ; i <= n ; i++)
if (inde[i] == 0 && taken[i] == 0) break;
if (i > n) break;
for (j = 1 ; j <= n ; j++)
if (map[i][j])
{
map[i][j] = 0;
--inde[j];
}
taken[i] = 1;
printf("%d ",i);
}
printf("\n");
}
return 0;
}
收藏了很多牛人的技術(shù)博客
http://www.shnenglu.com/Cunch/archive/2011/08/04/152447.html
Effective C++ 35條,http://www.shnenglu.com/Cunch/archive/2011/08/04/152447.html
http://blog.csdn.net/herm_lib/article/list/2
TR1::functional
| |||||||||
日 | 一 | 二 | 三 | 四 | 五 | 六 | |||
---|---|---|---|---|---|---|---|---|---|
29 | 30 | 1 | 2 | 3 | 4 | 5 | |||
6 | 7 | 8 | 9 | 10 | 11 | 12 | |||
13 | 14 | 15 | 16 | 17 | 18 | 19 | |||
20 | 21 | 22 | 23 | 24 | 25 | 26 | |||
27 | 28 | 29 | 30 | 31 | 1 | 2 | |||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
常用鏈接
留言簿
隨筆分類
隨筆檔案
搜索
最新評(píng)論

閱讀排行榜
- 1.?gdb調(diào)試打印數(shù)組的一段內(nèi)存(1567)
- 2.?error: expected specifier-qualifier-list before 'PQ'(suse上源碼安裝graphviz)(915)
- 3.?數(shù)字三角形(記憶化搜索和遞歸)(841)
- 4.?(TODO)ACE讀取ini配置文件(627)
- 5.?slice2cpp: error while loading shared libraries: libSlice.so.34: cannot open shared object file: No such file or directory(570)