牛客-模拟、枚举、贪心 2022.11.15

云漾AI创作平台实战:如何用GPT4.0+Midjourney快速生成商业级插画(附Prompt模板) 本文详细介绍了如何利用云漾AI创作平台结合GPT4.0和Midjourney快速生成商业级插画。通过智能文案生成与视觉化工作流,大幅提升创作效率,适用于电商、社交媒体等多种场景。文章包含实用Prompt模板和参数调整技巧,帮助设计师和内容创作者高效产出专业插画。 阅读详情

月月查华华的手机

按照字母A-Z的顺序,分别按照下标的从小到大记录每个字母的位置。之后对于每个名字的查询,从名字的第一个字母出现的第一个位置开始,二分查找之后每个字母的位置是否大于当前的位置,如果大于,更新当前位置,直至名字数组结束,说明存在子序列,否则不存在。

对于第一个字母是否存在的情况在遍历之前进行特判。

#include <bits/stdc++.h>
using namespace std;
int main() {
    string A;
    cin >> A;
    vector<vector<int>> p;
    for(int i = 0; i < 26; i++) {
        vector<int> tmp;
        p.emplace_back(tmp);
    }
    for(int i = 0; i < A.size(); i++)
        p[A[i] - 'a'].emplace_back(i);
    int n;
    cin >> n;
    for(int i = 0; i < n; i++) {
        string B;
        cin >> B;
        if(p[B[0] - 'a'].size() == 0) {
            cout << "No\n";
            continue;
        }
        int start = p[B[0] - 'a'][0];
        bool flag = true;
        for(int j = 1; j < B.size(); j++) {
            int idx = upper_bound(p[B[j] - 'a'].begin(), p[B[j] - 'a'].end(), start) - p[B[j] - 'a'].begin();
            if(idx == p[B[j] - 'a'].size()) {
                flag = false;
                break;
            }
            start = p[B[j] - 'a'][idx];
        }
        if(flag)
            cout << "Yes\n";
        else
            cout << "No\n";
    }
    return 0;
}

ranko的手表

遍历所有的时间,记录所有符合的开始时间和结束时间,遍历符合条件的开始时间数组和符合条件的结束时间数组,两者时间不能相等,记录最大差值和最小差值即可。

#include <bits/stdc++.h>
using namespace std;
int main() {
    string s1, s2;
    cin >> s1 >> s2;
    vector<int> res1;
    for(int i = 0; i <= 1439; i++) {
        int tenhour = (i / 60) / 10, gehour = (i / 60) % 10;
        int tenmin = (i % 60) / 10, gemin = (i % 60) % 10;
        if(s1[0] != '?' && tenhour != (s1[0] - '0'))
            continue;
        if(s1[1] != '?' && gehour != (s1[1] - '0'))
            continue;
        if(s1[3] != '?' && tenmin != (s1[3] - '0'))
            continue;
        if(s1[4] != '?' && gemin != (s1[4] - '0'))
            continue;
        res1.emplace_back(i);
    }
    vector<int> res2;
    for(int i = 0; i <= 1439; i++) {
        int tenhour = (i / 60) / 10, gehour = (i / 60) % 10;
        int tenmin = (i % 60) / 10, gemin = (i % 60) % 10;
        if(s2[0] != '?' && tenhour != (s2[0] - '0'))
            continue;
        if(s2[1] != '?' && gehour != (s2[1] - '0'))
            continue;
        if(s2[3] != '?' && tenmin != (s2[3] - '0'))
            continue;
        if(s2[4] != '?' && gemin != (s2[4] - '0'))
            continue;
        res2.emplace_back(i);
    }
    int min1 = INT_MAX, max1 = INT_MIN;
    for(int i = 0; i < res1.size(); i++) {
        for(int j = 0; j < res2.size(); j++) {
            if(res1[i] >= res2[j])
                continue;
            min1 = min(min1, res2[j] - res1[i]);
            max1 = max(max1, res2[j] - res1[i]);
        }
    }
    cout << min1 << " " << max1 << endl;
    return 0;
}

牛妹和01串

模拟遍历01串即可。

#include <bits/stdc++.h>
using namespace std;
int main() {
    string s;
    cin >> s;
    int res = 0, start = 0;
    while(start < s.size()) {
        bool flag = false;
        for(int j = start + 1; j < s.size(); j++) {
            if(s[j] == s[start])
                continue;
            else {
                flag = true;
                start = j;
                break;
            }
        }
        if(flag) {
            res += 1;
            start += 1;
        } else
            break;
    }
    cout << res << endl;
    return 0;
}

