EOJ Contest61 2018研究生面试机考(软件工程)个人题解

本人ECNU大一学渣一枚。闲来无事做了EOJ Contest61(EOJ 2018研究生面试机考(软件工程)),发现全是水题,正好练一下刚开始学的C++。然后闲来无事就发个来自菜鸡的题解。

A.西班牙馅饼

水题,找出每行的最大值求和即可。

#include 
using namespace std;
int main()
{
    int n, m, x, all=0, M=0;
    cin>>n>>m;
    for(int i=0; i>x;
            M=max(M, x);
        }
        all+=M;
        M=0;
    }
    cout<

B. 梵高先生

水题,杨辉三角。试着写了一下一维数组存杨辉三角。

#include 
using namespace std;
int main()
{
	int star[25]={0};
	star[1]=1;
	int n;
	cin>>n;
	for(int i=0; i=1; j--) star[j]+=star[j-1];
	}
	return 0;
}

C. 和你在一起

水题。要求输出最大的数字,显然,首位数字越大的数字放在前面时,组合成的数字就越大。字符串字典序排序。代码丢人现场:C++STL还没学会,就写了个C的字符串排序……

#include 
using namespace std;
int cmp(const void*a, const void*b)
{
	char *p1=(char*)a, *p2=(char*)b;
	return strcmp(p2, p1);
}
int main()
{
	int n;
	char forever[20][10];
	cin>>n;
	for(int i=0; i>forever[i];
	qsort(forever, n, sizeof(forever[0]), cmp);
	for(int i=0; i

D. 定西

动态规划基础(水)题。坏掉的台阶走法数固定为0,判断一下即可。

#include 
using namespace std;
int main()
{
	int n, b, w[101], dp[101], cnt=0;
	cin>>n>>b;
	for(int i=0; i>w[i];
	if(w[cnt]==1) {dp[1]=0; cnt++;} else dp[1]=1;
	if(w[cnt]==2) {dp[2]=0; cnt++;} else dp[2]=1+dp[1];
	if(w[cnt]==3) {dp[3]=0; cnt++;} else dp[3]=1+dp[1]+dp[2];
	for(int i=4; i<=n; i++)
	{
		if(w[cnt]==i) {dp[i]=0; cnt++;}
		else dp[i]=dp[i-1]+dp[i-2]+dp[i-3];
	}
	cout<

E. 热河路

唯一WA的一道题。一开始想挑战一下EOJ的速度于是直接暴力,果然TLE。然后脑子一热代码写错了WA了两发才看出来。本质还是一道水题。

#include 
using namespace std;
int main()
{
	long long x;
	int n;
	cin>>n;
	for(int I=0; I>x;
        int big=int(sqrt(x*2))+2;
		int small=max(0, int(sqrt(x*2)-2));
		int i;
		for(i=small; i<=big; i++) if((long long)(i*(i+1)/2+1)==x) break;
		if(i<=big) cout<<1<

F. 庙会

水题。无脑循环即可。

#include 
using namespace std;
int main()
{
	int m, w, t;
	cin>>m>>w>>t;
	for(int i=0; i
没想到研究生面试机考题目居然这么水……甚至比编程语言实训的第一题还要水。最后推销EOJ: ECNU Online Judge。

你可能感兴趣的:(EOJ)