acwing第7场周赛

y总题解

A:距离零点的时刻

题目描述
已知当前时钟的显示时间为 h 小时 m 分(24 小时制时间格式),请问多少分钟后,时钟会第一次变为 0 时 0 分。
输入格式
第一行包含整数T,表示共有T组测试数据。
每组数据占一行,包含两个整数h,m。
保证h,m不同时为0,且不含前导0.
输出格式
每组数据输出一行结果,表示答案。
数据范围
前三个测试点满足,1<=T<=5.
所有测试点满足,1<=T<=1439, 0 <=h<24, 0<=m<60.
输入样例

5
23 55
23 0
0 1
4 20
23 59

输入样例

5
60
1439
1180
1

这个题没有脑子,直接写的。

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n;
    int a = 1440;
    cin >> n;
    for(int i = 0; i < n; i ++){
        int b = 0;
        int c = 0;
        int h,m;
        cin >> h >> m;
        b = h*60 + m;
        c = a - b;
        cout << c << endl;
    }
    return 0;
}

B:第k个字符串

题目描述
给定两个整数 n 和 k。
用 n−2 个 a 和 2 个 b 来构成一个字符串,则一共可以构成 n(n−1)/2 个不同的字符串。
将这 n(n−1)/2 个字符串按照字典序进行排序。
请输出排好序后,排在第 k 个的字符串。
例如,当 n=5,k=2 时,共可以生成 10 个不同的字符串,按字典序排列如下:

aaabb
aabab
aabba
abaab
ababa
abbaa
baaab
baaba
babaa
bbaaa

其中,排在第2个的字符串为aabab
输入格式
第一行包含整数 T,表示共有 T 组测试数据。
每组数据占一行,包含两个整数 n 和 k。
输出格式
每组数据输出一行结果,表示答案。
数据范围
前三个测试点满足 1≤T≤10,1≤n≤20,1≤k≤100。
所有测试点满足1≤T≤10000,3≤n≤105,1≤k≤min(2×109,n(n−1)/2)。
同一测试点内所有 n 的和不超过 105
输入样例

7
5 1
5 2
5 8
5 10
3 1
3 2
20 100

输出样例

aaabb
aabab
baaba
bbaaa
abb
bab
aaaaabaaaaabaaaaaaaa

之后看了y总的讲解视频,根据k的数值可以先确定一个b的位置,之后再判断另一个b的位置,再输出就可以了。

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int _;
    cin >> _;
    for(int i = 0; i < _; i ++){
        int n,k;
        cin >> n >> k;
        for(int i = n - 1; i; i --){
            if(k >n - i)k -= n - i;
            else{
                string s(n,'a');
                s[i - 1] = 'b';
                s[n - k] = 'b';
                cout << s << endl;
                break;
            }
        }
    }
    return 0;
}

C:最大剩余油量

原题题干

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值