2024级HAUT新生周赛(一)题解

A:我爱编程,编程使我快乐。

签到,直接输出就行

#include <stdio.h>
 
int main()
{
    printf("我爱编程,编程使我快乐。");
}


B: 我要看奥运!!!

注意时间跨天以及scanf和printf的使用

#include <bits/stdc++.h>
using namespace std;
signed main()
{
	int hh,mm;
    scanf("%d:%d",&hh,&mm);
    hh = hh + 18;
    hh %= 24;
    printf("%02d:%02d",hh,mm);
}

C: 二进制翻转

根据题意只需要计算数组中连续的0的段数即是答案,注意到每个连续的0的段前面必定有一个1(如果起始为0单独计算),所以记录前1后0的位置的数量即是连续的0的段的数量。

#include <stdio.h>
int n;
int a[200005];
int main() {
    scanf("%d", &n);
    for (int i = 0; i < n; i++)
        scanf("%d", &a[i]);
    int ans = 0;
    if (a[0] == 0) ans++;
    for (int i = 1; i < n; i++) {
        if (a[i] == 0 && a[i - 1] == 1) ans++;
    }
    printf("%d\n", ans);
    return 0;
}
#include <bits/stdc++.h>

using namespace std;
int n;
int a[200005];
int main() {
    cin >> n;
    for (int i = 0; i < n; i++)
        cin >> a[i];
    int ans = 0;
    if (a[0] == 0) ans++;
    for (int i = 1; i < n; i++) {
        if (a[i] == 0 && a[i - 1] == 1) ans++;
    }
    cout << ans << endl;
    return 0;
}

D: 小明的数字

先用char数组读入字符串s,再遍历判断s中的每一个字符,从第一个字符开始,当第i个字符比m小时,将m插入到第i个字符前面,就可以保证最后得到的值是最大值。

#include <stdio.h>

char s[105];
int main()
{
    int n;
    char m;
    scanf("%d", &n);
    scanf("%s %c", s, &m);
    int f = 0;
    for (int i = 0; i < n; i++)
    {
        if (m > s[i] && f == 0)
        {
            printf("%c", m);
            f = 1;
        }
        printf("%c", s[i]);
    }
    if (f == 0)
        printf("%c", m);
    return 0;
}

E:小明的打怪游戏

由于先攻击血量高的怪物,所以在读取时可以先对血量ai大于k的值对k取模。取模后这个题就变成了一个排序问题,将血量高的排在前面,因为优先攻击血量高的怪物,血量相同时,按找下标排序,将下表较小的放在前面。就可以得到怪物死亡顺序了。

#include <bits/stdc++.h>
using namespace std;

const int N = 1e5 + 10;

struct xp
{
    int i, k;
} a[N];

bool cmp(xp a, xp b)
{
    if (a.k != b.k)
    {
        return a.k > b.k;
    }
    return a.i < b.i;
}

int main()
{
    int n, k;
    cin >> n >> k;
    for (int i = 1; i <= n; i++)
    {
        a[i].i = i;
        cin >> a[i].k;
        if (a[i].k % k == 0)
            a[i].k = k;
        else
            a[i].k %= k;
    }
    sort(a + 1, a + n + 1, cmp);
    for (int i = 1; i <= n; i++)
    {
        cout << a[i].i << ' ';
    }
    return 0;
}

F: 寝室的宝箱(简单版)

简单的加减计算,对于输入的数字和字符调用相关的式子即可

#include<stdio.h>
int main()
{
    int x,y;
    char ch;
    scanf("%d %c %d",&x,&ch,&y);
    printf("%d",(ch=='+'?x+y:x-y));
    return 0;
}

G: 寝室的宝箱(困难版)

如果选择整形进行计算需要考虑使用longlong,对于除法需要特判一下,另外使用浮点数进行计算由于没有卡精度所以也是可以过的。

#include<stdio.h>

int main()
{
    long long x,y;
    char ch;
    scanf("%lld %c %lld",&x,&ch,&y);
    if(ch=='/') 
    {
        if(x%y)printf("%.2lf",(double)x/y);
        else printf("%lld",x/y);
    }
    else printf("%lld",ch=='+'?x+y:(ch=='-'?x-y:x*y));
    
    return 0;
}

H:小明的午餐难题

找到a,b,c,d中的最小值,并将其输出。

