首页 > 其他分享 >牛客小白月赛81

牛客小白月赛81

时间:2023-11-17 22:23:11浏览次数:28  
标签:std prime int tot 牛客 long 小白月赛 using 81

牛客小白月赛81

A.小辰打比赛

A.小辰打比赛

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n , x , y , sum;
    cin >> n >> x; sum = 0;
    for(int i = 1 ; i <= n ; ++i)
    {
        cin >> y;
        if(y < x)
            sum += y;
    }
    cout << sum << '\n'; return 0;
}

B.小辰的圣剑

B.小辰的圣剑

#include<iostream>
using namespace std;
const int N = 5010;
int n;
long long m , u;
int A[N] , B[N];
int main()
{
    int Max = 0;
    cin >> n >> m >> u;
    for(int i = 1 ; i <= n ; ++i)
        cin >> A[i];
    for(int i = 1 ; i <= n ; ++i)
        cin >> B[i];
    for(int i = 1 ; i <= n ; ++i)
    {
        int j = i;
        long long res_u = 0ll , res_m = m;
        while(j <= n)
        {
            if(res_m >= A[j] && res_u + B[j] <= u)
            {
                res_m -= A[j]; res_u += B[j];
            }
            else
                break;
            j++;
        }
        Max = max(Max , j - i);
    }
    cout << Max << '\n';
}

C.陶陶学算术

C.陶陶学算术

#include<bits/stdc++.h>
using namespace std;
const int MAXN = 1e5+10;
int tot;
int prime[MAXN] , vis[MAXN] , Output1[MAXN] , Output2[MAXN];
void Init()
{
    int n = 1e5;
    for(int i = 2 ; i <= n ; ++i)
    {
        if(!vis[i]) prime[++tot] = i;
        for(int j = 1 ; j <= tot && i * prime[j] <= n ; ++j)
        {
            vis[i * prime[j]] = 1;
            if(i * prime[j] == 0)
                break;
        }
    }
}

void Solve(int f[] , int &flag)
{
    int m , op , x;
    flag = 0;
    cin >> m;
    while(m--)
    {
        cin >> op >> x;
        if(x < 0)
            x = -x , flag ^= 1;
        for(int i = 1 ; prime[i] * prime[i] <= x ; ++i)
        {
            if(x % prime[i] == 0)
            {
                int cnt = 0;
                while(x % prime[i] == 0) x /= prime[i] , cnt++;
                if(op == 1)
                    f[i] += cnt;
                else
                    f[i] -= cnt;
            }
        }
        if(x > 1)
        {
            int y = lower_bound(prime + 1 , prime + 1 + tot , x) - prime;
            if(op == 1)
                f[y]++;
            else
                f[y]--;
        }
    }
}

int main()
{
    int flag1 , flag2;
    Init();
    Solve(Output1 , flag1);
    Solve(Output2 , flag2);
    if(flag1 != flag2) { cout << "NO" << '\n'; return 0;  }
    for(int i = 1 ; i <= tot ; ++i)
        if(Output1[i] != Output2[i]) { cout << "NO" << '\n'; return 0; }
    cout << "YES" << '\n';
    return 0;
}

D.小辰的借钱计划

D.小辰的借钱计划

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

int Solve()
{
    int m , a , tot_case;
    long long Sum;
    cin >> m >> a;
    tot_case = 0; Sum = 0ll;
    for(int i = a + a ; i + a <= m ; i += a)
        Sum += i , tot_case++;
    for(int i = 1 ; i * i <= a ; ++i)
    {
        if(a % i == 0)
        {
            if(a + i <= m)
                tot_case++ , Sum += i;
            if(i * i != m && a + a / i <= m)
                tot_case++ , Sum += a / i;
        }
    }
    if(Sum > 1ll * a * tot_case)
        cout << "YES" << '\n';
    else
        cout << "NO" << '\n';
    return 0;
}

int main()
{
    int T; cin >> T; while(T--) Solve();
    return 0;
}

