Uriel's Corner

Research Associate @ Harvard University / Research Interests: Computer Vision, Biomedical Image Analysis, Machine Learning
posts - 0, comments - 50, trackbacks - 0, articles - 594
PS: 某天貌似OJ的数据改了。。Rejudge了。。这套的所有题改成多case才过。。我的AC率啊。。。。。。。。

这四道都是大水

1. A+B for Matrices
    2011.09.24 PS: 九度怎么一天到晚Rejudge啊。。这题Rejudge之后莫名地CE了。。第一行去掉才过。。
//2011年浙江大学计算机及软件工程研究生机试题 A+B for Matrices
#include<stdio.h>
#include
<stdlib.h>

int n, m;
int a[15][15];

int main() {
    
int i, j, b, cnt;
    
while(scanf("%d"&n), n) {
        scanf(
"%d"&m);
        
for(i = 0; i < n; ++i) {
            
for(j = 0; j < m; ++j) {
                scanf(
"%d"&a[i][j]);
            }

        }

        
for(i = 0 ; i < n; ++i) {
            
for(j = 0; j < m; ++j) {
                scanf(
"%d"&b);
                a[i][j] 
+=b;
            }

        }

        cnt 
= 0;
        
for(i = 0; i < n; ++i) {
            
for(j = 0; j < m; ++j) {
                
if(a[i][j] != 0 ) break;
            }

            
if(j == m) ++cnt;
        }

        
for(i = 0; i < m; ++i) {
            
for(j = 0; j < n; ++j) {
                
if(a[j][i] != 0 ) break;
            }

            
if(j == n) ++cnt;
        }

        printf(
"%d\n", cnt);
    }

    
return 0;
}


2. Grading
//2011年浙江大学计算机及软件工程研究生机试题 Grading
#include<math.h>
#include
<stdio.h>
#include
<stdio.h>
#include
<string.h>
#include
<algorithm>
using namespace std;

double p, g1, g2, g3, gj, t, ans;

int main() {
    scanf(
"%lf %lf %lf %lf %lf %lf"&p, &t, &g1, &g2, &g3, &gj);
    
if(fabs(g1 - g2) <= t) ans = (g1 + g2) / 2.0;
    
else if(fabs(g1 - g3) > t && fabs(g2 - g3) > t) ans = gj;
    
else if(fabs(g1 - g3) <= t &&  fabs(g2 - g3) <= t) ans = max(max(g1, g2), g3);
    
else {
        
if(fabs(g1 - g3) < fabs(g2 - g3)) ans = (g1 + g3) / 2.0;
        
else
            ans 
= (g2 + g3) /2.0;
    }

    printf(
"%.1lf\n", ans);
    
return 0;
}


3. Median
//2011年浙江大学计算机及软件工程研究生机试题 Median
#include<stdio.h>
#include
<stdlib.h>
#include
<algorithm>
using namespace std;

int n, m;
long long a[4000010];

