12.11-12.12总结(约瑟夫问题 机器翻译 滑动窗口)

12.11 刷题

《算法竞赛》这本书看了很多了,但是题目没咋做,所以今天来刷一下题

P1996约瑟夫问题

还依稀记得大一的时候被约瑟夫支配的恐惧(哭),但是现在做就感觉很简单(虽然也敲了一会,今早感觉状态不是很好)

代码如下:

#include <bits/stdc++.h>
using namespace std;
#define ll long long
ll p[105];
ll n, m;
int main()
{cin >> n >> m;ll cnt = 0, index_now = 0, sum = 0;while (cnt < m && sum != n){if (!p[index_now]){cnt++;if (cnt == m){p[index_now] = 1;cout << index_now + 1 << ' ';cnt = 0;sum++;}}index_now = (index_now + 1) % n;}return 0;
}

P1540 机器翻译

这题首先肯定是要用到队列的,数据量也不大,本来是想用n2的复杂度直接莽的,但是后面发现通过哈希其实是可以把时间复杂度降到On的,代码如下:

#include <bits/stdc++.h>
using namespace std;
#define ll long long
ll m,n;
ll hashh[1005];
queue<ll> q;
int main()
{cin>>m>>n;ll cnt=0,ans=0;//cnt是为了记录队列有没有满,ans是记录查阅次数for(int i=0;i<n;i++){ll word;cin>>word;if(hashh[word]==0){if(cnt!=m){cnt++;}else{ll tp=q.front();q.pop();hashh[tp]=0;}q.push(word);hashh[word]=1;ans++;}}cout<<ans<<endl;return 0;
}

P1886 滑动窗口

这题以前做过,之前肯定是看模版写的单调队列(就是检查到a[i]时,让a[i]成为队列中最大的元素,来维持队列的单调性),今天我瞄了一眼发现这题完全可以用优先队列去写,因为数据量并不是很大,只有106,所以nlogn也是可以过的。

但是单调队列的时间复杂度显然要更优越,是On,所以如果数据量有109,优先队列估计也过不了

优先队列代码:

#include <bits/stdc++.h>
using namespace std;
#define ll long long
ll n, k;
struct node
{ll index;ll value;
};
node a[1000005];
struct compare
{bool operator()(const node &p1, const node &p2){if (p1.value < p2.value)return true;if (p1.value == p2.value)return p1.index < p2.index;return false;}
};
struct compare2
{bool operator()(const node &p1, const node &p2){if (p1.value > p2.value)return true;if (p1.value == p2.value)return p1.index > p2.index;return false;}
};
priority_queue<node, vector<node>, compare2> q1;
priority_queue<node, vector<node>, compare> q2;
int main()
{cin >> n >> k;for (int i = 1; i <= n; i++){cin >> a[i].value;a[i].index = i;}for (int i = 1; i <= n; i++){q1.push(a[i]);if (i >= k){while (q1.top().index < i - k + 1)q1.pop();cout << q1.top().value << ' ';}}cout << endl;for (int i = 1; i <= n; i++){q2.push(a[i]);if (i >= k){while (q2.top().index < i - k + 1)q2.pop();cout << q2.top().value << ' ';}}return 0;
}

单调队列代码:(感觉十分简洁优雅,而且队列里面只存序号这点很高明,如果是我我就定义结构体了)