兔子的区间密码

异或运算+大数据规模,考虑采用位运算,位运算需要记录64位二进制数。可以观察一下样例的几组数据的规律,如果区间最大值的二进制位数相较于最小值要高出一位以上,即最大值二进制最高位为一,而最小值的该位置为零,最小值在下一位才为一,这种情况是大一位;如果是最小值的该位置后几个位置才存在第一个一,说明更小。则说明存在两个数字,可以使得异或值为所有二进制位值都为一,只从二进制最低位到最大值的二进制最高位。

最大值二进制:1000 最小值二进制:0100 说明存在 1000 ^ 0111  = 1111

最大值二进制:1001 最小值二进制:0010 同理

如果二者最高位相同,则比较下一位,直到出现不同的二进制位置,那么从这一位置开始往后到二进制的最低位,存在全为一的最大值,之前的高位置都相同,异或结果为0。

最大值二进制:110010 最小值二进制:110001 说明存在异或结果为110011

#include <bits/stdc++.h>
using namespace std;
int main() {
    int t;
    cin >> t;
    for(int i = 0; i < t; i++) {
        long long l, r;
        cin >> l >> r;
        if(l == r)
            cout << 0 << endl;
        else if((l + 1) == r)
            cout << (l^r) << endl;
        else {
            vector<int> left(64, 0);
            vector<int> right(64, 0);
            vector<long long> num(64, 0);
            long long sum = 1;
            int lidx = 0, ridx = 0;
            while(r) {
                num[ridx] = sum;
                right[ridx++] = r % 2;
                r /= 2;
                sum *= 2;
            }
            while(l) {
                left[lidx++] = l % 2;
                l /= 2;
            }
            long long res = 0;
            while(ridx >= 0) {
               if(right[ridx] == left[ridx])
                   ridx -= 1;
                else {
                    while(ridx >= 0) {
                        res = res + num[ridx];
                        ridx -= 1;
                    }
                    break;
                }
            }
            cout << res << endl;
        }
    }
    return 0;
}

 [USACO 2007 Nov G]Sunscreen

每头奶牛都有一个区间范围,有一些数量的药剂,这些药剂使用后可以使奶牛的数值保持在一个值,问最多可以有多少头奶牛的数值保持在自身规定的区间范围

对于药剂的数值,按照从大到小排序,对于奶牛的区间,按照区间最小值从大到小排序,之后遍历奶牛,对于每头奶牛,遍历药剂看是否存在符合条件的药剂,记录结果即可。

#include <bits/stdc++.h>
using namespace std;
struct node {
    int min;
    int max;
};
struct ss{
    int spf;
    int cov;
};
bool cmp1(struct node& a, struct node& b) {
    return a.min > b.min;
}
bool cmp2(struct ss& a, struct ss& b) {
    return a.spf > b.spf;
}
int main() {
    int c, l;
    cin >> c >> l;
    vector<node> p;
    for(int i = 0; i < c; i++) {
        struct node tmp;
        cin >> tmp.min >> tmp.max;
        p.emplace_back(tmp);
    }
    sort(p.begin(), p.end(), cmp1);
    vector<ss> z;
    for(int i = 0; i < l; i++) {
        struct ss tmp;
        cin >> tmp.spf >> tmp.cov;
        z.emplace_back(tmp);
    }
    sort(z.begin(), z.end(), cmp2);
    int res = 0;
    for(int i = 0; i < c; i++) {
        for(int j = 0; j < l; j++) {
            if(z[j].spf >= p[i].min && z[j].spf <= p[i].max && z[j].cov >= 1) {
                res += 1, z[j].cov -= 1;
                break;
            }
        }
    }
    cout << res << endl;
    return 0;
}

【Qualcomm高通音频】如何封装音频控件? 音频代码涉及面很广,这篇文档介绍如何封装音频控件给HAL层使用。这里以AW87519芯片调试为例进行介绍封装音频控件和使用的方法。在最初接出到高通音频基础功能调试的时候,都是从tinyalsa指令/mixer_paths文件配置开始。因为单独一个音频设备的调试,都对应一条音频链路的打通。比如以下链接上高通平台基础音频输入输出设备调试: 【Qualcomm音频】Speaker 调试记录http... 阅读详情

相关推荐

别再乱按F8了!Win10系统修复的正确姿势:用管理员CMD运行sfc /scannow

