牛客小白月赛90VP

news2024/11/23 20:14:42

1,签到:https://ac.nowcoder.com/acm/contest/78306/A

AC代码:

#include<bits/stdc++.h>
using namespace std;
int n,m,a[100010];
long long sum;
int main()
{
    cin>>n>>m;
    for(int i=1;i<=n;i++) cin>>a[i];
    for(int i=1;i<=m;i++)
    {
        int x;
        cin>>x;
        sum+=a[x];
    }
    cout<<sum;
}

2.简单的数学:https://ac.nowcoder.com/acm/contest/78306/B

AC代码:

#include<bits/stdc++.h>
using namespace std;
int t;
int main()
{
    cin>>t;
    while(t--)
    {
        int x,y;
        cin>>x>>y;
        long long ck=x+y;
        ck=abs(x-y);
        if(ck%3)
        {
            cout<<"No"<<endl;
            continue;
        }
        cout<<"Yes"<<endl;
    }
}

3.分类讨论:https://ac.nowcoder.com/acm/contest/78306/C

注意特判当最后都可以0时,若在最后一位是1,答案是2,否则是1

下面是AC代码:

#include<bits/stdc++.h>
using namespace std;
int t;
string n;
int main()
{
    cin>>t;
    while(t--)
    {
        cin>>n;
        int a[10]={0};
        for(int i=0;i<n.size();i++)
        {
            if(n[i]!='0') continue;
            a[i]=1;
        }
        int x=0;
        for(int i=n.size()-1;i>=0;i--)
        {
            x+=a[i]*(pow(10,n.size()-1-i));
        }
        if(x==0&&n[n.size()-1]!='1') cout<<1<<endl;
        else if(x==0&&n[n.size()-1]=='1') cout<<2<<endl;
        else cout<<x<<endl;
    }
}

4.暴力+差分:https://ac.nowcoder.com/acm/contest/78306/D

下面是AC代码:

#include<bits/stdc++.h>
using namespace std;
int mod=998244353;
int n,m;
struct node{
    int l,r;
}a[15];
long long cnt=0;
bool xun[11];
int c[100010];
int check()
{   
    memset(c,0,sizeof(c));
    for(int i=1;i<=m;i++)
    {
        if(xun[i])
        {
            c[a[i].l]++;
            c[a[i].r+1]--;
        }
    }
    int x=0;
    for(int i=1;i<=n;i++)
    {
         
        x+=c[i];
        if(x<2) return 0;
    }
    return 1;
}
bool cmp(node a,node b)
{
    return a.l<b.l;
}
void dfs(int c)
{
    if(c>=m+1)
    {
        cnt+=check();
        return;
    }
    xun[c]=1;
    dfs(c+1);
    xun[c]=0;
    dfs(c+1);
    return;
}
int main()
{
    cin>>n>>m;
    for(int i=1;i<=m;i++)
    {
        int x,y;
        cin>>x>>y;
        a[i].l=x;
        a[i].r=y;
    }
    sort(a+1,a+m+1,cmp);
    dfs(1);
    cout<<cnt;
}

5.优先队列动态维护:https://ac.nowcoder.com/acm/contest/78306/E

首先一般的贪心是不对的,例如我一开始想把每一个B的时间(A到B的前缀和+B自己的时间)维护出来然后选前K个,但是因为你一个B选后,意味着它后面B的时间不是两个预先计算的简单相加。

因此,我们可以固定选了几个A,每一次计算用优先队列跟新即可(有点类似于DP求最大上升子序列固定最后一个元素的思想)

下面是AC代码:

