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

计蒜客 2020 蓝桥杯大学 B 组省赛模拟赛(一) 题目集传送门 A. 结果填空:有趣的数字 蓝桥杯标准的送温暖题,枚举每个数判断是否含有数字5并进行判素数后计数即可。 const int MAXN = 100000; bool check(int n) { while(n) { if(n % 10 == 5) return true; n /= 10; } return false; } ... 阅读详情

[SCOI2009]生日礼物

滑动窗口法。第一遍的写法是对于所有的位置坐标去重,遍历每个位置坐标,每次左移判定当前位置能够更新几个不同种类的礼物,每次右移动能够删除几个不同种类的礼物。判定礼物的类型是用unordered_set集合存储,判定,显示超时。查看题解后,思路无误,只是可以在每次移动的时候也进行礼物类型的记录,即构建一个结构体,存储所有的礼物种类和位置,对于结构体按照位置从小到大排序,之后遍历结构体,记录当前的礼物种类类型。

#include <bits/stdc++.h>
using namespace std;
int n,k;
struct node {
    int idx;
    int categor;
};
bool cmp(const struct node& a, const struct node& b) {
    if(a.idx == b.idx)
        return a.categor < b.categor;
    return a.idx < b.idx;
}
int main() {
    int n, k;
    cin>> n >> k;
    vector<node> p;
    vector<int> vis(k + 1, 0);
    for(int i = 1; i <= k; i++) {
        int t;
        cin >> t;
        for(int j = 1; j <= t; j++) {
            int x;
            cin >> x;
            node tmp;
            tmp.idx = x, tmp.categor = i;
            p.emplace_back(tmp);
        }
    }
    sort(p.begin(), p.end(), cmp);
    int l = 0, ans = INT_MAX, res = 0;
    for(int i = 0; i < n; i++) {
        if(vis[p[i].categor] == 0) 
            res++;
        vis[p[i].categor]++;
        while(res == k) {
            ans = min(ans, p[i].idx - p[l].idx);
            vis[p[l].categor]--;
            if(vis[p[l].categor] == 0) 
                res--;
            l++;
        }
    }
    cout << ans << endl;
    return 0;
}

[SCOI2005]扫雷MINE

从第一个点开始考虑,如果第一个点显示的为0,那么第一个点,第二个点肯定都没有雷。如果第一个点显示为1,那么考虑两种情况,第一个点有雷,第二个点无雷;第一个点无雷,第二个点有雷;如果第一个点显示为2,说明第一个点,第二个点都有雷。在假设完成第一个点和第二个点的情况后,依次类推考虑之后的每个点有雷和无雷的情况。这里由于已经假设了第一个点和第二个点的数值(有雷为1,无雷为0),那么可以根据第二列的第二个值推导出第一行第三个点的情况,第四个点同理,......最后还需要进行验证,那么只需要将最后两个值和第二列的最后一个数值进行判定是否相等,如果相等说明这种放置地雷的情况是一种结果,否则不是。

#include <bits/stdc++.h>
using namespace std;
int main() {
    int n;
    cin >> n;
    vector<int> p(n + 1, 0);
    for(int i = 0; i < n; i++)
        cin >> p[i];
    int res = 0;
    if(n == 1) {
        res = 1;
    } else if(n == 2) {
        if(p[0] == 0 && p[1] == 0)
            res = 1;
        else if(p[0] == 1 && p[1] == 1)
            res = 2;
    } else {
        vector<int> tmp(n + 1, 0);
        if(p[0] == 0) {
            tmp[0] = 0, tmp[1] = 0;
            for(int i = 1; i <= n - 2; i++)
                tmp[i + 1] = p[i] - tmp[i] - tmp[i - 1];
            if(p[n - 1] == tmp[n - 1] + tmp[n - 2])
                res += 1;
        } else if(p[0] == 2) {
            tmp[0] = 1, tmp[1] = 1;
            for(int i = 1; i <= n - 2; i++)
                tmp[i + 1] = p[i] - tmp[i] - tmp[i - 1];
            if(p[n - 1] == tmp[n - 1] + tmp[n - 2])
                res += 1;
        } else if(p[0] == 1) {
            tmp[0] = 1, tmp[1] = 0;
            for(int i = 1; i <= n - 2; i++)
                tmp[i + 1] = p[i] - tmp[i] - tmp[i - 1];
            if(p[n - 1] == tmp[n - 1] + tmp[n - 2])
                res += 1;
            tmp[0] = 0, tmp[1] = 1;
            for(int i = 1; i <= n - 2; i++)
                tmp[i + 1] = p[i] - tmp[i] - tmp[i - 1];
            if(p[n - 1] == tmp[n - 1] + tmp[n - 2])
                res += 1;
        }
    }
    cout << res << endl;
    return 0;
}

