望麓自卑—湖南大学最具潜力的校园传媒

 找回密码
 注册

QQ登录

只需一步,快速开始

楼主: stephenmjm

湖南大学计算机与通信学院2007年保研能力测试(机试题目+部分解题报告)

  [复制链接]
发表于 2008-9-18 17:35:29 | 显示全部楼层
ding
发表于 2008-9-22 18:52:26 | 显示全部楼层
[s:332]我要看答案
发表于 2008-9-23 12:11:15 | 显示全部楼层
谢谢楼主,不知道每两年之间有没有重复的题目。
发表于 2008-9-23 12:35:34 | 显示全部楼层
这题还是挺难的,大家觉得呢?
发表于 2008-9-23 12:35:54 | 显示全部楼层
要想保上咱们学校,这些题目至少要做出来几个啊
发表于 2008-9-23 19:11:41 | 显示全部楼层
引用第26楼green_guitar于2008-09-23 12:11发表的:
谢谢楼主,不知道每两年之间有没有重复的题目。
保证没有...请放心
发表于 2008-9-23 19:15:24 | 显示全部楼层
共享我去年的一些代码了..
几点说明:比赛比的是效率,所以代码不一定效率高..
后天就要测试了..所以大家加油..
IP Address
User: team005 , Problem : 10025
Language : GNU C , Judge Result: Accepted
Source Code
#include <stdio.h>
char buf[100];
int ip;
int main()
{
int t,j,i;
scanf("%d",&t);
while(t--)
{
scanf("%s",buf);
for(i=0;i<4;i++)
{
int num = 0;
for(j=0;j<8;j++)
{
num = num * 2 + buf[i*8+j] - &#39;0&#39;;
}
printf("%d",num);
if(i<3) printf(".");
else printf("\n");
}
}
return 0;
}
发表于 2008-9-23 19:16:42 | 显示全部楼层
Check a Sudoku
User: team005 , Problem : 10140
Language : GNU C++ , Judge Result: Accepted
Source Code
#include <iostream>

int num[9][9];
int useda[9][10];
int usedb[9][10];
int usedsub[9][10];

int main()
{
int i,j,t,Case = 1;
scanf("%d",&t);
while(t--)
{
for(i=0;i<9;i++)
{
for(j=0;j<9;j++)
{
scanf("%d",&num[j]);
}
}
memset(useda,0,sizeof(useda));
memset(usedb,0,sizeof(usedb));
memset(usedsub,0,sizeof(usedsub));
int flag = 0;
for(i=0;!flag && i<9;i++)
{
for(j=0;!flag && j<9;j++)
{
if(!useda[num[j]])
{
useda[num[j]] = 1;
}
else flag = 1;
// if(flag ) printf("11 %d %d\n",i,j);
if(!usedb[j][num[j]])
{
usedb[j][num[j]] = 1;
}
else flag = 1;
//if(flag ) printf("22 %d %d\n",i,j);
if(!usedsub[(i/3) * 3 + j/3][num[j]])
{
usedsub[(i/3) * 3 + j/3][num[j]] = 1;
}
else flag = 1;
//if(flag ) printf("33 %d %d\n",i,j);
}
}
//for(i=0;i<9;i++) {for(j=0;j<10;j++)printf("%d ",useda[j]); printf("\n");}
//for(i=0;i<9;i++) {for(j=0;j<10;j++)printf("%d ",usedb[j]); printf("\n");}
//for(i=0;i<9;i++) {for(j=0;j<10;j++)printf("%d ",usedsub[j]); printf("\n");}
printf("Case %d:\n",Case++);
if(!flag ) puts("Yes!");
else puts("No!");
}
return 0;
}


CRC校验
User: team005 , Problem : 10164
Language : GNU C++ , Judge Result: Accepted
Source Code
#include <iostream>
char buf[10000];
int g = 34943;
int main()
{
int i,j;
while(gets(buf))
{
if(buf[0]==&#39;#&#39;) break;
int sum = 0;
for(i=0;buf;i++)
{
sum = sum * 256 + (unsigned char)buf;
sum %= g;
}
sum = (sum * 256) % g;
sum = (sum * 256) % g;
sum = g - sum;
if(sum == g) sum = 0;
printf("%02X %02X\n",sum>>8,sum%256);
}
return 0;
}
发表于 2008-9-23 19:17:37 | 显示全部楼层
合并果子
User: team005 , Problem : 10163
Language : GNU C++ , Judge Result: Accepted
Source Code
#include <iostream>
#include <algorithm>
#define MAX 20000
using namespace std;
int n;
int a[MAX];
int main()
{
int i,j;
int ans;
int tmp;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a);
}
sort(a,a+n);
ans = 0;
for(i=0;i<n-1;i++)
{
ans += a[0]+a[1];
a[0] = a[0]+a[1];
for(j=1;j<n-i-1;j++)
{
a[j] = a[j+1];
}
// for(j=0;j<n-i-1;j++) printf("%d ",a[j]); printf("\n");
for(j=0;j<n-i-2;j++)
{
if(a[j] > a[j+1])
{
tmp = a[j];
a[j] = a[j+1];
a[j+1] = tmp;
}
}
//for(j=0;j<n-i-1;j++) printf("%d ",a[j]); printf("\n");
}
printf("%d\n",ans);
//system("pause");
return 0;
}