#include <bits/stdc++.h>
using namespace std;
#define ll long long
ll n, k;
deque<ll> q;
ll a[1000005];
int main()
{cin >> n >> k;for (int i = 1; i <= n; i++)cin >> a[i];for (int i = 1; i <= n; i++){while (!q.empty() && q.front() < i - k + 1)q.pop_front();while (!q.empty() && a[q.back()] > a[i])q.pop_back();q.push_back(i);if (i >= k)cout << a[q.front()] << ' ';}cout << endl;while (!q.empty())q.pop_back();for (int i = 1; i <= n; i++){while (!q.empty() && q.front() < i - k + 1)q.pop_front();while (!q.empty() && a[q.back()] < a[i])q.pop_back();q.push_back(i);if (i >= k)cout << a[q.front()] << ' ';// cout << "i" << i << endl;// for (auto it : q)//     cout << a[it] << ' ';// cout << endl;}return 0;
}

两日总结:
写快一点吧
这三题都是12.11号刷的 今天没抽出时间刷题
昨天去找两位姐姐吃了个饭 玩的挺开心的

然后今天跟学长也出去吃了个饭 吃了日料之后又去吃川菜 笑死我了 花了310左右
撑死了

然后就是最近想法比较多 也跟子雄说了 子雄的执行力是真的强 跟他说他真的就去立马做了

最近喜欢看《马斯克传》 写的很幽默 找到新的精神支撑了

手语社那个圈子总感觉怪怪的 是我想多了么

送给自己5个字:
偏执而疯狂

去看书了

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

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

相关文章

git SSL certificate problem: unable to get local issuer certificate

Git 客户端将会验证服务器端提供的SSL证书是否由受信任的证书颁发机构&#xff08;Certification Authority&#xff0c;CA&#xff09;签发。如果Git客户端无法找到或验证本地签发者证书&#xff0c;就会出现 unable to get local issuer certificate 或类似的错误。 该问题一…

使用秘钥登录服务器

在我们测试或生产环境中&#xff0c;为了服务器安全性&#xff0c;有时可能需要以 SSH 密钥的方式登录服务器&#xff0c;接下来&#xff0c;将演示如何通过 SSH 私钥的方式来远程服务器。 一、远程服务器生成密钥对 1、首先在目标远程服务器下生成 SSH 密钥对 ssh-keygen然…

css设置透明的几种办法

在CSS中&#xff0c;有几种方法可以设置元素的透明度。以下是主要的几种方式&#xff1a; 1. 使用 opacity 属性 定义&#xff1a;opacity 属性用于设置元素的整体透明度&#xff0c;包括其内容和背景。取值范围&#xff1a;取值从0&#xff08;完全透明&#xff09;到1&…

4,双向带头循环链表

目录 1&#xff0c;双向带头循环链表的定义 2&#xff0c;双向带头循环链表的实现 A&#xff0c;函数的声明 B&#xff0c;函数的定义 1&#xff0c;双向带头循环链表的定义 带头双向循环链表&#xff1a;结构复杂&#xff0c;一般用在单独存储数据。实际中使用的链表数据…

谷粒商城—分布式基础

1. 整体介绍 1)安装vagrant 2)安装Centos7 $ vagrant init centos/7 A `Vagrantfile` has been placed in this directory. You are now ready to `vagrant up` your first virtual environment! Please read the comments in the Vagrantfile as well as documentation on…

TimesFM(Time Series Foundation Model)安装(2)

TimesFM&#xff08;Time Series Foundation Model&#xff09;安装简介 readme TimesFM&#xff08;Time Series Foundation Model&#xff09;安装简介&#xff08;1&#xff09;-CSDN博客https://blog.csdn.net/chenchihwen/article/details/144359861?spm1001.2014.3001…

Cesium进阶教程——自定义图形、外观、绘图基础、现有着色器移植至Cesium、ShadowMapping、视频GIS、模型压平、卷帘

基础必看 https://blog.csdn.net/m0_55049655/article/details/139720401 参考路线 http://www.xt3d.online/tutorial/further/article.html 自定义图形 https://blog.csdn.net/m0_55049655/article/details/138908327 https://blog.csdn.net/m0_55049655/article/details/14…

国际荐酒师(香港)协会亮相第六届地博会助力中欧地标交流合作

国际荐酒师&#xff08;香港&#xff09;协会亮相第六届知交会暨地博会&#xff0c;助力中欧地理标志产品交流合作 12月9日&#xff0c;第六届粤港澳大湾区知识产权交易博览会暨国际地理标志产品交易博览会&#xff08;以下简称“第六届知交会暨地博会”&#xff09;在中新广州…

Apache Spark 的基本概念和在大数据分析中的应用。

Apache Spark是一个开源大数据处理框架&#xff0c;被广泛应用于大规模数据分析、机器学习和图形处理等领域。它具有以下几个基本概念&#xff1a; RDD&#xff08;Resilient Distributed Dataset&#xff09;&#xff1a;RDD是Spark中最基本的数据抽象概念&#xff0c;代表了一…

spring boot之@Import注解的应用

我们知道spring boot会通过ComponentScan定义包扫描路径进行业务定义的bean的加载&#xff0c;但是对于很多不在此包路径下定义的bean怎么办呢&#xff1f;比如其他jar包中定义的。这时候import就发挥作用了&#xff0c;通过它也可以实现bean的定义。具体是怎么做的呢&#xff…