#include<bits/stdc++.h>
using namespace std;
int n,q,a[100010],b[100010],cnt;
int k;
int sum[100010];
void solve()
{
    priority_queue<int> q;
    long long ans=1e18;
    long long summ=0;
    long long st=0;
    for(int i=1;i<=n;i++)
    {
        summ+=a[i];
        q.push(b[i]);
        st+=b[i];
        if(q.size()>k)
        {
            st-=q.top();
            q.pop();
        }
        if(q.size()==k) ans=min(ans,summ+st);
    }
    cout<<ans<<endl;
}
int main()
{
    cin>>n>>q;
    for(int i=1;i<=n;i++) scanf("%d",&a[i]);
    for(int i=1;i<=n;i++) scanf("%d",&b[i]);
     
    while(q--)
    {
 
        cin>>k;
        cnt=0;
        solve();
    }
}

6。离散化+DP:https://ac.nowcoder.com/acm/contest/78306/F

每一个合法的序列都可以按左端点为第一关键字,右端为第二关键字升序排,可以用dp[k][i][j]表示,k表示目前按顺序选了k条,0--i的重复了>=2次,i-j的重复了1次,j-n的重复了0次,然后就是转移了。

下面是官方的题解以及代码:


#include <bits/stdc++.h>
 
using namespace std;
using i64 = long long;
using pii = pair<int, int>;
const int mod = 998244353;
 
int dp[401][401][401];   
 
void add(int& ret, int x) {
    ret += x;
    if(ret >= mod) ret -= mod;
}
void solve()
{
    int n, m; cin >> n >> m;
    vector<int> v;
    vector<int> s(m + 1), t(m + 1);
    for (int i = 1; i <= m; i++) {
        cin >> s[i] >> t[i];
        --s[i];
        v.push_back(s[i]);
        v.push_back(t[i]);
    }
    v.push_back(n), v.push_back(0);
    sort(v.begin(), v.end());
    v.resize(unique(v.begin(), v.end()) - v.begin());
    n = v.size();
    vector<pii> a(m + 1);
    for (int i = 1; i <= m; i++) {
        s[i] = lower_bound(v.begin(), v.end(), s[i]) - v.begin();
        t[i] = lower_bound(v.begin(), v.end(), t[i]) - v.begin();
        a[i] = {s[i], t[i]};
    }
    sort(a.begin() + 1, a.end());
    dp[0][0][0] = 1;
    for (int k = 1; k <= m; k++) {
        for (int i = 0; i < n; i++) {
            for (int j = i; j < n; j++) {
                if (dp[k - 1][i][j] == 0) {
                    continue;
                }
                add(dp[k][i][j], dp[k - 1][i][j]);
                if (a[k].first <= i) {
                    add(dp[k][max(i, min(j, a[k].second))][max(j, a[k].second)], dp[k - 1][i][j]);
                }
            }
        }
    }
    cout << dp[m][n - 1][n - 1] << endl;
}
int main()
{
    solve();
    return 0;
}

可能是我太菜了,有几个边界条件觉得比较奇怪,

1.最后出答案时dp[m][n-1][n-1]表示的不是[0,n-2]覆盖两次的次数吗?答案不是应该求[0,n-1]?

2.为什么有--s[i]?这里dp[k][i][j]中的i不是开区间吗,i的位置覆盖了1条,那么判断条件不应该是当前线段左端点<=i吗(我看很多大佬说是因为还有-1的缘故,但是我感觉按上面的定义不用-1)

3.为什么离散化加0,n两个端点?

不知道有没有大佬可以帮我解释下,谢谢qaq

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1672408.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[Algorithm][回溯][全排列][子集] + 回溯原理 详细讲解

目录 0.原理讲解1.全排列1.题目链接2.算法原理详解3.代码实现 2.子集1.题目链接2.算法原理详解3.代码实现 0.原理讲解 回溯算法通常⽤于解决组合问题、排列问题和搜索问题等回溯算法的基本思想&#xff1a; 从⼀个初始状态开始&#xff0c;按照⼀定的规则向前搜索&#xff0c;…

针对关键 PuTTY 私钥恢复漏洞的 PoC 发布