E.小辰的智慧树

E.小辰的智慧树
Error
人菜但题水,第54行的判断应该是不会成立的,但是交上去之后发现只过了20%多一点。
但是注释掉之后居然能过。
先留个坑,若有大佬路过,感谢指正。

#include<bits/stdc++.h>
using namespace std;
const int N = 1e6+10;
int n;
long long m;
int p[N];
struct Node{
    int h , c;
}A[N];

bool cmp(int x , int y) { return A[x].h > A[y].h; }

long long Check(int mid)
{
    long long res = 0ll;
    for(int i = 1 ; i <= n ; ++i)
        res += max(A[i].h - max(A[i].c , mid) , 0);
    return res;
}

int main()
{
    ios::sync_with_stdio(false); cin.tie(0);
    int l , r , mid , tot;
    long long res , Answer;
    cin >> n >> m;
    for(int i = 1 ; i <= n ; ++i)
        cin >> A[i].h >> A[i].c;
    l = 0; r = 1e6;
    while(l < r)
    {
        mid = (l + r) >> 1;
        if(Check(mid) <= m)
            r = mid;
        else
            l = mid + 1;
    }
    Answer = res = 0ll;
    for(int i = 1 ; i <= n ; ++i)
    {
        if(A[i].h > max(l , A[i].c))
        {
            int x = A[i].h - max(l , A[i].c);
            Answer += 1ll * x * (2 * A[i].h - x);
            res += x;
        }
    }
    res = m - res;
    tot = 0;
    for(int i = 1 ; i <= n ; ++i)
        if(l > A[i].c)
            p[++tot] = i;
    sort(p + 1 , p + 1 + tot , cmp);
    if(Check(l - 1) <= m)
        cout << "NO" << '\n';
    for(long long i = 1 ; i <= min(res , 1ll * tot) ; ++i)
    {
        int x = A[p[i]].h - l;
        Answer -= 1ll * x * (2 * A[p[i]].h - x);
        Answer += 1ll * (x + 1) * (2 * A[p[i]].h - (x + 1));
    }
    cout << Answer << '\n';
    return 0;
}

F.小辰刚学 gcd

F.小辰刚学 gcd

这题目中数据范围\(1 <= a_i <= 2^{31}\),good。刚好比int最大值大1.

#pragma GCC optimize(2)
#include<bits/stdc++.h>
using namespace std;
const int N = 6e5+10;
#define int long long
int n , m;
long long Array[N];
vector< pair<int,int> > Gcd[N];

signed main()
{
    ios::sync_with_stdio(false); cin.tie(0);
    unordered_map<long long,int> Visit;
    int l , r , tmp;
    cin >> n >> m;
    for(int i = 1 ; i <= n ; ++i)
        cin >> Array[i];
    for(int i = 1 ; i <= n ; ++i)
    {
        Gcd[i].push_back(make_pair(Array[i],i));
        Visit[Array[i]] = i;
        for(auto x:Gcd[i-1])
        {
            tmp = __gcd(x.first , Array[i]);
            if(!Visit.count(tmp) || Visit[tmp] != i)
            {
                Visit[tmp] = i;
                Gcd[i].push_back(make_pair(tmp , x.second));
            }
        }
    }
    while(m--)
    {
        int cnt = 0;
        cin >> l >> r;
        for(auto x:Gcd[r])
            if(x.second >= l)
                cnt++;
            else
                break;
        cout << cnt << '\n';
    }
    return 0;
}
/*
6 1
3 3 3 6 5 6
1 6
*/

标签:std,prime,int,tot,牛客,long,小白月赛,using,81
From: https://www.cnblogs.com/sybs5968QAQ/p/17839801.html

