练习赛ABC-题解

A
题目描述
DK 想出一道超级没有素质的题
DK 给了你一个标准的时钟,初始时间在 12:00
每分钟分针会顺时针转动 6°,而时针会顺时针转动 0.5°
DK 想知道,t 分钟后,时针和分针的较小夹角的大小是多少
由于这题超级没有素质,所以你需要将答案四舍五入到整数
思路:简单模拟,找到t分钟后,时针和分针的位置,然后找到大的那个夹角,最后四舍五入即可。
代码:

#include <iostream>
#include <bits/stdc++.h>
using namespace std;
double a,b;

int main()
{
    int n;
    scanf("%d",&n);
    while(n--){
        int x;
        scanf("%d",&x);
        a=x*0.5,b=x*6.0;
        while(a>=360)a-=360;
        while(b>=360)b-=360;
        double ans=min(abs(a-b),360-abs(a-b));//cout<<ans;
        if(ans!=(int)ans)ans++;
        printf("%d\n",(int)ans);
    }
    return 0;
}

B:
题目描述
给你一个长度为 n 的序列,第 i 个数为 ai
将这个序列分割成 i 个不重合的子串,从每个子串中取出最大的 j 个数作为这个分割方法的价值,记价值最大的分割方法的价值为 val(i,j)
但是金发少女 DK 觉得这太好算了,于是她要你求下面的式子。
思路:通过划分,你总可以得到最大的数,所以直接排序然后求答案就行。
代码:

#include <iostream>
#include <bits/stdc++.h>
using namespace std;
long long a[100005];
bool cmp(long long c,long long d)
{
    return c>d;
}
long long sum=0;
int main()
{
    int n;
    scanf("%d",&n);
    for(int i=0;i<n;i++)scanf("%lld",&a[i]);
    sort(a,a+n,cmp);
    for(int i=1;i<n;i++)a[i]+=a[i-1];
    int x,y;
    scanf("%d%d",&x,&y);
    for(int i=1;i<=x;i++){
        for(int j=1;j<=y;j++)
            sum+=a[i*j-1];
    }
    printf("%lld\n",sum);
    return 0;
}

C:
图片说明
思路:通过观察发现,总可以选到最大生成树上的边,而且每条边恰好选一次。
代码:

#include <iostream>
#include <bits/stdc++.h>
using namespace std;
struct Node{
    int u,v;
    long long w;
}a[500005];
int fa[500005],n,m;
void init()
{
    for(int i=0;i<=n;i++)fa[i]=i;
}
int findfa(int x)
{
    return x==fa[x]?x:fa[x]=findfa(fa[x]);
}
void con(int x,int y)
{
    fa[findfa(x)]=findfa(y);
}
bool cmp(Node c,Node d)
{
    return c.w>d.w;
}
bool vis[500005];
int ans[500005];
int main()
{
    scanf("%d%d",&n,&m);
    for(int i=0;i<m;i++){
        scanf("%d%d%lld",&a[i].u,&a[i].v,&a[i].w);
    }
    init();
    sort(a,a+m,cmp);
    long long sum=0;
    for(int i=0;i<m;i++){
        if(findfa(a[i].u)!=findfa(a[i].v))con(a[i].u,a[i].v);
        else continue;
        sum+=a[i].w;
    }
    printf("%lld\n",sum);
    return 0;
}
全部评论

相关推荐

鱼专:你没有问题,有问题的是java市场,我有实习经历都捞不到实习,走一步看一步吧
点赞 评论 收藏
分享
“无名小卒,还是名扬天下?”我知道很多人都不觉得我能走到今天这一步,当然,也包括我自己。在我的人生里,有两部作品刻下了最深的烙印:《斗破苍穹》与《龙族》。它们总被人拿来对照:一边是萧炎的桀骜轻狂,一边是路明非的怯懦衰颓。有人说,天蚕土豆没见过魂天帝,但江南见过真凯撒。我时常觉得,自己就是那个衰小孩路明非。可路明非可以开挂,我不可以;我也无数次幻想过,能拥有萧炎那般年少轻狂的人生,可我没有他与生俱来的逆天天赋。我只是个平庸的普通人,一个看过《斗破苍穹》却开不了挂的路明非,只能一步一步往上爬。从我下定决心找实习的那一刻起,我就给自己定下了目标:“我一定要为字节跳动卖命.jpg”。萧炎有他的三年之约,我有我的两年半之约(其实是一年半)。2024.11.20,科大讯飞的第一封实习offer落进邮箱,我迈出了这场奔赴的第一步。2025.8.18,放弃百度转正的安稳机会,转身走进前路未卜的不确定里。我很感谢我在百度的mentor,是她从茫茫人海选中了我,给了我大厂实习的机会。即便有段时间我状态差、产出不理想,她依旧愿意认可我、希望我留下转正。2025.11.14,我选择走进字节跳动,以实习生的身份重新出发。2026.3.25&nbsp;-&nbsp;3.31,一周速通上海飞书,幸遇赏识我的伯乐,斩获Special&nbsp;Offer。被告知面试通过的那一刻,我的内心无比平静,就像这个offer本就该属于我。不是侥幸,是应得的。这一路,有人看轻过我的出身,不相信我能走到这里;也有人在我看不见前路的时候,替我举过灯。没有他们的鼓励与支撑,就没有今天站在这里的我。我看到了自强不息的激荡,那是一个双非的伟大乐章!我是雨夜迈巴赫,我要开启属于我的新篇章了。
在看牛客的本杰明很勇...:真心祝贺l总 我永远的偶像 我滴神
春招至今,你收到几个面试...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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