#include <stdio.h>

int main()
{
    int a, b, c, d;
    scanf("%d %d %d %d", &a, &b, &c, &d);
    int minnum = a;
    if (minnum > a)
        minnum = a;
    if (minnum > b)
        minnum = b;
    if (minnum > c)
        minnum = c;
    if (minnum > d)
        minnum = d;
    printf("%d", minnum);
    return 0;
}

I:历经千辛万苦,只为得到你

签到题,直接输出即可。

#include<stdio.h>
int main()
{
    printf("AC!!!\n");
    return 0;
}

J: 元素中和之力

观察发现草或风只有一种中和反应方法,所以从草或风开始依次计算即可 反应时取反应元素中较小的元素值



#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
void solve()
{
    ll x[8] = {0};
    int t;
    cin >> t;
    while (t--)
    {
        for (int i = 1; i <= 7; ++i)
        {
            cin >> x[i];
        }
        ll ans = 0;
        swap(x[4], x[7]); // 交换
        for (int i = 7; i >= 1; --i)
        {
            ll mi = min(x[i], x[i - 1]);
            if (mi > 0)
            {
                ans += mi;
                x[i - 1] -= mi;
            }
        }
        cout << ans  << "\n";
    }
}
int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    int test = 1;
    // cin >> test;
    while (test--)
    {
        solve();
    }
    return 0;
}




全部评论

相关推荐

避坑恶心到我了大家好,今天我想跟大家聊聊我在成都千子成智能科技有限公司(以下简称千子成)的求职经历,希望能给大家一些参考。千子成的母公司是“同创主悦”,主要经营各种产品,比如菜刀、POS机、电话卡等等。听起来是不是有点像地推销售公司?没错,就是那种类型的公司。我当时刚毕业,急需一份临时工作,所以在BOSS上看到了千子成的招聘信息。他们承诺无责底薪5000元,还包住宿,这吸引了我。面试的时候,HR也说了同样的话,感觉挺靠谱的。于是,我满怀期待地等待结果。结果出来后,我通过了面试,第二天就收到了试岗通知。试岗的内容就是地推销售,公司划定一个区域,然后你就得见人就问,问店铺、问路人,一直问到他们有意向为止。如果他们有兴趣,你就得摇同事帮忙推动,促进成交。说说一天的工作安排吧。工作时间是从早上8:30到晚上18:30。早上7点有人叫你起床,收拾后去公司,然后唱歌跳舞(销售公司都这样),7:55早课(类似宣誓),8:05同事间联系销售话术,8:15分享销售技巧,8:30经理训话。9:20左右从公司下市场,公交、地铁、自行车自费。到了市场大概10点左右,开始地推工作。中午吃饭时间大约是12:00,公司附近的路边盖饭面馆店自费AA,吃饭时间大约40分钟左右。吃完饭后继续地推工作,没有所谓的固定中午午休时间。下午6点下班后返回公司,不能直接下班,需要与同事交流话术,经理讲话洗脑。正常情况下9点下班。整个上班的一天中,早上到公司就是站着的,到晚上下班前都是站着。每天步数2万步以上。公司员工没有自己的工位,百来号人挤在一个20平方米的空间里听经理洗脑。白天就在市场上奔波,公司的投入成本几乎只有租金和工资,没有中央空调。早上2小时,晚上加班2小时,纯蒸桑拿。没有任何福利,节假日也没有3倍工资之类的。偶尔会有冲的酸梅汤和西瓜什么的。公司的晋升路径也很有意思:新人—组长—领队—主管—副经理—经理。要求是业绩和团队人数,类似传销模式,把人留下来。新人不能加微信、不能吐槽公司、不能有负面情绪、不能谈恋爱、不能说累。在公司没有任何坐的地方,不能依墙而坐。早上吃早饭在公司外面的安全通道,未到上班时间还会让你吃快些不能磨蹭。总之就是想榨干你。复试的时候,带你的师傅会给你营造一个钱多事少离家近的工作氛围,吹嘘工资有多高、还能吹自己毕业于好大学。然后让你早点来公司、无偿加班、抓住你可能不会走的心思进一步压榨你。总之,大家在找工作的时候一定要擦亮眼睛,避免踩坑!———来自网友
qq乃乃好喝到咩噗茶:不要做没有专业门槛的工作
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务