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

相关文章

使用秘钥登录服务器

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

谷粒商城—分布式基础

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;在中新广州…

spring boot之@Import注解的应用

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

【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(实际上是基…

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

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

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;而无需任何训练数据。本…

探索云原生安全解决方案的未来

我们是否充分意识到云端所面临的网络安全威胁&#xff1f; 在当今互联互通的世界中&#xff0c;维护安全的环境至关重要。云的出现扩大了潜在威胁的范围&#xff0c;因为它催生了机器身份&#xff08;称为非人类身份 (NHI)&#xff09;及其秘密。随着组织越来越多地转向云原生…

项目组件框架介绍[etcd]

文章目录 前言etcd安装Ubuntu 上通过包管理器安装通过源码安装配置 客户端开发包开发包的安装接口介绍添加一个键值对获取一个键值对租约保活机制监听 封装服务注册与发现服务注册服务发现 前言 Etcd 是一个 golang 编写的分布式、高可用的一致性键值存储系统&#xff0c;用于配…

在Windows 10中使用SSH远程连接服务器(附花生壳操作方法)

SSH 在 linux 中是一种重要的系统组件&#xff0c;用户可以使用 SSH 来远程连接 linux 系统的计算机&#xff0c;或者传输文件。不过在 win10 以前&#xff0c;windows 并不原生支持 SSH&#xff0c;需要借助第三方工具来使用 SSH 功能。而实际上&#xff0c;微软在 2015 年就曾…

【环境搭建】Jeecg-Boot v3.5.0 Docker搭建

前言 最近需要复现JeecgBoot的SQL注入漏洞&#xff0c;必须要搭建JeecgBoot v3.5.0这个版本才行&#xff0c;DockerHub没人push这个版本的&#xff0c;相关博客也比较少&#xff0c;所以自己来搭建&#xff0c;记录一下过程。 前置环境 Ubuntu 20.04Docker version 27.3.1do…

【人工智能基础06】人工神经网络(练习题):神经网络的计算、激活函数的选择与神经网络的退化

文章目录 1. 基于神经网络计算心理健康程度2. 添加激活函数的神经网络计算3. 使用神经网络预测小胖是否会变胖4. 激活函数选择的讨论5. 神经网络的设计6. 深度线性模型的表达能力线性模型7. 神经网络退化 主要讨论的内容 什么是人工神经网络&#xff0c;相关计算反向传播算法的…

STM32 串口收发文本数据包

单片机学习&#xff01; 目录 前言 一、文本数据包格式 二、串口收发文本数据包代码 三、代码解析 3.1 标志位清除 3.2 数据包接收 四、代码问题改进 总结 前言 本文介绍了串口收发文本数据包程序设计的思路并详解代码作用。 一、文本数据包格式 文本数据包的格式的定义…

预言机调研

预言机 1. 概述 预言机主要承担两个工作&#xff0c;一是验证信息可靠性&#xff0c;二是传递信息。 如果没有预言机&#xff0c;区块链的信息来源将仅限于其内部数据&#xff0c;其广泛使用的潜力和可能性将会大大降低。 区块链预言机是区块链与外部世界之间的桥梁。它们使区…

【1211更新】腾讯混元Hunyuan3D-1文/图生3D模型云端镜像一键运行

目录 项目介绍 显存占用 11月21 新增纹理烘焙模块Dust3R 烘焙相关参数&#xff1a; AutoDL云端镜像 启动说明 标准模型下载 项目介绍 https://github.com/Tencent/Hunyuan3D-1 腾讯混元 3D 生成模型,支持文本和图像条件生成(对于文生3D&#xff0c;支持中/英双语生成)…