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,一经查实,立即删除!

相关文章

STM32智能家居安防系统教程

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

使用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…

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

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

【数据结构】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外链的核心价值在于它提高了网站外链资源的自…

如何学习和提升SQL

资料来源于腾讯技术直播&#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;我们要了解传…

Kotlin/Android中执行网络请求

方式一&#xff1a;使用okhttp3 okhttp官网 okhttp3 github地址 打开build.gradle.kts文件加入依赖 dependencies {implementation("com.squareup.okhttp3:okhttp:4.9.0") }在IDEA的Gradle面板点击reload按钮便会自动下载jar 使用网络请求时需要把网络的权限打开&a…

Nuxt3 的生命周期和钩子函数(十一)

title: Nuxt3 的生命周期和钩子函数&#xff08;十一&#xff09; date: 2024/7/5 updated: 2024/7/5 author: cmdragon excerpt: 摘要&#xff1a;本文详细介绍了Nuxt3中几个关键的生命周期钩子和它们的使用方法&#xff0c;包括webpack:done用于Webpack编译完成后执行操作…

pytorch-时间序列

目录 1. 时间序列2. word embedding2.1 one hot2.2 word2vec2.3 GloVe 1. 时间序列 具有时间相关性的序列叫做时间序列&#xff0c;比如&#xff1a;语音、文本句子 2. word embedding 2.1 one hot 针对句子来说&#xff0c;可以用[seq_len, vector_len] 有多少个单词vecto…

2024第二届电子通信与计算机科学技术国际会议(ICECCST 2024)

2024第二届电子通信与计算机科学技术国际会议(ICECCST 2024) 会议简介 2024第二届电子通信与计算机科学技术国际会议&#xff08;ICECCST 2024&#xff09;是一次重要的学术盛会&#xff0c;将在中国厦门举行。会议的主要目的是为全球的电子通信和计算机科学技术领域的专家、…

数字信号处理实验二(模拟信号采样与重构及频谱分析FFT)

模拟信号采样与重构及频谱分析FFT&#xff08;2学时&#xff09; 要求&#xff1a; 对一模拟信号进行采样&#xff1b;对该采样信号进行重构&#xff1b;分析它们的频谱特征。目的&#xff1a; 熟悉MATLAB命令和编辑、运行、调试环境&#xff1b;掌握采样定理及对信号的频谱分析…

简过网:考教师编制报培训班有用吗?

​ 很多想要备考教师编的朋友都会有一个疑问&#xff0c;那就是备考教师编报培训班有用吗&#xff1f; 其实&#xff0c;主要还是要看你是笔试和面试。 小编觉得如果是笔试的话&#xff0c;其实都是教育理论的东西&#xff0c;线下班其实没有太大的必要&#xff0c;第一是面授…

DFS之搜索顺序——AcWing 1116. 马走日

DFS之搜索顺序 定义 DFS之搜索顺序是指在执行深度优先搜索时&#xff0c;遍历图或树中节点的策略。具体而言&#xff0c;DFS会沿着一条路径深入到底&#xff0c;当无法继续深入时回溯&#xff0c;然后选择另一条未探索的路径继续深入。搜索顺序直接影响到搜索效率和剪枝的可能…

发现CPU占用过高,该如何排查解决?

1.使用top命令 查看cpu占用最多的进程 2.使用 top -H -p pid 发现有两个线程占用比较大 3.将线程id转换为16进制 使用命令 printf 0x%x\n pid 4.使用 jstack pid | grep 线程id(16进制&#xff09; -A 20 &#xff08;显示20行&#xff09; 根据代码显示进行错误排查

电脑为什么会提示丢失msvcp140.dll?怎么修复msvcp140.dll文件会靠谱点

电脑为什么会提示丢失msvcp140.dll&#xff1f;其实只要你的msvcp140.dll文件一损坏&#xff0c;然而你的电脑程序需要运用到这个msvcp140.dll文件的时候&#xff0c;就回提示你丢失了msvcp140.dll文件&#xff01;因为没有这个文件&#xff0c;你的很多程序都用不了的。今天我…