问题 A: 骑车还是走路
题目描述
在石油大学校园里,没有自行车,上课办事会很不方便.但实际上,并非去办任何事情都是骑车快,因为骑车总要找车、开锁、停车、锁车等,这要耽误一些时间。假设找到自行车,开锁并车上自行车的时间为27秒;停车锁车的时间为23秒;步行每秒行走1.2米,骑车每秒行走3.0米。请判断走不同的距离去办事,是骑车快还是走路快。
输入
第一行为待处理的数据的数量n。
其后每一行整数为一次办事要行走的距离,单位为米,距离大于0。
输出
对应每个整数,如果骑车快,输出一行"Bike";如果走路快,输出一行"Walk";如果一样快,输出一行"All"。
样例输入 Copy
4
50
90
120
180
样例输出 Copy
Walk
Walk
Bike
Bike
水题
int n,d;
double a,b;
int main()
{
cin >> n;
while(n--)
{
cin >> d;
a = d/1.2;
b = d/3.0+50;
if(a > b) cout << "Bike" << endl;
else if(a < b) cout << "Walk" << endl;
else cout << "All" << endl;
}
return 0;
}
问题 B: 数字方阵
题目描述
周末,爸爸妈妈带着笑笑去商场玩,正好碰上了商场在举办有奖竞答活动,而且根据问题的难度不同,奖品的价值也有不同。
其中有个问题是:在一个数字方阵中,随机放置了0 ~ 9的数位。我们把由数字1 ~ 9的组成的串称为非零串(不含0的数字符串)。例如02303230,这组数据中有23和323两种非零串。其中长度最长的非零串为323。
由于这个方阵太大了,现在请你编程计算,已知一个n*m(1<=n,m<=1000)的数字方阵,求方阵第k行的最长非零串的长度。
如下图:在4 * 8的方阵中,第2行的最长非零串长度为3。

输入
输入数据有若干行。第一行,有三个整数N、M(1<=N、M<=1000)和K(1<=K<=N),其中N、M分别表示这个数字方阵中行数和列数。K表示求数字方阵第K行的最长数字符串长度。
接下来有N行,每行M个0~9的数字,每个数字间用一个空格隔开。
输出
输出第k行的最长非零串的长度。
样例输入 Copy
4 9 3
9 2 0 0 3 4 2 5 0
4 0 2 3 0 3 2 3 1
3 8 3 2 9 0 7 5 1
1 0 3 1 0 0 6 6 0
样例输出 Copy
5
思路:
把要求的那一行数据放到数组里,如果遇到的是零长度更新为0,否则就++,同时求max
int a[1005][1005];
int b[1005];
int n,m,k,ans,cnt;
int main()
{
cin >> n >> m >> k;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
cin >> a[i][j];
for(int i=1;i<=m;i++)
b[i] = a[k][i];
for(int i=1;i<=m;i++)
{
if(b[i] == 0) cnt = 0;
else
{
cnt++

本文精选了六道算法竞赛题目,涵盖了从简单的行程选择到复杂的课程表安排等问题,通过具体的代码实现展示了各种算法的应用和解题技巧。每道题目的描述、输入输出格式及样例清晰明了,为读者提供了深入理解算法的机会。
最低0.47元/天 解锁文章
464

被折叠的 条评论
为什么被折叠?