本文详细介绍了Windows 10系统修复的正确方法,重点推荐使用管理员CMD运行`sfc /scannow`命令。相比传统的F8键和重装系统,这一方法更高效且安全,能解决大多数系统文件损坏问题。文章还提供了管理员CMD的启动方式、sfc命令的完整参数解析以及实战故障排除流程图,帮助用户快速恢复系统健康。

weixin_29218963的博客 459

ranko的手表(枚举)

(1)思路: 枚举所有t1,t2可能的分钟数(转换成分钟好算),再遍历这些枚举的可能结果,不断维护更新最大时间间距和最小时间间距,主要就是这个过程该如何枚举:见代码有注释(时有十位和个位,分有十位和个位) (2)测试数据 18:0? 2?:1? (3)代码: // 贪心可以,但是考虑的情况很多且复杂 // 24 *60 枚举可以过 // 将时分统一转换为分钟,到时候好算 // 枚举t1和t2可能的分钟数,合理的先加入到vector容器中 #include <bits/stdc++.h&.

小郑在路上 1259

【UV打印机】PrintExp打印软件教程(四)-设置校准电压

序号名称功能说明1校准材料设置定义当前打印材料,不同的材料参数绑定不同的校准值2向导勾选进行校准向导操作3校准类型包括喷头安装、步进校准、喷头间距、套色校准、双向校准4类型子项同类型子项5操作步骤校准存在步骤和校准说明示意图。

Print World的专栏 5074

牛客算法入门25-ranko的手表

牛客算法入门第二十五题(java实现)

qq_65068830的博客 346

银河麒麟V11 + KVM/QEMU + GT 710 GPU直通 Win10 完整操作流程文档

宿主机:RTX 5080专门运行ollama大模型服务,通过SSH/VNC远程管理Win10虚拟机:GT 710直通,物理键盘专属,通过物理显示器处理视频应用硬件隔离:两个系统完全隔离,互不干扰,性能最大化两种不同的直通方式直通方式 配置方法 设备在宿主机的状态 典型应用场景PCIe设备直通 vfio-pci.ids=10de:128b,10de:0e0f 设备完全从宿主机消失,被vfio-pci驱动接管 GPU、网卡、NVMe硬盘。

weixin_45285654的博客 1153

神州数码OSPF实战配置详解(手把手教学)

本文提供神州数码设备上OSPF基础配置的详细实战教程。通过搭建典型的两台三层交换机互联实验环境,手把手演示了VLAN创建、接口IP配置、OSPF进程启动、Router-ID设置及网络宣告等核心步骤,并分享了邻居状态验证、路由检查及常见排错方法,帮助网络工程师快速掌握神州数码OSPF的配置要点与操作技巧。

weixin_29210727的博客 79

北京信息科技大学第十三届程序设计竞赛暨ACM选拔赛(重现赛)题解

题目链接: 北京信息科技大学第十三届程序设计竞赛暨ACM选拔赛(重现赛)_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ大学ACM校赛新生赛是面向ACM/ICPC/CCPC/区域赛校队选手,巩固经典专题的编程比赛,ACM入门训练,大学ACM校队选拔比赛。https://ac.nowcoder.com/acm/contest/20278#question这套题涉及的算法并不多(除了I题需要采用容斥和莫比乌斯),其余的都是简单的算法,更重考察的就是做题的思维能力. A.lzh的

qq_49593247的博客 989

别再手动查日志了!用Dify+Zabbix打造你的专属运维“嘴替”(保姆级配置流程)

本文详细介绍了如何利用Dify平台与Zabbix监控系统集成,构建智能运维对话系统,实现自然语言交互的运维管理。通过保姆级配置流程,帮助运维工程师提升查询效率、降低学习成本,打造企业级智能运维解决方案。

weixin_27298377的博客 456

模拟、枚举、贪心(二)

A-Captcha Cracker 简单模拟即可 #include<bits/stdc++.h> using namespace std; int main(){ int t; cin>>t; while(t--){ string s,ans; cin>>s; for(int i=0;i<s.size();i++){ if(s[i]=='z' && s.siz.

zhn的博客 1080

海思芯片OpenHarmony系统移植:Sensor传感器模块HDF驱动配置HCS文件详解

海思系列芯片的传感器模块通过HDF(Hardware Driver Foundation)驱动框架进行管理和配置。传感器HCS(HDF Configuration Source)配置文件定义了各类传感器的硬件参数、总线配置、寄存器序列等信息,为传感器驱动提供必要的初始化和运行参数。海思系列芯片适配OpenHarmony的传感器HDF配置HCS文件是传感器驱动开发的关键部分,通过合理配置可以实现各种传感器设备的驱动支持。

