注:本文参考了 https://bbs.csdn.net/topics/392177700
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; }