|
Posted on 2011-09-27 16:11 Uriel 阅读(527) 评论(2) 编辑 收藏 引用 所属分类: 考研&保研复试上机题
还比较水。。但是罚时茫茫多。。。= = 1. 找位置 nt数组忘记初始化。。OLE*1。。。 PS: 2012.03.05 updated!! 没有重复出现的字母不需要输出!! //2005年华中科技大学计算机保研机试题 找位置 #include<stdio.h> #include<stdlib.h> #include<string.h>
int mk[400],fg[400][100], nt[400]; char s[200];
int main() { int i, j; while(gets(s) != NULL) { memset(mk, 0, sizeof(mk)); memset(fg, -1, sizeof(fg)); memset(nt, 0, sizeof(nt)); for(i = 0; s[i]; ++i) { if(mk[s[i]]) fg[s[i]][nt[s[i]]++] = i; else { mk[s[i]] = 1; fg[s[i]][nt[s[i]]++] = i; } } memset(mk, 0, sizeof(mk)); for(i = 0; s[i]; ++i) { if(!mk[s[i]] && nt[s[i]] > 1) { printf("%c:%d", s[i], fg[s[i]][0]); for(j = 1; j < nt[s[i]]; ++j) printf(",%c:%d", s[i], fg[s[i]][j]); puts(""); mk[s[i]] = 1; } } } return 0; } /************************************************************** Problem: 1199 User: Uriel Language: C++ Result: Accepted Time:30 ms Memory:1172 kb ****************************************************************/
2. 最大的两个数 看错题。。WA*4。。
//2005年华中科技大学计算机保研机试题 最大的两个数
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define INF 0x3f3f3f3f
int t[4][5], mx[5][2], pos[5][2];
 int main() {
int i, j, cse, fg;
 while(~scanf("%d", &cse)) {
 while(cse--) {
 for(i = 0; i < 5; ++i) {
mx[i][0] = mx[i][1] = -INF;
}
 for(i = 0; i < 4; ++i) {
 for(j = 0; j < 5; ++j) {
scanf("%d", &t[i][j]);
 if(t[i][j] > mx[j][0]) {
mx[j][1] = mx[j][0];
mx[j][0] = t[i][j];
}
else if(t[i][j] > mx[j][1]) mx[j][1] = t[i][j];
}
}
 for(i = 0; i < 5; ++i) {
 for(j = 0; j < 4; ++j) {
 if(t[j][i] == mx[i][0]) {
fg = 0;
pos[i][0] = j;
break;
}
 else if(t[j][i] == mx[i][1]) {
fg = 1;
pos[i][0] = j;
break;
}
}
 for(++j; j < 4; ++j) {
 if(t[j][i] == mx[i][0] && fg) {
pos[i][1] = j;
break;
}
 else if(t[j][i] == mx[i][1] && !fg) {
pos[i][1] = j;
break;
}
}
}
for(i = 0; i < 5; ++i) printf("%d ", t[pos[i][0]][i]);
puts("");
for(i = 0; i < 5; ++i) printf("%d ", t[pos[i][1]][i]);
puts("");
}
}
return 0;
}
 /**//**************************************************************
Problem: 1200
User: Uriel
Language: C++
Result: Accepted
Time:20 ms
Memory:1012 kb
****************************************************************/3. 二叉排序树 貌似有0的情况。。一开始若结点数为0直接结束就TLE,改为结点数为0就输出空行就AC
//2005年华中科技大学计算机保研机试题 二叉排序树
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
 struct node {
int l, r, s;
}p[1000];
int n;
 int ext(int rt, int x) {
if(rt == -1) return 0;
else if(p[rt].s == x) return 1;
else if(x < p[rt].s) return ext(p[rt].l, x);
else
return ext(p[rt].r, x);
}
 void ins(int idx, int rt, int x) {
 if(x < p[rt].s) {
if(~p[rt].l) ins(idx, p[rt].l, x);
 else {
p[rt].l = idx;
p[idx].l = p[idx].r = -1;
p[idx].s = x;
}
}
 else if(x > p[rt].s) {
if(~p[rt].r) ins(idx, p[rt].r, x);
 else {
p[rt].r = idx;
p[idx].l = p[idx].r = -1;
p[idx].s = x;
}
}
}
 void preorder(int rt) {
 if(~rt) {
printf("%d ", p[rt].s);
preorder(p[rt].l);
preorder(p[rt].r);
}
}
 void inorder(int rt) {
 if(~rt) {
inorder(p[rt].l);
printf("%d ", p[rt].s);
inorder(p[rt].r);
}
}
 void postorder(int rt) {
 if(~rt) {
postorder(p[rt].l);
postorder(p[rt].r);
printf("%d ", p[rt].s);
}
}
 int main() {
int i, a;
 while(~scanf("%d", &n)) {
 if(!n) {
puts("");
continue;
}
for(i = 0; i <= n; ++i) p[i].l = p[i].r = -1;
scanf("%d", &a);
p[0].s = a;
 for(i = 1; i < n; ++i) {
scanf("%d", &a);
if(ext(0, a)) continue;
else
ins(i, 0, a);
}
preorder(0);
puts("");
inorder(0);
puts("");
postorder(0);
puts("");
}
return 0;
}
 /**//**************************************************************
Problem: 1201
User: Uriel
Language: C++
Result: Accepted
Time:100 ms
Memory:1024 kb
****************************************************************/4. 排序 大水不解释
//2006年华中科技大学计算机保研机试题 二叉排序树
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<algorithm>
using namespace std;
int a[120], n;
 int main() {
int i;
 while(~scanf("%d", &n)) {
 for(i = 0; i < n; ++i) {
scanf("%d", &a[i]);
}
sort(a, a + n);
for(i = 0; i < n; ++i) printf("%d ", a[i]);
puts("");
}
return 0;
}
 /**//**************************************************************
Problem: 1202
User: Uriel
Language: C++
Result: Accepted
Time:40 ms
Memory:1012 kb
****************************************************************/5. IP地址 大水不解释
//2006年华中科技大学计算机保研机试题 IP地址
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
 int main() {
int cse, a, b, c, d;
scanf("%d", &cse);
 while(cse--) {
scanf("%d.%d.%d.%d", &a, &b, &c, &d);
if(a >= 0 && a <= 255 && b >= 0 && b <= 255 && c >= 0 && c <= 255 && d >= 0 && d <= 255) puts("Yes!");
else
puts("No!");
}
return 0;
}
 /**//**************************************************************
Problem: 1203
User: Uriel
Language: C++
Result: Accepted
Time:10 ms
Memory:1012 kb
****************************************************************/
Feedback
# re: 华中科技大学计算机研究生机试题-2005,2006年[未登录] 回复 更多评论
2012-03-05 19:40 by
同学,貌似1199找位置那个题rejudge了,你的代码好像不行哦。 话说,那题题意不清啊,大小写字母区分不?
# re: 华中科技大学计算机研究生机试题-2005,2006年 回复 更多评论
2012-03-05 21:44 by
@ZAKIR 是的,Rejudge了,我已经update了,现在这个代码可以AC
|