m0_67505153的博客 209

10、X射线聚焦与光学元件技术解析

本文深入解析了X射线聚焦与光学元件技术,重点讨论了椭圆镜的聚焦原理及局限性,多层镜的设计优化及其突破性应用,以及X射线波导的基础理论和模式求解方法。文章还总结了这些技术的优势、局限及其在材料科学、生物学和医学等领域的广泛应用前景。通过理论推导与技术改进,这些光学元件为X射线成像技术的发展提供了重要支撑。

pz890123的博客 121

笔面试算法--贪心和枚举(疯狂的自我检索者、chika和蜜柑、you和帆船、数位染色(重点)、ranko的手表)

#include<iostream> #include<cstdio> #include<cmath> #include<stdio.h> #include<stdlib.h> #include<vector> #include<iomanip> #include<algorithm> #include<queue> #include<stack> #include<map&g...

0k-ok 516

软考高级系统架构设计师历年论文真题深度分析(2011-2025)

本文系统分析了2011-2025年系统架构设计师论文真题,归纳出十大主题类别,包括架构风格、企业集成、数据技术、非功能属性等。研究发现新兴技术占比最高(18.8%),企业集成、数据架构和非功能属性为三大核心考点。论文命题呈现明显技术演进特征,从经典架构理论逐步转向云原生、AI融合等前沿方向。备考建议重点关注高频考点和技术前沿,同时强化场景化解决方案能力。分析表明,架构师考试持续跟踪行业技术发展,注重理论与实践结合,为考生提供了明确的备考方向。

一几文的编程学习笔记。 2037

牛客周赛 Round 54

的因子没有用,所以我们直接暴力枚举因子,然后建边直接跑。,只是转移的时候要加入条件,只有第。思路:直接将饲料种类存到。个位置的时候我才进行转移。

weixin_73914071的博客 1207

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

2021算法竞赛入门班第一节课枚举贪心习题

文章目录1.明明的随机数2.回文日期3.校门外的树4.[HNOI2003]激光炸弹5.Subsequence6.字符串7.丢手绢Protecting the Flowers毒瘤xor铺地毯铺地毯校门外的树排座椅 1.明明的随机数 链接 题目大意就是:输入n个1到1000之内的数,然后去重排序输出,即可 #include<bits/stdc++.h> using namespace std; set<int> s; //set集合自动排序去重 int n , num; int mai

とうーうぐん 2562

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

牛客2019湘潭大学程序竞赛

官方题解   都是中文题不需要翻译,话说,我居然sb的在a题看错题目错了3发   ABD签到题,D题贪心思维,没啥好说的 CMath Problem   我觉得这题是我卡了最久的题,数学不好推不出来,然后打了个表发现的,官方题解里有证明为什么a=192*q+1,q是自然数。知道这个之后就很好做了,我们就可以求出在r范围内有多少符合的数,和l-1范围内有多少符合的数做差就可以了。像对于x,我...

weixin_30561177的博客 121

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

牛客周赛64复盘:C++算法实战中的核心思路与优化技巧

数据结构与算法是计算机科学的核心基础,其原理在于通过高效的数据组织和计算策略解决复杂问题。掌握这些技术对于提升编程能力、通过技术面试以及优化实际项目性能具有重要价值,广泛应用于搜索引擎、推荐系统、数据库管理等场景。本文以牛客周赛64为例,深入剖析了C++选手在竞赛中如何运用动态规划、字符串哈希等关键技术解决实际问题,并分享了STL容器使用、输入输出优化等工程实践技巧,帮助读者在算法实战中提升效率与准确性。

WGH100817的博客 447

牛客练习赛20

礼物 背包 1 #include <bits/stdc++.h> 2 using namespace std; 3 int f[1111]; 4 5 int main() { 6 int T; 7 scanf("%d", &T); 8 while(T--) { 9 int N, M, K,...

weixin_30765475的博客 81

CSP2019 游记