安全研究人员针对广泛使用的 PuTTY SSH 和 Telnet 客户端中的一个关键漏洞发布了概念验证 (PoC) 漏洞利用。 该漏洞CVE-2024-31497允许攻击者恢复 PuTTY 版本 0.68 至 0.80 中使用 NIST P-521 椭圆曲线生成的私钥。 该漏洞源于 PuTTY在使用 P-521 曲线时偏向生成ECDSA随机数。…

[FSCTF 2023]ez_php1

一共有三小关 第一关&#xff1a;md5加密 第二关&#xff1a;反序列化 重点 单个字符串序列化 unserialize($str) "$KEY" <?php $KEY"YES I love";echo serialize($KEY); s:10:"YES I love"; 第三关&#xff1a; 反序列化 把a的地址赋给…

【linux-IMX6ULL-RTC-IIC-SPI配置思路】

目录 1. RTC简介1.1 IMX6ULL中的RTC1.2 SNVS_LP中的SRTC配置流程1.3 程序实现 2. IIC通信协议2.1 IIC基础2.2 IIC通信协议2.2.1 IIC写时序2.2.2 IIC读时序 3. IIC通信的硬件框图及配置流程3.1 IMX6ULL的硬件IIC框图3.1 IIC配置流程3.2 硬件IIC代码实现 4. SPI通信4.1 SPI通信基…

在云计算与人工智能中,7ECloud扮演着什么样的角色

数据驱动的时代&#xff0c;云计算和人工智能已成为推动现代科技进步的两大引擎。作为一家专注于云计算的公司&#xff0c;7ECloud正是在这个领域发挥自己的力量&#xff0c;力图为企业提供一站式解决方案&#xff0c;并拥有来自厂家的源头支持&#xff0c;用极其低的价格助力企…

思源笔记如何结合群晖WebDav实现云同步数据

文章目录 1. 开启群晖WebDav 服务2. 本地局域网IP同步测试3. 群晖安装Cpolar4. 配置远程同步地址5. 笔记远程同步测试6. 固定公网地址7. 配置固定远程同步地址 在数字化时代&#xff0c;信息的同步与共享变得尤为重要。无论是个人用户还是企业团队&#xff0c;都渴望能够实现跨…

【Django学习笔记(九)】Flask + MySQL的结合案例

Flask MySQL结合案例 前言正文案例1&#xff1a;添加用户1.1 浏览器发送请求&#xff0c;返回页面main.pyhtml页面 1.2 新增用户并连接数据库main.pyhtml页面 案例2&#xff1a;查询所有用户2.1 main.py2.2 html2.3 bootstrap优化html 前言 在本文中&#xff0c;介绍如何将 F…

2023 PWNHUB 3月赛-【tototo】

文章目录 volatile泄露_environ打栈漏洞利用malloc和calloc思路&#xff08;打_environ&#xff09;代码 volatile int volatile vInt; 当要求使用 volatile 声明的变量值的时候&#xff0c;系统总是重新从它所在的内存读取数据&#xff0c;即使它前面的指令刚刚从该处读取过数…

01基础篇

1、初识 JVM 1.1 什么是 JVM JVM 全称是 Java Virtual Machine&#xff0c;中文译名 Java虚拟机。JVM 本质上是一个运行在计算机上的程序&#xff0c;他的职责是运行Java字节码文件。 Java源代码执行流程如下&#xff1a; 分为三个步骤&#xff1a; 编写Java源代码文件。使用…

CentOS使用Docker搭建Nacos结合内网穿透实现无公网IP远程登录本地管理平台

文章目录 1. Docker 运行Nacos2. 本地访问Nacos3. Linux安装Cpolar4. 配置Nacos UI界面公网地址5. 远程访问 Nacos UI界面6. 固定Nacos UI界面公网地址7. 固定地址访问Nacos Nacos是阿里开放的一款中间件,也是一款服务注册中心&#xff0c;它主要提供三种功能&#xff1a;持久化…

Prompt Engineering ,Fine-tuning , RAG ?

