真题-桂城2019年

发布于:2024-12-18 ⋅ 阅读:(96) ⋅ 点赞:(0)

#A. GC.2019.六年级.01.最大倍数

ACEF

  • 传统题1000ms256MiB

题目描述
小 Q 刚学会了计算倍数,他的哥哥就给他设计了一个问题:让他找出 1~N 中 K 的 最大 的倍数。
例如:N=4,K=2 时,表示在 1,2,3,4 中找出 2 的最大倍数,答案是:4。
小Q 有点为难,就来求助聪明的你,你能帮助他吗?

输入格式
第一行,两个整数 N,K。

数据范围
1 <= N,K <=1000000000,且 N>=K。

输出格式
不超过 N 的 K 的最大的倍数。

样例

输入数据 1

7 4

Copy

输出数据 1

4

根据C++整除特性,翼德 

代码:

#include<bits/stdc++.h>
using namespace std;
unsigned long long n,b,maxx;
int main()
{
    cin>>n>>b;
    cout<<n/b*b;
    return 0;
}

#B. GC.2019.六年级.02.最大步数

EF

  • 传统题1000ms256MiB

题目描述
给出了两个非负整数 P 和 Q。您的任务是使得 P 和 Q 相等。在每一步中,您可以执行以 下两项操作之一: 1、将任何质数加到 P 上。 2、从 Q 减去任何质数。 如果不可能使 P 和 Q 相等,则输出-1。否则,输出一个非负整数:可以执行的最大步数。

输入格式
数字 0 和 1 不是质数。

输出格式
一行,两个整数 P 和 Q。 0 <= P, Q <= 10^18

样例

输入数据 1

5 9

Copy

输出数据 1

2

Copy

输入数据 2

5 10

Copy

输出数据 2

2

Copy

输入数据 3

5 6

Copy

输出数据 3

-1

代码:

#include<bits/stdc++.h>
using namespace std;
long long p,q;
int main()
{
    cin>>p>>q;
    if(p>q)
    {
        cout<<-1;
        return 0;
    }
    if(p-q==0)
    {
        cout<<0;
        return 0;
    }
    if(p-q==1)
    {
        cout<<-1;
        return 0;
    }
    cout<<(q-p)/2;
    return 0;
}

#C. GC.2019.六年级.03.小草与小球

EF

  • 传统题1000ms256MiB

题目描述
曾经有一片空地(全部是字符'.'构成),例如:
................
然后,有人将一些小球(一对小括号"()"表示一个小球,小球不会重叠)丢到空地上,例如:
.()...()().().()
最终,空地上长出了一些草(用字符'|'表示),遮盖了一些小球,例如在上面的基础上 变成了这样:
.(|||.()(||||||)
给出一个字符串 S,表示草地最终的状态,求草地上至少有多少个小球。

输入格式
一个字符串 S,长度不超过 50。只可能包括 4 种类型的字符:'.'、'('、')'、'|'

输出格式
一个整数,表示小球的最少数量。

样例

输入数据 1

.(|||.()(||||||)

Copy

输出数据 1

4

Copy

输入数据 2

(|(|(||)|)|)

Copy

输出数据 2

6

Copy

输入数据 3

.....|||||.....

Copy

输出数据 3

0

代码:

#include<bits/stdc++.h>
using namespace std;
int y=0;
int main()
{    
    string a;
    cin>>a;
    for(int i=0;i<a.size();i++)
    {
        if(a[i]=='('&&a[i+1]==')')
        {
            y++;
            i++;
        }
        else if(a[i]==')'||a[i]=='(')
        {
        	y++;
		}
    }
    cout<<y;
    return 0;
}

#D. GC.2019.六年级.04.渡河

EF

  • 传统题1000ms256MiB

题目描述
总共有 X 人要坐船过河。
一个小船最多可以坐 4 人,一个小船固定收费 32 元。
一个大船最多可以坐 6 人,一个大船固定收费 36 元。
码头有无穷多小船和大船。
问如何坐船,才能使得总费用最小。

输入格式
一个整数 X。

数据范围
60%的数据, 1 <= X <= 1000
80%的数据,1 <= X <= 1000000
100%的数据,1 <= X <= 2000000000

输出格式
一个整数,表示最小的总费用。

样例

输入数据 1

4

Copy

输出数据 1

32

Copy

输入数据 2

12

Copy

输出数据 2

72

代码:

#include<bits/stdc++.h>
using namespace std;
long long x,s,l;
int main()
{
    cin>>x;
    if(x<=4)s=32;
    else
    {
        s+=(x/6)*36;
        l=x%6;
        if(l==5)
        {
            s+=36;
        }
        if(l==4||l==3)
        {
            s+=32;
        }
        if(l==2||l==1)
        {
            s+=28;
        }
    }
    cout<<s;
    return 0;
}

谢谢观看!!!


网站公告

今日签到

点亮在社区的每一天
去签到