Archives for 程序与算法

HDU 1231 最大连续子序列

C++代码 /*   Title: 最大连续子序列   Problem URL: http://acm.hdu.edu.cn/showproblem.php?pid=1231   Author: Moqi   Date: 2008-03-19   Description:505951 2008-03-19 22:42:40 Accepted 1231 203MS 0K 857B C moqi    */   #include <stdio.h>    int main()    {        int i, k, n, max, sumk, flag;        int s[10001], sum[10001], a[10001];        while (scanf ("%d", &n))        {            flag = 0;            if (n == 0)                break;            sumk = k = max = 0;            for (i = 0; i < n; i++)            {                scanf("%d", &s[i]);                if (s[i] >= 0)                    flag = 1;                if (sumk >= 0)                {                    sumk += s[i];                    a[i] = k;                } […]

HDU 1228 A+B

C++代码 /*   Title: A + B   Problem URL: http://acm.hdu.edu.cn/showproblem.php?pid=1228   Author: Moqi   Date: 2008-03-19   Description:505495 2008-03-19 20:33:48 Accepted 1228 0MS 0K 826 B C moqi    */   #include <stdio.h>    #include <math.h>    int main()    {        int s, a, i, j;        char line[1024];        char num[10][5] = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};        while (gets(line))        {            s = j = 0;            a = 0;            while (line[j] != ‘=’)            {                for (i = 0; i < 10; i++)                {                    if (line[j] == num[i][0] && line[j+1] == num[i][1])                    {                        a += i;                        while(line[j] != ‘ ‘)                            j++;                        break; […]

ZOJ 1151 Word Reversal

C++代码 /*   Title: Word Reversal   Problem URL: http://acm.zju.edu.cn/show_problem.php?pid=1151   Author: moqi   Date: 2008-02-08   Description: Accepted 1151 C++ 00:00.04 392K with Presentation Error * 4   */      #include <stdio.h>    #include <string.h>    int i, lines;    int total, now;    char s[250];    char c;       int main()    {    #ifdef ONLINE_JUDGE    #else        freopen("1151.txt", "r", stdin);    #endif        scanf("%d", &total);        for (now = 0; now < total; now++)        {            scanf("%d\n", &lines);//IMPORTANT plus \n            while (lines– >= 0)            {                i = 0;                while ((c = getchar()) != EOF) […]

ZOJ 1067 Color Me Less

C++代码 /*   Title: Color Me Less     Problem URL: http://acm.zju.edu.cn/show_problem.php?pid=1067   Author: moqi   Date: 2008-02-08   Description: Accepted 1067 C++ 00:00.00 388K   */      #include <stdlib.h>    #include <stdio.h>    int t[16][3];    int now[3];    int i, j;    long min, d;       int main()    {    #ifdef ONLINE_JUDGE    #else        freopen("1067.txt", "r", stdin);    #endif        for (i = 0; i < 16; i++)        {            scanf("%d %d %d", &t[i][0], &t[i][1], &t[i][2]);        }        while (scanf("%d %d %d", &now[0], &now[1], &now[2]) != -1)        {            if (now[0] == -1)                break; […]

ZOJ 1051 A New Growth Industry

C++代码 /*      Title: A New Growth Industry      Problem URL: http://acm.zju.edu.cn/show_problem.php?pid=1051   Author: fairylan   Date: 2008-02-07   Reference: http://blog.csdn.net/fairylan/archive/2006/07/10/900817.aspx   Description: Accepted 1051 C++ 00:00.00 392K   */      #include <stdio.h>    #include <string.h>    #define MAXN 20    char ch[]=".!X#";    int dish[MAXN][MAXN],res[MAXN][MAXN];    int day,d[16];    void solve()    {           int i,j,k;           scanf ("%d",&day);           for (k=0; k<16; ++k) scanf ("%d",&d[k]);           for (i=0; i<MAXN; ++i)                  for (j=0; j<MAXN; ++j)                         scanf ("%d",&dish[i][j]);           while (day–){                  for (i=0; i<MAXN; ++i)                         for (j=0; j<MAXN; ++j){                                k = dish[i][j];                                if (i-1>=0) k += dish[i-1][j];    […]

ZOJ 1295

C++代码 /*   Title: Reverse Text   Problem URL: http://acm.zju.edu.cn/show_problem.php?pid=1295   Author: Moqi   Date: 2007-12-30   Description:    */   #include <stdio.h>    #include <string.h>       int main()    {        int i, n;        char c[80];        scanf("%d", &n);        getchar();        while (n > 0)        {            i = 0;            while ((c[i++] = getchar()) != ‘\n’)                ;            i–;            while (–i >= 0)                putchar(c[i]);            printf("\n");               n–;        }        return 0; […]

ZOJ 1115

C++代码 /*   Title: Digital Roots   Problem URL: http://acm.zju.edu.cn/show_problem.php?pid=1115   Author: Moqi   Date: 2007-12-30   Description:    */   #include <stdio.h>    #include <string.h>       int main()    {        char c;        int n, sum;           while (1)        {            n = 0;            while ((c = getchar()) != ‘\n’)                n += (c – ‘0’);            if (n == 0)                break;            do           {   sum = 0;                while(n != 0)                {                    sum += n % 10;                    n /= 10;                }    […]

ZOJ 1115

  C++代码 /*   Title: Digital Roots   Problem URL: http://acm.zju.edu.cn/show_problem.php?pid=1115   Author: Moqi   Date: 2007-12-30   Description:    */   #include <stdio.h>    #include <string.h>       int main()    {        char c;        int n, sum;           while (1)        {            n = 0;            while ((c = getchar()) != ‘\n’)                n += (c – ‘0’);            if (n == 0)                break;            do           {   sum = 0;                while(n != 0)                {                    sum += n % 10;                    n /= 10;                } […]

ZOJ 1113

C++代码 /*   Title: u Calculate e   Problem URL: http://acm.zju.edu.cn/show_problem.php?pid=1113   Author: Moqi   Date: 2007-12-30   Description:    */   #include <stdio.h>    #include <string.h>       int main()    {        int i;        double sum;        double c[10];        sum = c[0] = 1.0;        printf("n e\n- ———–\n0 1\n1 2\n2 2.5\n");        for (i = 1; i <= 9; i++)        {            c[i] = c[i-1] / i;            sum += c[i];            if (i >= 3)                printf("%d %.9f\n", i, sum);        }        return 0;    }  

ZOJ 1049

C++代码 /*   Title: I Think I Need a Houseboat   Problem URL: http://acm.zju.edu.cn/show_problem.php?pid=1049   Author: Moqi   Date: 2007-12-31   Description:    */   #include <stdio.h>    #include <math.h>    int main()    {        int i, j, n;        float d, a, b;        scanf("%d", &n);        for(i = 1; i <= n; i++)        {            scanf("%f %f", &a, &b);            d = a * a + b * b;            j = d * 3.14159 / 100;            j = j + 1;            printf("Property %d: This property will begin eroding in year %d.\n", i, j);        }        printf("END OF OUTPUT.\n");        return 0;    }