电磁兼容标准体系解析:从基础到认证的完整指南 本文系统解析了电磁兼容(EMC)标准体系,从基础概念到认证流程提供完整指南。文章阐述了EMC对于产品可靠性与市场准入的重要性,详细拆解了基础标准、通用标准、产品类标准及认证流程四层结构,并结合5G设备与工业控制等实战案例,为工程师提供了从设计初期到认证测试的高效应用策略。 阅读详情

相关推荐

PADS VX2.7学习记录06-PADS Router软件功能操作

PADS VX2.7学习记录06-PADS Router软件功能操作

qq_31444421的博客 7860

牛客-模拟、枚举与贪心 2022.11.16

分成三类,稳定值增加,不变,减少。考虑从后往前遍历减少的情况,可以发现最后一个要符号条件,需要当前值大于消耗值,而恢复值是不需要看的,因为消耗完就结束了,所以恢复值不是那么重要。看到异或操作其实第一反应就是将数据改写成二进制形式,之后再观察样例的输出结果,可以发现如果当前二进制位零的个数超过了数据个数的一半,就讲结果这一位二进制写为零,否则写为一(因为需要多组可行解的情况下,数值尽可能小)(零的个数正好为一半时可以为零,也可以为一,但是为了数值尽可能小,所以选择为零)但是直接遍历只能过60%,还需要优化。

Ls_attack的博客 469

学术版GPT安装教程——保姆版(附带原生GPT注册教程)

学术版GPT图文安装教程

DBenD的博客 2万+

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

从样例可以发现,首先可以假设所有的奶牛都为最高值,然后对于每一对给出的奶牛的区间,在这区间之间编号的奶牛需要高度减去一(区间为左开右开)。经过一番操作之后,即可得到所有奶牛可能的最高值。(当然可能重复出现的区间,对于重复出现的区间不需要进行重复操作即可)从高位到低位依次枚举,优先考虑从0变为1,就是说尽可能的让这个数小一点。可以考虑最开始每一位为 0/1,然后到最后是否可以变回 1。贪心排序花和道路所需时间即可。

Ls_attack的博客 286

利用ArcGIS的模型构建器实现批量投影栅格和批量克里金插值

博主要批量投影几百个栅格,但是ArcGIS中的投影栅格的批处理工具需要手动一条条设置参数,还是麻烦,因此学习了使用模型构建器(ModelBuilder)来批量投影栅格,可以导入需投影栅格的文件夹,然后迭代投影,并按栅格原名逐个输出到指定目录。 1.在工具箱里构建模型 在arctool box里右键点击空白处,选择【添加工具箱】,点击ArcGIS默认工作目录的工具箱进行添加,然后Toolbox就会被添加到ArcToolbox页面,右键点击Toolbox,选择“新建”-“模型” 2.编写模型 (1).

qq_36958801的博客 1万+

PID调参避坑指南:为什么你的电机总是震荡?从比例带积分到微分实战解析

本文针对电机控制中常见的震荡问题,提供了一份PID调参实战指南。文章深入解析了比例(P)、积分(I)、微分(D)三个参数对系统稳定性的影响,揭示了比例增益过大是导致震荡的关键原因之一,并给出了从纯比例调试到引入积分、微分的系统化调参流程与避坑要点,帮助工程师快速实现电机平稳、精准的控制。

weixin_28223453的博客 456

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

之后对于每个名字的查询,从名字的第一个字母出现的第一个位置开始,二分查找之后每个字母的位置是否大于当前的位置,如果大于,更新当前位置,直至名字数组结束,说明存在子序列,否则不存在。如果二者最高位相同,则比较下一位,直到出现不同的二进制位置,那么从这一位置开始往后到二进制的最低位,存在全为一的最大值,之前的高位置都相同,异或结果为0。对于药剂的数值,按照从大到小排序,对于奶牛的区间,按照区间最小值从大到小排序,之后遍历奶牛,对于每头奶牛,遍历药剂看是否存在符合条件的药剂,记录结果即可。模拟遍历01串即可。

Ls_attack的博客 392

问答式AI vs 智能体(Agent):它们有什么不同?

你肯定用过 ChatGPT 或文心一言——问它一个问题,它给你一个答案。AI Agent(AI智能体)。很多人搞不清楚:它们不都是"AI"吗?有什么区别?这篇文章用一个最简单的类比,彻底讲清楚这两者的本质差异。框架特点适合人群AutoGPT完全自主执行任务,链式思考开发者MetaGPT模拟团队协作,多角色分工开发者LangChain最流行的Agent开发框架开发者Dify可视化无代码搭建Agent非技术用户Coze(扣子)字节跳动出品,国内最易用普通用户WorkBuddy。

Johnny2004的专栏 447

牛客-模拟、枚举与贪心 2022.11.02

枚举每个点,之后记录以这个点为末尾的所有区间的异或和,然后枚举所有以这个点为起点的区间的值,当存在二者数值相等时,说明异或和为零,此时结果数目+1即可。首先可利用前缀和求取区间的异或和,然后,我就写了一个四重循环然后TLE了。一年前不会写这道题,一年后还是不会,属于是属于是了。

Ls_attack的博客 247

系统分析师论文范文(三)微服务