网站给出的时间不是文章的发布时间,更不是文章的最后修改时间。 下面的时间将 2019 年 11 月 16 日(比赛第一天)作为 Day1;将 2019 年 11 月 15 日(比赛前一天)作为 Day -1。(你也没见过公元 0 年对吧) Day -28(初赛) 考场居然没有给每个考号分配座位(毕竟真正参加的人不多),到了考场现场在每个考室内部把人按照准考证号大小排序。(一开始选了一个基准值还...

破壁人五号的博客 1454

牛客网笔试模板必刷题 - Python算法学习指南

牛客网笔试模板必刷题合集包含147道Python算法题目,覆盖笔试90%+知识点。题目分为基础算法、贪心、数学、搜索、树图、数据结构和动态规划7大类,难度从入门到困难不等。包含快速排序、KMP、Dijkstra等经典算法模板,适合笔试前突击复习。所有题目采用ACM模式,配套详细分类统计和核心考点说明,帮助考生高效掌握高频算法题型。

m0_54524462的博客 416

个人算法题精简导航整理(精炼汇总,含知识点、模板题、题单)

本章节内容主要做一个全局算法题导航指引,含有代码基本模板、相对应习题以及相关知识点,所有题目围绕这个导航索引进行补充扩展,目前博主水平有限也在不断学习更新当前博客内容。博客目录索引(持续更新)自定义的键值对集合Pair:在acwing中需要自定义K x;V y;} }

每个人都是独一无二的,把握好自己的节奏,跟着自己的心走。 2459

近期总结2023.10.16

28.(839D)对于两个数 a,b,选x使得a=abs(a-x),b=abs(b-x),当x的值小于 (a+b)/2 时,它保持原本的单调性,当x的值等于(a+b)/2时,a==b,当x的值大于(a+b)/2时,单调性反一下。31.(820f)(s1s2s3...)%9=(s1+s2+...)%9,可前缀和,将值域处理成余数的暴力枚举来满足式子,例如(a+b)%m==k首次出现的a,b,将可以的处理成余数记录首次出现位置,暴力枚举余数。//按第一位从小到大。32.找到周期性开始点取余周期(811E);

m0_75027890的博客 277

Java解合数减法问题

→ No其他所有 x ≥ 4 且 ≠ 5,7,11 → Yes为什么?对于 x ≥ 12:如果 x 是偶数 → 可以用多个 4 组成(因为 4×k = x,当 x≥4 且偶数时成立)如果 x 是奇数 → 减去 9(奇合数),得到 x-9,它是偶数且 ≥ 3(因为 x≥12 → x-9≥3),但注意:x-9 必须 ≥4 才能被合数组成!当 x=13 → 13-9=4 → OK当 x=15 → 15-9=6 → OK...

q1397180534的博客 497

【每日一题一期】日常算法题题集

每日一题一期题单链接:Click Here 每道题的题解会由博主做完以后总结然后发布的 时间 题号 题解 来源 算法备注 3月25日 NC50439 村人B 牛客练习赛50-C 优先队列 + 排序 3月26日 NC13230 村人B 美团2017年CodeM大赛-初赛A轮 区间DP,区间DP小结 3月27日 NC15553 村人B,满天星 2018年长沙理工大学程序设计...

橘嘉禾 82

京东2017校招编程题复盘:并查集、单调栈与动态规划全解析

并查集是一种高效处理集合合并与连通性查询的数据结构,单调栈则擅长解决区间统计与环形数组类问题,二者都是大厂校招笔试中高频考察的算法模型。理解其底层原理,不仅能应对“集合合并”“环形可见对”等经典题目,更能培养从复杂问题描述中快速识别算法本质的能力。动态规划与枚举搜索同样构成笔试的核心算法体系,掌握状态定义与边界处理尤为关键。通过复盘京东2017校招编程真题,可以清晰看到这些算法在实际题目中的出题方式、常见陷阱与优化思路,为系统备战校招笔试提供可落地的训练路线和应试策略。

weixin_34074740的博客 289

搜狗2016研发工程师编程题:字符串处理与区间DP实战解析

算法面试与笔试中,字符串处理、枚举目标状态和区间动态规划是最常见的基础能力考察点。无论是字符频率统计、交替串最少修改次数,还是双端取数博弈,核心都在于理解问题的目标状态与状态转移逻辑。以搜狗2016研发工程师编程题为例,通过哈希计数、目标模式枚举和差值DP等经典方法,不仅能在限定时间内写出稳定无Bug的代码,还能在实践中掌握边界处理与复杂度优化的工程技巧。这类题目广泛出现在大厂在线测评和研发岗筛选中,适合用来验证基本功、提升笔试稳定性。掌握这些模型后,面对同类算法题时能更快识别考点并选择正确解法。

weixin_30265103的博客 410
上一篇: 牛客-模拟、枚举、贪心 2022.11.14
下一篇: 牛客-模拟、枚举与贪心 2022.11.16
Ls_attack
博客等级 码龄10年 25粉丝 81原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值