2024暑假集训第二次考试

10062. Majority Opinion

思路分析

        这道题就是一道思维题,这种题需要刻意练习,形成一定的思维模式用之前学过算法的原理去思考问题,而不是一味考验某一种算法的应用。

        这道题就需要思考的是什么情况可以让这个奶牛爱吃同一种干草,分析如果大于半的奶牛喜欢吃同一种干草那么这些奶牛就会都喜欢吃这种干草,那么先从规模最小的3个奶牛思考问题(因为大于一般的奶牛数量最少也要三头)那么观察规律可得,bba,或者是bab,或者是abb三种情况可以满足条件,再分析一下,bba,和abb都是有两头喜欢吃一种干草的奶牛并列,而bab是两头喜欢吃一种干草的奶牛中间隔了一头奶牛,所以规律就推出来了,因为接下来不管是几头奶牛绝对会被同化。

AC代码

#include<iostream>
#include<cstring>
#include<vector>
#include<cmath> 
#include<algorithm>
using namespace std;const int N = 1e6+10;
const int M = 1e2;
int a[N],s[N];
vector<int> g;int main(){int t; cin >> t;while(t--){int n; cin >> n;for(int i = 1; i <= n; i++){scanf("%d",&a[i]);//abb或bba型 if((a[i] == a[i+1] || a[i] == a[i-1]) && !s[a[i]]){g.push_back(a[i]);s[a[i]] = 1;}//bab型 if((a[i] == a[i+2] || a[i] == a[i-2]) && !s[a[i]]){g.push_back(a[i]);s[a[i]] = 1;}} sort(g.begin(),g.end());if(g.empty()) cout << -1 << endl;else{for(int i = 0; i < g.size(); i++){cout << g[i] << " ";}cout << endl; }memset(s,0,sizeof(s));memset(a,0,sizeof(a));g.clear();} return 0;
} 

10063. Cannonball

思路分析

        这本来就是一道简单的模拟题,但是你如果纯模拟就会超时,所以需要一点优化,注意题目中的一句话,如果 Bessie 弹跳无限长的时间或直到她离开数轴,她会击破多少个炮击目标,所以有可能他会在两个跳板之间来回跳,所以我们需要判断一下如果他跳的次数超过3*1e5(因为跳板就1e5那么长,所以你跳同一个地方3次多肯定是反复横跳了,直接结束)

代码

#include<iostream>
using namespace std;const int N = 1e5+10;
typedef pair<int,int> PII;
int n,s,cnt = 0,st[N];
PII a[N];int main(){cin >> n >> s;for(int i = 1; i <= n; i++){cin >> a[i].first >> a[i].second;}int v = 1,ff = 1,t = 0; //t是看跳跃次数的 while(s <= n && s > 0 && t < 1e5*5){t++;if(a[s].first == 0){if(ff < 0) ff = 1;else ff = -1;v += a[s].second;}else{if(!st[s]){if(a[s].second <= v){cnt++;st[s] = 1;}}}s += v*ff;}cout << cnt << endl;return 0;
}

10064. Balancing Bacteria

思路分析

        题目用到的算法是二分,两次二分,但是本质上是一道思维题,他每次喷洒药水是一个等差数列,所以就只需要把他进行二次差分操作,统计出来不为零的的绝对值的草相加,就为喷洒草药的次数。可能有点难理解,可以看一下luogu上这道题的题解:登录 - Luogu Spilopelia

代码

#include <iostream>
#include <cmath>
using namespace std;const int N = 1e6;
long long n,a[N],s[N],s2[N],ans;
//别忘了long long
int main(){cin>>n;for(int i = 1;i<=n;i++){cin>>a[i];s[i]=a[i]-a[i-1];s2[i]=s[i]-s[i-1];ans+=abs(s2[i]);}cout<<ans;
}

10065. Cow Party S

思路分析

         第四题是一个图论的模版题目,所以我们只需要背板子即可。(当时没做出来,板子掌握不熟练,上午讲下午就考我也真服了)Dijkstra最短路径算法,但是需要注意的,在求每个农场到x的距离并不等于x到每个农场的距离(题目让求来回),因为这是有向图,所以就需要反向建边(比如是a-b的边我们就建b-a的边)然后再跑一遍Dijkstra算法即可

代码

#include<iostream>
#include<queue>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;const int N = 1e5+10;
typedef pair<int,int> PII;
struct Node{int a,b,c;
} tmp[N];
int h[N],e[N],ne[N],dist[N],s[N],w[N],idx,n,m,sum[N];void add(int a, int b,int c){e[idx] = b;w[idx] = c;ne[idx] = h[a];h[a] = idx;idx++;
}void dijkstra(int st){memset(dist,0x3f,sizeof dist);memset(s,0,sizeof s);priority_queue<PII,vector<PII>,greater<PII> > q;dist[st] = 0;q.push({dist[st],st});while(!q.empty()){auto t = q.top();q.pop();int k = t.second,dis = t.first;if(s[k]) continue;s[k] = 1;for(int i = h[k]; i != -1; i = ne[i]){int j = e[i];if(dis+w[i] < dist[j]){dist[j] = dis+w[i];q.push({dist[j],j});		}}}for(int i = 1; i <= n; i++){sum[i] += dist[i];}
}int main(){memset(h,-1,sizeof h);int x; cin >> n >> m >> x;for(int i = 1; i <= m; i++){int a,b,c; cin >> a >> b >> c;add(a,b,c);tmp[i] = {a,b,c};		}dijkstra(x);memset(h,-1,sizeof h);idx = 0;for(int i = 1; i <= m; i++){add(tmp[i].b,tmp[i].a,tmp[i].c);		}dijkstra(x);int mx = -1e9;for(int i = 1; i <= n; i++){mx = max(sum[i],mx);}cout << mx << endl;return 0;
}

总结

        这是暑假集训第二次考试总体成绩不理想,但是要继续加油,出现的问题主要是算法模版掌握不牢,所以要理解性记忆算法模版,以及思维题做的不好,要多练习思维题,提高逻辑思维

每一次的努力,都是为了更好的未来。不要害怕失败,因为失败只是通往成功的必经之路。坚持学习,坚持成长,未来就在你的手中。

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

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

相关文章

【第18章】MyBatis-Plus主键生成策略

文章目录 前言一、主键生成策略概述二、示例三、Spring Boot 配置1. 方式一&#xff1a;使用配置类2. 方式二&#xff1a;通过 MybatisPlusPropertiesCustomizer 自定义 四、Spring 配置1. 方式一: XML 配置2. 方式二&#xff1a;注解配置 总结 前言 在 MyBatis-Plus 中&#…

STM32智能家居安防系统教程

目录 引言环境准备智能家居安防系统基础代码实现&#xff1a;实现智能家居安防系统 4.1 数据采集模块 4.2 数据处理与分析 4.3 控制系统实现 4.4 用户界面与数据可视化应用场景&#xff1a;安防管理与优化问题解决方案与优化收尾与总结 1. 引言 智能家居安防系统利用STM32嵌…

MFC+MySQL应用操作(MySQL C API )

MFCMySQL应用操作 1. MySQL C API 相关接口1.1 基本数据结构MYSQL结构体的应用 1.2 常用函数 2. 连接数据库3. 读取数据库行数据 1. MySQL C API 相关接口 1.1 基本数据结构 MYSQL是一个重要的数据结构&#xff0c;它代表了与MySQL服务器的连接。当你使用MySQL的C API来与MyS…

java.lang.LinkageError: 链接错误的正确解决方法,亲测有效,嘿嘿,有效

文章目录 问题分析报错原因解决思路解决方法&#xff08;含代码示例&#xff09;1. 检查类加载器2. 避免在运行时修改类定义3. 更新或修复 JVM4. 检查应用程序的依赖使用 Maven 检查依赖项使用 Gradle 检查依赖项 java.lang.LinkageError 是 Java 虚拟机在尝试链接类定义时发生…

使用echarts绘制中国地图根据不同的省份划分到指定区域里面中

需求:我们在开发过程中会遇到使用中国地图来划分不同区域省份下面的数量统计情况,但是有时候使用Echarts里面地图功能和我们实际业务需求不匹配的,这个时候就需要我们手动自定义进行划分不同区域下面的省份数据。例如大区1下面有哪些省份,大区2对应哪些的省份进行划分显示的…

C++ UTF-8编解码

icu 编解码数据&#xff1a; extern const UConverterSharedData _MBCSData, _Latin1Data, _UTF8Data, _UTF16BEData, _UTF16LEData, _UTF32BEData, _UTF32LEData, _ISO2022Data, _LMBCSData1,_LMBCSData2, _LMBCSData3, _LMBCSData4, _LMBCSData5, _LMBCSDat…

Windows 10新版Outlook使用不便?教你轻松退回旧版windows mail

引言 自从Windows 10推出新版Outlook以来&#xff0c;很多用户反映新版的邮件应用存在诸多不便&#xff0c;尤其是在广告邮件和正常邮件的分类上做得不够理想。面对这一问题&#xff0c;许多用户希望能够退回到Windows自带的旧版Outlook。在本文中&#xff0c;我们将详细介绍一…

数千万“四高”中老年患者,如何推动国产营养保健品创新

“三高”指高血压、高血糖&#xff08;糖尿病&#xff09;、高血脂&#xff0c;是中老年群体的常见病。 然而&#xff0c;除了前述三者&#xff0c;高尿酸血症在我国的患病率正逐年提高&#xff0c;已成为仅次于糖尿病的第二大代谢性疾病。痛风是高尿酸血症典型症状之一。 加上…

用sed去除配置文件空行和注释 去掉注释 #

sed去除注释行&#xff1a;sed -i -c -e /^#/d config_file sed去除空行&#xff1a; sed -i -c -e /^$/d config_file sed去空行和注释行&#xff1a;sed -i -c -e /^$/d;/^#/d config_file [rootrac1 ~]# cat a a b adss afdsf af # o #asd ## asdf # adfas fad af # a …

【数据结构】07.循环队列

一、循环队列的定义 定义&#xff1a;队列主要有顺序队列&#xff0c;循环队列&#xff0c;双端队列&#xff0c;优先队列。而当中循环队列是一种线性数据结构。它也被称为“环形缓冲器”。它只允许在一端进行插入操作&#xff0c;即队尾&#xff08;rear&#xff09;&#xf…

【对顶堆 优先队列】295. 数据流的中位数

本文涉及知识点 对顶堆 优先队列 LeetCode295. 数据流的中位数 中位数是有序整数列表中的中间值。如果列表的大小是偶数&#xff0c;则没有中间值&#xff0c;中位数是两个中间值的平均值。 例如 arr [2,3,4] 的中位数是 3 。 例如 arr [2,3] 的中位数是 (2 3) / 2 2.5 …

CVE-2019-12272 Openwrt可视页面LuCi命令注入漏洞复现(完结)

声明 本文所使用的一些源代码等内容已经上传至github&#xff0c;具体地址如下 Vulnerability_POC-EXP/OpenWrt/CVE-2019-12272 at main a2148001284/Vulnerability_POC-EXP GitHub 漏洞简介 参考内容&#xff1a; CVE-2019-12272 OpenWrt图形化管理界面LuCI命令注入分析 |…

有哪些有效的策略可以提升独立站的外链数量?

有哪些有效的策略可以提升独立站的外链数量&#xff1f;提升独立站的外链数量并不难&#xff0c;难得是不被谷歌惩罚把你的网站判定为作弊&#xff0c;正因如此&#xff0c;了解并应用GNB自然外链策略是个不错的开始&#xff0c;GNB外链的核心价值在于它提高了网站外链资源的自…

Hazelcast同一个集群发布注意数据一致性与版本兼容性检查示例

Hazelcast Hazelcast是一个开源的、分布式内存数据网格&#xff08;IMDG&#xff0c;In-Memory Data Grid&#xff09;平台&#xff0c;它提供了一系列的分布式数据管理和计算服务。Hazelcast旨在解决大数据和高性能计算场景下的挑战&#xff0c;特别是在分布式系统中提供低延…

【LinuxC语言】线程池之添加工作任务线程

文章目录 前言工作线程工作流程代码介绍函数内容如何去编写代码概况总结前言 在并发编程中,线程池是一种常见的设计模式,它可以有效地管理和控制线程的执行。线程池中的线程可以执行一系列的任务,这些任务通常是独立且相互没有依赖关系的。在Linux C语言环境下,我们可以使…

如何学习和提升SQL

资料来源于腾讯技术直播&#xff0c;只作为学习记录&#xff0c;如有侵权&#xff0c;请联系作者进行删除

Python正则表达式入门用法(下)

Python的正则表达式模块是re。要使用它&#xff0c;需要先导入re模块。下面是一些常用的正则表达式操作&#xff1a; re.match(pattern, string): 从字符串的开始位置匹配一个模式&#xff0c;并返回匹配对象。如果匹配成功&#xff0c;则返回匹配对象&#xff1b;如果匹配失败…

关于单点登录(Single Sign-On,SSO)

业务背景 在企业发展初期&#xff0c;企业使用的系统很少&#xff0c;通常一个或者两个&#xff0c;每个系统都有自己的登录模块&#xff0c;用户用不同的账号即可登录&#xff0c;很方便。 但随着企业的发展&#xff0c;用到的系统随之增多&#xff0c;用户在操作不同的系统时…

分享6个自己每天都会打开的网站

分享6个自己每天都会打开的网站&#xff0c;有实用办公网站&#xff0c;也有休闲摸鱼网站&#xff0c;链接直达&#xff0c;速看~ 1、鸠摩搜索 https://www2.jiumodiary.com/ 一个免费的电子书下载网站&#xff0c;页面干净无广告&#xff0c;只有一个搜索框&#xff0c;输入…

应用了网络变压器的PC网卡连接转换器后不好连网,有掉线现象,但外接路由器无问题,可能是什么原因?

Hqst盈盛&#xff08;华强盛&#xff09;电子导读&#xff1a;今天分享的是应用了网络变压器的PC网卡连接转换器后不好连网&#xff0c;有掉线现象&#xff0c;但外接路由器无问题&#xff0c;可能是什么原因呢&#xff1f;如何解决呢&#xff1f; 首先&#xff0c;我们要了解传…