Horovod:分布式深度学习训练库;Horovod库中DistributedOptimizer

目录 Horovod:分布式深度学习训练库 环境准备 代码示例 运行脚本 Horovod库中DistributedOptimizer DistributedOptimizer的作用 举例说明 Horovod:分布式深度学习训练库 Horovod是一个开源的分布式深度学习训练库,它能够在多个节点(机器)和多个GPU上高效地并行运行…

【Liunx篇】基础开发工具 - vim

文章目录 一.vim的基本概念1.正常/命令模式2.插入模式3.底行模式/末行模式4.视图模式5.替换模式 二.vim的基本操作1.进入vim&#xff1a;2.退出vim: 三.vim正常模式命令集1.光标定位&#xff1a;2.复制/粘贴3.撤销4.剪切/删除5. 更改 四.vim底行模式命令集1.保存/退出2.调出行号…

Windows安装WSL子系统及docker,以及WSL和docker配置、使用及问题解决

在Windows操作系统中,Ubuntu子系统(也称为Windows Subsystem for Linux, WSL)为开发者提供了一个在Windows环境下运行Linux环境的平台。然而,有时用户在按照Ubuntu子系统或者使用WSL时,可能会遇到各种问题,下面总结一下解决方式。 想要在Windows上安装Docker(实际上是基…

构建Modbus TCP写多个寄存器指令详解

构建Modbus TCP写多个寄存器指令详解 在Modbus TCP通信中&#xff0c;构建正确的指令对于实现设备间的数据交换至关重要。本文将详细解释如何构建一个Modbus TCP指令&#xff0c;用于向设备地址为1的从站&#xff0c;从地址200&#xff08;0xC8&#xff09;开始&#xff0c;连…

【Golang】Go语言编程思想(六):Channel,第三节,使用Channel实现树的遍历

使用 Channel 实现树的遍历 tree 在此处简单回顾一下之前学过的二叉树遍历&#xff0c;首先新建一个名为 tree 的目录&#xff0c;并在其下对文件和子目录进行如下组织&#xff1a; 其中 node.go 存放的是 Node 的定义&#xff1a; package treeimport "fmt"type…

【0363】Postgres内核 从 XLogReaderState readBuf 解析 XLOG Record( 8 )

上一篇: 【0362】Postgres内核 XLogReaderState readBuf 有完整 XLOG page header 信息 ? ( 7 ) 直接相关: 【0341】Postgres内核 读取单个 xlog page (2 - 2 ) 文章目录 1. readBuf 获取 page header 大小1.1 XLOG record 跨 page ?1.2 获取 XLOG Record 的 长度(xl…

IDEA 2024 版本配置热部署

在实际开发过程中&#xff0c;每次修改代码就得将项目重启&#xff0c;重新部署&#xff0c;对于一些大型应用来说&#xff0c;重启时间需要花费大量的时间成本。对于一个后端开发者来说&#xff0c;重启过程确实很难受啊 采用下面三步骤可以完成 1.在IDEA中settings中搜索Debb…

【目标跟踪】DUT Anti-UAV数据集详细介绍

DUT Anti-UAV数据集是大连理工大学的团队公开的数据集&#xff08;DUT是他们学校的简称&#xff09;&#xff0c;其中包括了两个子数据集&#xff1a;目标检测和目标跟踪&#xff08;也就是说&#xff0c;目标检测和目标跟踪都可以用这个数据集&#xff09;。该数据集为可见光模…

经典多模态模型CLIP - 直观且详尽的解释

阅读原文 在本文中&#xff0c;您将了解“contrastive language-image pre-training”&#xff08;CLIP&#xff09;&#xff0c;这是一种创建视觉和语言表示的策略&#xff0c;效果非常好&#xff0c;可用于制作高度特定且性能卓越的分类器&#xff0c;而无需任何训练数据。本…

活动预告 |【Part2】Microsoft Azure 在线技术公开课:基础知识

课程介绍 参加“Azure 在线技术公开课&#xff1a;基础知识”活动&#xff0c;培养有助于创造新的技术可能性的技能并探索基础云概念。参加我们举办的本次免费培训活动&#xff0c;扩充自身的云模型和云服务类型知识。你还可以查看以计算、网络和存储为核心的 Azure 服务。 课…