Java教程

2022牛客暑期多校训练营1

本文主要是介绍2022牛客暑期多校训练营1,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

ABCDEFGHIJK

A是一个贪心,首先发电站和电塔其实本质上是差不多的,问题转化成n个区间覆盖问题,不相邻的区间用电线连一连的问题,sort后On的扫一遍,计算答案即可。

 

 

 

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int read()
{
    int x;scanf("%d",&x);return x;
}
struct node
{
    int l,r;
    friend bool operator<(node a,node b)
    {
        return a.l<b.l;
    }
}o[200010];
ll ans;
int n,x,r;
int main()
{
    n=read();
    for(int i=1;i<=n;i++)
    {
        x=read();r=read();
        o[i]={x-r,x+r};
    }
    sort(o+1,o+1+n);
    r=o[1].r;
    for(int i=1;i<=n;i++)
    {
        ans+=max(0,o[i].l-r);
        r=max(r,o[i].r);
    }
    cout<<ans;
}
A

 

D计算几何题

只有Q点位于圆心的时候有所有方向的弧长都相等,其他情况下应该令弧长垂直于OQ

 

 

 

#include<bits/stdc++.h>
#define ll long long
using namespace std;
int read()
{
    int x;scanf("%d",&x);return x;
}
void work()
{
    long long r,x,y,d;
    cin>>r>>x>>y>>d;
    double len,AOC,BOC;
    len=sqrt(x*x+y*y);
    BOC=acos((len-d)/r);
    AOC=acos((len+d)/r);
    printf("%.12lf\n",(BOC-AOC)*r);
}
int main()
{
    for(int t=read();t;t--)
        work();
}
D

 

G找规律。当且仅当全为9或者999x的话答案就是s本身,否则输出串长-1个9

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll read()
{
    ll x;scanf("%lld",&x);return x;
}
string s;
int main()
{
    cin>>s;
    int i=0;
    while(i!=s.length()&&s[i]=='9')
        i++;
    if(i>=s.length()-1)
        cout<<s;
    else
        for(i=0;i<s.length()-1;i++)
            cout<<9;
}
G

 

这篇关于2022牛客暑期多校训练营1的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!