IT民工
加油!
摘要: #include<stdio.h>#include<string.h>#define MAXD 105int a[MAXD], b[MAXD];int d[MAXD][MAXD];int N1, N2;int max( int a, int b){ return a > b ? a : b;}void init(){ for( int i = 1; i <= N1; i ++) scanf( "%d", &a[i]); for( int i = 1; i <= N2; i ++) scanf( "%d", 阅读全文
posted @ 2011-11-30 18:43 找回失去的 阅读(237) 评论(0) 推荐(0) 编辑
摘要: 这道题的输入比较奇葩,先输入N,再输入事件号,事件对应的时间是输入序列中的编号。然后再求序列c与序列r的最长公共子序列。#include<stdio.h>#include<string.h>#define MAXD 25int d[MAXD][MAXD], c[MAXD], r[MAXD];int N;int max( int a, int b){ return a > b ? a : b;}void dp(){ memset( d, 0, sizeof d); for( int i = 1; i <= N; i ++) for( int j = 1; j 阅读全文
posted @ 2011-11-30 17:50 找回失去的 阅读(235) 评论(0) 推荐(0) 编辑
摘要: 判断s串中的字符是不是依次出现在t串中,如果s的长度大于t,显然不行,其他的依次比较即可。但是字符串要定义得长一些,开始定义10000,RE了。#include<stdio.h>#include<string.h>char s[100000], t[100000];int main(){ while( scanf( "%s%s", s, t) == 2) { int len1 = strlen(s); int len2 = strlen(t); if( len1 > len2) { printf( "No\n"); ... 阅读全文
posted @ 2011-11-30 12:18 找回失去的 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 判断u->v 和 v -> u是否成对出现。#include<stdio.h>#include<string.h>#define MAXD 1005int G[MAXD][MAXD];int N, u, v;bool check(){ for( int i = 1; i <= 1000; i ++) for( int j = 1; j <= 1000; j ++) if( G[i][j] != 0) return false; return true;}void init(){ memset(G, 0, sizeof G); for(... 阅读全文
posted @ 2011-11-30 11:33 找回失去的 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 这道题和连接校园一样都是求最小生成树,用kruskal算法做,点的坐标要用double型#include<stdio.h>#include<stdlib.h>#include<math.h>#include<string.h>#define MAXD 150double x[MAXD], y[MAXD], w[MAXD * MAXD], ans;int r[MAXD * MAXD], p[MAXD], u[MAXD * MAXD], v[MAXD * MAXD];int cas, N, n, nx, ny;double dist( int i, 阅读全文
posted @ 2011-11-30 11:06 找回失去的 阅读(190) 评论(0) 推荐(0) 编辑