相关文章

  • 【操作系统MIT 6.1810(2022版)笔记】Lab实验:环境搭建——以Ubuntu20.04为例
    感觉环境搭建没有别人说的那么难。我是双系统用户(Win+Ubuntu20.04),所以直接在Ubuntu上搭建了。听别人说不要用Ubuntu18.04搭建,不知道为什么参考链接:官网环境搭建教程环境搭建打开终端,输入以下命令并回车运行sudoapt-getinstallgitbuild-essentialgdb-multiarchqemu-s......
  • 牛客网语法直播笔记-前30分钟-无图
    学习网址:https://www.nowcoder.com/study/live/528/1/1第一个问题:数组下标越界数组下标越界没有规定说声明的数组要挨着放,也就是图中的abc三个数组是没有规定地址是连在一起的,一般来说编译器是会这么干的,而且每个编译器的都会在之间留点空(也就是0)每个编译器所留的空还不一样。这里......
  • 牛客题霸 BM1 反转链表
    BM1 反转链表  简单  通过率:38.76%  时间限制:1秒  空间限制:256M知识点链表描述给定一个单链表的头结点pHead(该头节点是有值的,比如在下图,它的val是1),长度为n,反转该链表后,返回新链表的表头。 数据范围: 0\leqn\leq10000≤n≤1000要求:空间复杂度......
  • 牛客-sql编程-错误
    问题:程序异常退出,请检查代码"是否有数组越界等异常"或者"是否有语法错误"SQL_ERROR_INFO:"YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQLserverversionfortherightsyntaxtousenear'--合并表\nselect*\nfrom(\nselec......
  • 81st 2023/11/13 NOIP Day-4
    本次的出题人是OP小总结下T1就算切不了,也能拿很高的部分分,赛时就应该认真思考完每一部分的分看看能不能拿毕竟这里不是改题,赛时认真思考拿不到的分,认了,较劲也没什么用也不能因此而放掉这一道题,应该去看看有没有什么部分分能拿这样就算切不了题,分数也不会太难看这次T2很能说......
  • 云服务器一年低至81元!2023双十一云服务器降价大盘点!
    又是一年双十一,云服务器厂商的优惠活动也开始了。咱们有建站,学习linux需求的小伙伴,在电商平台消费的尾声,也可以关注一下这些低价的云服务器信息,花点小钱,包圆一整年的服务器。说起云服务器,大家肯定首先想到的是阿里云、腾讯云这些国内领先的提供商,那咱们就先从这些“大牌”开始盘点:1......
  • 国标GB28181安防视频LiteCVR平台GIS电子地图模块开发介绍
    电子地图应用主要以GIS地理信息系统为核心,在联网监控工程视频监控业务管理中具有重要意义,能发挥GIS系统“一张图”可视化集成展示和空间决策分析方面的优势。视频监控平台LiteCVR可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及......
  • GB28181/GB35114国标平台LiveGBS适配国产信创环境,使用国产数据库达梦数据库、高斯数据
    1、如何配置切换信创达梦数据库?livecms.ini->[db]下面添加配置如:...[db]dialect=dmurl=dm://SYSDBA:Aa12345678@localhost:5236/livegbs2、如何配置切换高斯数据库?livecms.ini->[db]下面添加配置如:...[db]dialect=gaussurl=host=192.168.2.153port=5432user=l......
  • 国标GB28181视频平台EasyCVR级联后上级平台不显示通道的原因是什么?
    EasyCVR是一个功能强大的视频平台,能够在复杂的网络环境中统一汇聚、整合和集中管理各种类型的前端监控设备。支持的协议包括国标GB/T28181、RTMP、RTSP/Onvif等以及海康大华的私有协议与SDK。平台提供直播、录像、告警、级联和对讲等视频功能。有用户反馈称,EasyCVR成功地将自身级......
  • 1816
    句子 是一个单词列表,列表中的单词之间用单个空格隔开,且不存在前导或尾随空格。每个单词仅由大小写英文字母组成(不含标点符号)。例如,"HelloWorld"、"HELLO" 和 "helloworldhelloworld" 都是句子。给你一个句子 s​​​​​​和一个整数 k​​​​​​,请你将 s​​......