摘要(300字) 2024年4月,我作为系统分析师参与某省三甲医院云影像系统建设项目,负责系统分析与设计工作。该项目旨在响应国家"无胶片化"医疗政策,解决传统影像系统数据孤岛、调阅效率低等问题。系统基于DICOM 3.0和HL7国际标准,采用B/S架构与Spring Cloud Alibaba微服务技术栈,包含影像采集、智能分析、数据安全等核心模块,实现全院影像资源的云端统一管理与多端调阅。在架构设计上,通过微服务拆分、分布式事务控制及多层次安全防护机制,保障了系统的高可用性与数据一致性。系统于2024年1

echo的博客 221

2ED2410-EM的使用

2ED2410-EM的使用

让你爱上电路设计 972

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

第一遍写的思路是:统计连续的1和0的个数,1的个数为正数记录,0的个数为负数记录,之后遍历连续数组每个位置,以当前位置为起点,寻找最后的端点。但是总是超时,于是考虑能否二分,但是二分其实判定的函数时间复杂度也是O(n).之后再想,其实不需要做一个连续化,直接在原本数组上进行滑动窗口操作,即可判定。对数组数据按照从小打大排序,前缀和记录相邻数据之间的差值,经过k次操作如果需要相同数据出现的次数最多,那么肯定是变化为数组中已经存在的数字,以当前数组位置作为左端点,二分求解右端点的位置。

Ls_attack的博客 226

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

牛客-模拟、枚举与贪心 2022.11.11

二维前缀和,如果k*k区域的前缀和为0,说明当前区域一个建筑都没有,不会影响,否则会影响。记录所有有货物xu qi。

Ls_attack的博客 209

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

笔试模拟 day11

本文记录了作者在牛客网上的三道笔试题的解题思路与代码实现。第一题是关于组合包的最大价值问题,作者提出了暴力枚举和贪心两种解法,并指出贪心解法在某些情况下可能不适用,最终通过暴力枚举实现了代码。第二题是买卖股票的最佳时机问题,作者提供了贪心和动态规划两种思路,并通过动态规划实现了代码。第三题是字符串翻转问题,作者通过逐个单词翻转并重新组合的方式实现了字符串的倒置。每道题的思路和代码都详细展示,并附有作者的个人理解和分析。

hi0_6的博客 1098

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

牛客模拟赛2【普及组】

Day 1 T1 #include<algorithm> #include<iostream> #include<cstdio> #include<cmath> using namespace std; int n,jsd,jsc,jsa; string s; int main() { cin>>n; for(int i=1; i<=n; i++) { cin>>s; for(int i=0; i<=s.

JA_yichao欢迎你 cnblogs账号:https://www.cnblogs.com/mayichao/ 294

牛客周赛 Round 54

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

weixin_73914071的博客 1207

【牛客小白月赛23】 A【二进制枚举+bitset】B【数学】 C【二分】 E G【思维】 H【模拟】 I J

A 思路:一开始,可能有点蒙,居然直接暴力求,其实稍微计算一下,就可以发现暴力时间上是过不去的。后面想到了bitset,但是其count()函数的时间复杂度还是不确定,比赛时没敢写,赛后尝试了一发,过了。呵呵。 Code: #include <bits/stdc++.h> using namespace std; typedef long long ll; typedef pair&...

lzs_lazy 454

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

牛客2019湘潭大学程序竞赛

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

weixin_30561177的博客 121

牛客2020跨年场-个人题解

孤单的人都来刷题了。。 前言: 这场比赛总体来说质量还不错,个人觉得有提升,而不是一味的签到. B :dp签到 C:质因分解签到 E:不难看出,顺着1 -> 2 -> 4 -> 3->6->5…这样的顺序构造可以对于每个y,找到最小的x使得f(x)=yf(x) = yf(x)=y D:给三种颜色,他们的个数为a,b,ca,b,ca,b,c.求他们之间的圆上可重排列 a+b+c≤12a +b+c\leq12a+b+c≤12 解法1: 由于颜色个数很小,可以发现他们的排列个数是很小

qq_35577488的博客 287

(新手自用复盘)牛客寒假训练营—3

作为比赛的签到题,这题非常直接,咱们快速过一下思路。

luvsic520的博客 959

十月训练记录

十月训练记录,待补题

一起学习 919

2018杭电暑假多校知识点总结(附大一结语)

     大学的第一个年头就这样过去了,在这一年里,有着迷茫也有着奋斗,可惜没有什么汗水。我有不幸,不幸调剂到了软件工程这个陌生的专业,但我却又是幸运的,因为我遇到了一位优秀的学长,在他的指导下才步入了ACM的大坑,我不后悔,也未曾后悔过,我所敲的每一行代码每一道题都让我的大学生活变得充实而有意义,我不很在意最终的成就,但这个东西确实让我有意义有存在有兴趣的生活着。虽然我,资质愚钝,思维木讷,但我...

PleasantlY1的博客 1878

牛客练习赛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

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

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

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

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值