杭电2013年计算机复试真题

杭电 2013 年计算机复试真题

写在前面

此题目是根据 CSDN 博客粥粥同学发布的内容进行收集整理,记录了本人的解题过程和一些想法。仅供大家参考,如有错误,欢迎大家指出!


第一题

Problem Description

A - B

Input

第一行是 N,代表要检测的例子的个数,每个例子中:输入两个时间(格式 HH:MM:SS),

Output

前面时间减去后面时间,输出在时钟上显示的时间

Sample Input

2 15:25:10 12:54:10 10:25:20 19:30:30

Sample Output

02:31:00 14:54:50

解题思路

从秒开始减,不够就借位,注意格式化输出

参考源码

代码语言:javascript
复制
#include <iostream>
using namespace std;
int main() {
    int n, h1, h2, m1, m2, s1, s2;
    int h, m, s;
    char ch;
    while (cin >> n) {
        while (n--) {
            cin >> h1 >> ch >> m1 >> ch >> s1;
            cin >> h2 >> ch >> m2 >> ch >> s2;
            s = (s1 - s2) >= 0 ? s1 - s2 : s1 + 60 - s2;
            m1 = (s1 - s2) >= 0 ? m1 : m1 - 1;
            m = (m1 - m2) >= 0 ? m1 - m2 : m1 + 60 - m2;
            h1 = (m1 - m2) >= 0 ? h1 : h1 - 1;
            h = (h1 - h2) >= 0 ? h1 - h2 : h1 + 24 - h2;
            printf("%02d:%02d:%02d\n", h, m, s);
        }
    }
    return 0;
}

第二题

Problem Description

一个活动有 N 个人参加,一个主持人和 N-1 个普通参加者,其中所有的人都认识主持人,主持人也认识所有的人,主持人要求 N-1 个参加者说出他们在参加者中所认识的人数,如果 A 认识 B,则 B 认识 A,所以最少是会认识一个人,就是主持人,他们说出了自己所认识的人数后,需要判断他们中有没有人说谎

Input

第一行是 N,N=0 表示结束,第二行是 N-1 个数字,表示除主持人外 n-1 个普通参加者认识的人数

Output

若他们之中有人撒谎,输出 “Lie absolutely”,否则输出 “Maybe truth”

Sample Input

7 1 2 4 5 5 3 9 3 7 7 7 7 5 6 6

Sample Output

Lie absolutely Maybe truth

解题思路

参考源码

代码语言:javascript
复制
#include <algorithm>
#include <iostream>
using namespace std;
bool cmp(int a, int b) { return a > b; }
int main() {
    int n, num[1000];
    while (cin >> n && n) {
        for (int i = 0; i < n - 1; i++) {
            cin >> num[i];
        }
        for (int i = 0; i < n - 1; i++) {
            sort(num + i, num + n - 1, cmp);
            if (num[n - 2] == 0 || num[0] > n) {
                cout << "Lie absolutely" << endl;
                break;
            } else if (num[i] == 1) {
                cout << "Maybe truth" << endl;
                break;
            }
            for (int j = 1; j < num[i]; j++) {
                num[i + j]--;
            }
            num[i] = 1;
        }
    }
    return 0;
}

相关内容

  • 杭电 2011 年计算机复试真题
  • 杭电 2012 年计算机复试真题
  • 杭电 2014 年计算机复试真题
  • 杭电 2015 年计算机复试真题
  • 杭电 2016 年计算机复试真题