Don&#39;t ask woman about her age
User: team005 , Problem : 10160
Language : GNU C++ , Judge Result: Accepted
Source Code
#include <iostream>
#include <ctype.h>
char buf[1000000];

int main()
{
int i,j,ans,k;
int sum;
scanf("%s",buf);
k = 2;
for(i=0;buf;i++)
{
if(isdigit(buf) && buf-&#39;0&#39;+1 > k)
{
k = buf-&#39;0&#39;+1;
}
else if(buf-&#39;A&#39; + 11 > k)
{
k = buf-&#39;A&#39;+11;
}
}
for(;k<=36;k++)
{
sum = 0;
for(i=0;buf;i++)
{
if(buf>=&#39;0&#39; && buf<=&#39;9&#39;)
sum += buf - &#39;0&#39;;
else sum += buf - &#39;A&#39; + 10;

}
if(sum % (k-1) == 0) break;
}
if(k<=36) printf("%d\n",k);
else puts("No solution.");
return 0;
}
发表于 2008-9-23 19:18:32 | 显示全部楼层
二叉树遍历
User: team005 , Problem : 10166
Language : GNU C++ , Judge Result: Accepted
Source Code
#include <iostream>

struct node
{
char val;
int id;
struct node *l;
struct node *r;
node() {l = NULL;r = NULL;};
node(int _id) :id(_id){l = NULL;r = NULL;}
} *root;

int n;

void dfsa(node *p)
{
if(p==NULL) return;
dfsa(p->l);
printf("%c",p->val);
dfsa(p->r);
}
void dfsb(node *p)
{
if(p==NULL) return;
printf("%c",p->val);
dfsb(p->l);
dfsb(p->r);
}
void dfsc(node *p)
{
if(p==NULL) return;
dfsc(p->l);
dfsc(p->r);
printf("%c",p->val);
}
node *q;
void insert(node *p,char val,int id,int l,int r)
{
if(p==NULL) return;
if(p->id == id)
{
p->val = val;

if(l!=0)
{
q = new node(l);
p->l = q;
}
if(r!=0)
{
q = new node(r);
p->r = q;
}
}
else
{
insert(p->l,val,id,l,r);
insert(p->r,val,id,l,r);
}
}

int main()
{
int t,i,j;
int l,r;
char ch;
int Case = 1;
scanf("%d",&t);
while(t--)
{
scanf("%d\n",&n);
root = new node(1);
for(i=0;i<n;i++)
{
scanf("%c %d %d\n",&ch,&l,&r);
// printf("%c %d %d\n",ch,l,r);
insert(root,ch,i+1,l,r);
}
printf("Case %d:\n",Case++);
dfsb(root);
printf("\n");
dfsa(root);
printf("\n");
dfsc(root);
printf("\n");
}
}


“快乐男生”演唱会
User: team005 , Problem : 10165
Language : JAVA , Judge Result: Accepted
Source Code
import java.io.*;
import java.util.*;
import java.math.BigInteger;

public class Main
{
public static void main (String args[]) throws Exception
{
BigInteger [][] f = new BigInteger [101][101];
int i,j;
for(i=0;i<101;i++) for(j=0;j<101;j++) f[j] = new BigInteger("0");
for(i=0;i<101;i++) f[0] = BigInteger.ONE;
f[1][1] = BigInteger.ONE;
for(i=2;i<=100;i++)
{
for(j=1;j<=i;j++)
{
f[j] = f[i-1][j].add(f[j-1]);
}
}
Scanner cin=new Scanner(System.in);
int n;
while(true)
{
n = cin.nextInt();
if(n==-1) break;
System.out.println(f[n][n]);
}
}
}
发表于 2008-9-24 20:19:42 | 显示全部楼层
楼上这位兄弟是不是我们学校的在读研究生了,呵呵,不知道和导师熟不熟啊?我今年保呢,这位兄弟能不能帮忙打听啊?另外想问下,这些题目要做对几个才有希望保上啊?
发表于 2008-9-24 20:22:02 | 显示全部楼层
或者这位兄弟能不能说说机试题目有什么规律没有,或者有什么复习方法没,时间不多了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

每日推荐上一条 /1 下一条

小黑屋|手机版|湖南大学望麓自卑校园传媒 ( 湘ICP备14014987号 )

GMT+8, 2024-11-30 20:20 , Processed in 0.118945 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表