Prompt Engineering ,Fine-tuning , RAG 总结&#xff1a;1 prompt engineering2 RAG (Retrieval Augmented Generation)**RAG特点****RAG优势****RAG劣势** 3 微调&#xff08;Fine-tuning&#xff09;**微调特点****微调优势****微调劣势** 4 三者共性和区别5 RAG和微调的适应…

Qt-FFmpeg开发-打开摄像头直接显示YUYV422图像(12)

Qt-FFmpeg开发-打开摄像头直接显示YUYV422图像&#x1f4c0; 文章目录 Qt-FFmpeg开发-打开摄像头直接显示YUYV422图像&#x1f4c0;1、概述&#x1f4f8;2、实现效果&#x1f4bd;3、主要代码&#x1f50d;4、完整源代码&#x1f4d1; 更多精彩内容&#x1f449;个人内容分类汇…

四川汇聚荣:做拼多多网点需要具备什么能力?

做拼多多网点需要具备什么能力?这个问题对于想要在电商平台上开店的商家来说&#xff0c;是必须要了解的。拼多多作为国内领先的社交电商平台&#xff0c;吸引了众多商家入驻。那么&#xff0c;要想在拼多多上开网店&#xff0c;需要具备哪些能力呢?下面就从四个方面进行详细…

02-WPF_基础(二)

3、控件学习 控件学习 布局控件&#xff1a; panel、Grid 内容空间&#xff1a;Context 之恶能容纳一个控件或布局控件 代表提内容控件&#xff1a;内容控件可以设置标题 Header 父类&#xff1a;HeaderContextControl。 条目控件&#xff1a;可以显示一列数据&#xf…

【LAMMPS学习】八、基础知识(6.5)PyLammps 教程

8. 基础知识 此部分描述了如何使用 LAMMPS 为用户和开发人员执行各种任务。术语表页面还列出了 MD 术语&#xff0c;以及相应 LAMMPS 手册页的链接。 LAMMPS 源代码分发的 examples 目录中包含的示例输入脚本以及示例脚本页面上突出显示的示例输入脚本还展示了如何设置和运行各…

Windows 11 下 kafka 的安装踩坑

安装 windows系统kafka小白入门篇——下载安装&#xff0c;环境配置&#xff0c;入门代码书写&#xff08;推荐&#xff09; kafka在windows下安装和使用入门教程 问题1 参考链接 运行kafka集成的zookeeper时&#xff0c;命令&#xff1a;bin\windows\zookeeper-server-star…

2.1 软件工程

第2章 信息技术知识 2.1 软件工程 现状&#xff1a; 开发软件的规模越来越大复杂度越来越高用户需求并不十分明确缺乏软件开发方法和工具方面的有效支持 软件成本日益增长、开发进度难以控制、软件质量无法保证、软件维护困难等问题日益突出。人们开始用工程的方法进行软件…

Codeforces Round 941 (Div. 2)(A,B,C,D,E)

比赛链接 这场难度不高&#xff0c;基本没考算法&#xff0c;全是思维题。B是推结论&#xff0c;C是博弈&#xff0c;D是构造&#xff0c;需要对二进制有一定理解&#xff0c;E是思维题&#xff0c;2300分的暴力和模拟。 A. Card Exchange 题意&#xff1a; 您有 n n n 张牌…

纯血鸿蒙APP实战开发——一镜到底“页面转场”动画

介绍 本方案做的是页面点击卡片跳转到详情预览的转场动画效果 效果图预览 使用说明 点击首页卡片跳转到详情页&#xff0c;再点击进入路由页面按钮&#xff0c;进入新的路由页面 实现思路 首页使用了一种视觉上看起来像是组件的转场动画&#xff0c;这种转场动画通常是通过…

WordPress 管理员密码重置方法汇总

最近明月碰到一个 WordPress 站长求助咨询&#xff0c;说是自己 WordPress 站点的管理员密码被恶意篡改了&#xff0c;对 WordPress 了解的都知道这一般都是恶意代码造成的&#xff0c;问题大多出在使用了所谓的破解版、去授权版的插件或者主题被植入了恶意代码、后门木马。明月…