青少年软件编程(C语言)等级三级考试试题(2)
Minecraft
题目描述
Minecraft 是一个几乎无所不能的沙盒游戏,玩家可以利用游戏内的各种资源进行创造,搭建自己的世界。
在 Minecraft 中,基本的建筑元素是边长为 1 个单位的立方体,Tony 想用 N 个这种小立方体搭建一个长方体,并用他珍藏已久的贴纸对其进行装饰。
如果一张贴纸可以贴满小立方体的一个面。那么,他需要用掉多少张贴纸呢?
输入格式
一个整数 N,表示小明所拥有的小立方体的个数。N 不会超过 1000。
输出格式
一个整数,即小明最少用掉的贴纸有多少张。
样例
样例输入
复制9
样例输出
复制30
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
int v;
cin>>v;
int mi = 9999999;
for(int a = 1;a<=v;a++)
{
for(int b = 1;b<=v/a;b++)
{
int h = v/a/b;
if(v == a*b*h)
{
int s = (a*b+a*h+b*h)*2;
mi = min(mi,s);
}
}
}
cout<<mi;
return 0;
}
谁是你的潜在朋友
题目描述
“臭味相投”——这是我们描述朋友时喜欢用的词汇。两个人是朋友通常意味着他们存在着许多共同的兴趣。然而作为一个宅男,你发现自己与他人相互了解的机会并不太多。幸运的是,你意外得到了一份北大图书馆的图书借阅记录,于是你挑灯熬夜地编程,想从中发现潜在的朋友。 首先你对借阅记录进行了一番整理,把N个读者依次编号为1,2,…,N,把M本书依次编号为1,2,…,M。同时,按照“臭味相投”的原则,和你喜欢读同一本书的人,就是你的潜在朋友。你现在的任务是从这份借阅记录中计算出每个人有几个潜在朋友。
输入格式
第一行两个整数N,M,2 <= N ,M<= 200。接下来有N行,第i(i = 1,2,…,N)行每一行有一个数,表示读者i-1最喜欢的图书的编号P(1<=P<=M)
输出格式
包括N行,每行一个数,第i行的数表示读者i有几个潜在朋友。如果i和任何人都没有共同喜欢的书,则输出“BeiJu”(即悲剧,^ ^)
样例
样例输入
复制4 5 2 3 2 1
样例输出
复制1 BeiJu 1 BeiJu
#include<iostream>
#include<iomanip>
using namespace std;
int a[210];
int cnt[210];
int n,m;
int main()
{
cin>>n>>m;
for(int i = 0;i<n;i++)
{
cin>>a[i];
cnt[a[i]]++;
}
for(int i = 0;i<n;i++)
{
if(cnt[a[i]]>1)
{
cout<<cnt[a[i]]-1<<endl;
}
else
{
cout<<"BeiJu"<<endl;
}
}
return 0;
}
课程冲突
题目描述
小 A 修了 n 门课程, 第 i 门课程是从第 ai 天一直上到第 bi 天。
定义两门课程的冲突程度为 : 有几天是这两门课程都要上的。
例如 a1=1,b1=3,a2=2,b2=4 时, 这两门课的冲突程度为 2。
现在你需要求的是这 n 门课中冲突程度最大的两门课的冲突程度。
输入格式
第一行一个正整数 n 表示课程数量。 接下来 n 行,每行两个正整数 ai,bi。 2 ≤ n≤ 1000, 1 ≤ ai ≤ bi ≤ 1000。
输出格式
输出一个整数表示最大的冲突程度。
样例
样例输入
复制3 1 3 2 4 5 5
样例输出
复制2
#include<iostream>
#include<iomanip>
using namespace std;
struct couers
{
int sT;
int eT;
};
couers a[1010];
int n;
int ma = -1;
int main()
{
cin>>n;
for(int i = 0;i<n;i++)
{
cin>>a[i].sT>>a[i].eT;
}
for(int i = 0;i<n-1;i++)
{
for(int j = 0;j<n-1-i;j++)
{
if(a[j].sT>a[j+1].sT)
{
swap(a[j],a[j+1]);
}
}
}
for(int i = 0;i<n;i++)
{
for(int j = i+1;j<n;j++)
{
if(a[i].eT>=a[j].sT)
{
int ct = min(a[i].eT,a[j].eT) - max(a[i].sT,a[j].sT) + 1;
ma = max(ma,ct);
}
}
}
cout<<ma;
return 0;
}