int main() {
    
int i;
    scanf(
"%d"&n);
    
for(i = 0; i < n; ++i) scanf("%lld"&a[i]);
    scanf(
"%d"&m);
    
for(i = 0; i < m; ++i) scanf("%lld"&a[i + n]);
    sort(a, a 
+ n + m);
    printf(
"%lld\n", a[(n + m - 1/ 2]);
    
return 0;
}


4. Graduate Admission
    没说每个学校招生人数的范围, 开40000会MLE, 开4010 AC
//2011年浙江大学计算机及软件工程研究生机试题 Graduate Admission
#include<stdio.h>
#include
<stdlib.h>
#include
<string.h>
#include
<algorithm>
using namespace std;

struct App{
    
int id, per[6];
    
int ge, gi, fi;
}
p[40001];

struct Ac{
    
int id[4010];
    
int ge[4010], gi[4010], fi[4010];
}
lst[101];

bool cmp(App a, App b) {
    
if((a.ge + a.gi) != (b.ge + b.gi)) return (a.ge + a.gi) > (b.ge + b.gi);
    
return a.ge > b.ge;
}


int n, m, k, quo[101], tol[101];

int main() {
    
int i, j, tid;
    scanf(
"%d %d %d"&n, &m, &k);
    
for(i = 0; i < m; ++i) {
        scanf(
"%d"&quo[i]);
    }

    
for(i = 0; i < n; ++i) {
        scanf(
"%d %d"&p[i].ge, &p[i].gi);
        p[i].id 
= i;
        p[i].fi 
= p[i].ge +  p[i].gi;
        
for(j = 0; j < k; ++j) scanf("%d"&p[i].per[j]);
    }

    sort(p, p 
+ n, cmp);
    memset(tol, 
0sizeof(tol));
    
for(i = 0; i < n; ++i) {
        
for(j = 0; j < k; ++j) {
            tid 
= p[i].per[j];
            
if(tol[tid] < quo[tid]) {
                lst[tid].ge[tol[tid]] 
= p[i].ge;
                lst[tid].gi[tol[tid]] 
= p[i].gi;
                lst[tid].fi[tol[tid]] 
= p[i].fi;
                lst[tid].id[tol[tid]] 
= p[i].id;
                tol[tid]
++;
                
break;
            }

            
else if(tol[tid] > 0 && lst[tid].fi[tol[tid] - 1== p[i].fi && lst[tid].ge[tol[tid] - 1== p[i].ge) {
                lst[tid].ge[tol[tid]] 
= p[i].ge;
                lst[tid].gi[tol[tid]] 
= p[i].gi;
                lst[tid].fi[tol[tid]] 
= p[i].fi;
                lst[tid].id[tol[tid]] 
= p[i].id;
                tol[tid]
++;
                
break;
            }

        }

    }

    
for(i = 0; i < m; ++i) {
        sort(lst[i].id, lst[i].id 
+ tol[i]);
        
for(j = 0; j < tol[i] - 1++j) printf("%d ", lst[i].id[j]);
        
if(tol[i] > 0) printf("%d\n", lst[i].id[tol[i] - 1]);
        
else
            puts(
"");
    }

    
return 0;
}

Feedback

# re: 浙大计算机研究生复试上机考试-2011年  回复  更多评论   

2011-08-19 00:07 by ch_g
硕强是不是打算保浙大

# re: 浙大计算机研究生复试上机考试-2011年  回复  更多评论   

2011-08-19 17:54 by Uriel
@ch_g
还木有想好,对浙大的CAD/CG或者复旦或者交大密码学都很向往。。
复习无聊的时候切点上机大水题心情马上舒畅啊~

# re: 浙大计算机研究生复试上机考试-2011年  回复  更多评论   

2011-09-18 13:46 by allen_tung
请问下:我也想联系下这些真题,不知道哪里可以在线提交这些题目的啊?我是菜鸟一个,还烦请指教啊!!!

# re: 浙大计算机研究生复试上机考试-2011年  回复  更多评论   

2011-09-19 00:55 by Uriel
@allen_tung
九度OJ最全

# re: 浙大计算机研究生复试上机考试-2011年  回复  更多评论   

2011-09-19 08:56 by allen_tung
噢~看到了~感激不尽啊~
那里主要是考研的机试题,我看到博主的博文里面有记录保研的题目的?那请问保研这些题目在哪里OJ可以找得到来练习下啊?
我准备参加浙大的复试了,所以很心急,多多麻烦了~!!

# re: 浙大计算机研究生复试上机考试-2011年  回复  更多评论   

2011-09-19 12:14 by Uriel
@allen_tung
专门保研题我也没找到。。只是HDU OJ上有一套浙大某年的。。
不过感觉保研的和考研的上机题应该差不多吧。。

# re: 浙大计算机研究生复试上机考试-2011年  回复  更多评论   

2011-09-19 15:20 by allen_tung
呵呵,没事了,我就先练着吧~
博主你是哪个学校的啊?ACMer吧?

# re: 浙大计算机研究生复试上机考试-2011年  回复  更多评论   

2011-09-19 15:23 by Uriel
@allen_tung
算是ACMer吧。。ECUST 08级最菜,拿奖最少的ACMer。。。

# re: 浙大计算机研究生复试上机考试-2011年  回复  更多评论   

2011-10-05 19:37 by ch_g
@Uriel
硕强好谦虚阿

# re: 浙大计算机研究生复试上机考试-2011年  回复  更多评论   

2012-01-17 11:52 by 阿萨德
错误一大寻的,,,

# re: 浙大计算机研究生复试上机考试-2011年  回复  更多评论   

2012-01-17 20:56 by Uriel
@阿萨德

具体是哪里?望指教。
这些题目都只是在九度A过,OJ判过的代码也可能会有一些问题。。

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理