笔试题目回忆

(1)给出n,k,n表示数组个数,k表示要剔除的个数,接下来n个数为数组元素,求剔除k个数之后,其他所有数互为倍数,每个数最多剔除一次。

未检测代码,超时。

#include <iostream>
#include <vector>
#include <set>
#include <string>
#include <algorithm>
using namespace std;set<string> strset;
int ans = 0;
bool check(vector<int> nums, vector<int> path) {for (int i = 0; i < path.size(); i++) {nums[path[i]] = 0;}sort(nums.begin(), nums.end());bool flag = true;for (int i = path.size()+1; i < nums.size(); i++) {if (nums[i] % nums[i-1]) {flag = false;break;}}if (flag) {for (int i = 0; i < path.size(); i++) {cout << path[i] << " ";}cout << endl;}return flag;
}void backtrace(vector<int>& nums, int start, vector<int> path, vector<int> vis, int k) {if (path.size() == k) {if (check(nums, path)) {string ns = "";sort(path.begin(), path.end());for (int ll = 0; ll < k; ll++) {ns += to_string(path[ll]);}strset.insert(ns);}return;}if (start >= nums.size()) return;for (int i = start; i < nums.size(); i++) {// 这里不再需要vis数组,因为每次是从i+1往后选择,不是从头开始选择// 如果每次for循环是从头开始的话,需要vis数组进行标记// if (!vis[i]) {//     vis[i] = 1;path.push_back(i);backtrace(nums, i+1, path, vis, k);path.pop_back();// vis[i] = 0;// if (path.size() < k)backtrace(nums, i+1, path, vis, k);// }}
}int main() {int n, k;while (cin >> n >> k) { // 注意 while 处理多个 caseint t;vector<int> nums(n);for (int i = 0; i < n; i++) {cin >> t;nums[i] = t;}vector<int> vis(n);vector<int> path;backtrace(nums, 0, path, vis, k);cout << strset.size() << endl;}return 0;
}

递归执行图如下:

如果输入为4 2

1 2 4 6   (粉红色表示path.size() == k时返回)(蓝色表示start>=nums.size()时返回)

 (2)输入n,m,n表示接下来输入n个长度为m的字符串,从每个字符串中选一个字符组合为一个字符串,求是否存在一个字符串的子序列为“meituan”。

下面是超时的方法,没有测试用例。

#include <iostream>
#include <vector>
#include <string>
using namespace std;bool flag = false;
void backtrace(vector<string>& strs, string& s, int depth, int ind) {if (flag) return;if (depth == s.size()) {// cout << depth << endl;flag = true;return;}if (strs.size() - ind < s.size() - depth) return;for (int i = ind; i < strs.size(); i++) {if (strs[i].find(s[depth]) != string::npos) {backtrace(strs, s, depth+1, i+1);}backtrace(strs, s, depth, i+1);}
}int main() {int n, m;while (cin >> n >> m) { // 注意 while 处理多个 casestring t;vector<string> strs;for (int i = 0; i < n; i++) {cin >> t;strs.push_back(t);}        if (n < 7) {cout << "NO" << endl;} else {for (int i = 0; i < n; i++) {// 找到m的第一个位置,以此位置为起点,进行回溯if (strs[i].find('m') != string::npos) {string s = "meituan";if (flag) break;backtrace(strs, s, 1, i+1);}}if (flag) {cout << "YES" << endl;} else {cout << "NO" << endl;}}}return 0;
}

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

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

相关文章

[dasctf]misc04

与他不说一模一样吧也差不多 第三届红明谷杯CTF-【MISC】-阿尼亚_keepb1ue的博客-CSDN客flag.zip需要解压密码&#xff0c;在图片中发现一串密文。一串乱码&#xff0c;尝试进行字符编码爆破。获取到密码&#xff1a;简单的编码。https://blog.csdn.net/qq_36618918/article/d…

基于springboot跟redis实现的排行榜功能(实战)

概述 前段时间&#xff0c;做了一个世界杯竞猜积分排行榜。对世界杯64场球赛胜负平进行猜测&#xff0c;猜对1分&#xff0c;错误0分&#xff0c;一人一场只能猜一次。 1.展示前一百名列表。 2.展示个人排名(如&#xff1a;张三&#xff0c;您当前的排名106579)。 一.redis so…

c#继承(new base)的使用

概述 C#中的继承是面向对象编程的重要概念之一&#xff0c;它允许一个类&#xff08;称为子类或派生类&#xff09;从另一个类&#xff08;称为父类或基类&#xff09;继承属性和行为。 继承的主要目的是实现代码重用和层次化的组织。子类可以继承父类的字段、属性、方法和事…

nvidia-smi nvcc -V 及 CUDA、cuDNN 安装

nvidia-smi nvcc -V 及 CUDA、cuDNN 安装 1. 问题缘由2. 分析3. CUDA Driver API 安装3.1 Software & Updates3.2 官网下载 4. CUDA Runtime API 安装5. 安装 cuDNN5.1 cuDNN下载 6. 一点点小注意事项 1. 问题缘由 之前查找 CUDA 版本时都是直接使用的 nvidia-smi 指令&am…

Python---函数

函数定义&#xff1a; """ def 函数名(传入参数):函数体return 返回值 """ 函数调用&#xff1a; """ 函数名(传入参数) """ 例子&#xff1a; # 不带参 def check():print("欢迎光临\n请进") che…

OpenCV(十三):图像中绘制直线、圆形、椭圆形、矩形、多边形和文字

目录 1.绘制直线line() 2.绘制圆形circle() 3.绘制椭圆形ellipse() 4.绘制矩形rectangle() 5.绘制多边形 fillPoly() 6.绘制文字putText() 7.例子 1.绘制直线line() CV_EXPORTS_W void line(InputOutputArray img,Point pt1, Point pt2,const Scalar& color,int t…

2021年03月 C/C++(六级)真题解析#中国电子学会#全国青少年软件编程等级考试

C/C++编程(1~8级)全部真题・点这里 第1题:生日相同 2.0 在一个有180人的大班级中,存在两个人生日相同的概率非常大,现给出每个学生的名字,出生月日。试找出所有生日相同的学生。 时间限制:1000 内存限制:65536 输入 第一行为整数n,表示有n个学生,n ≤ 180。此后每行包…

论文阅读_扩散模型_DDPM

英文名称: Denoising Diffusion Probabilistic Models 中文名称: 去噪扩散概率模型 论文地址: http://arxiv.org/abs/2006.11239 代码地址1: https://github.com/hojonathanho/diffusion &#xff08;论文对应代码 tensorflow&#xff09; 代码地址2: https://github.com/AUTOM…

java八股文面试[数据库]——索引的基本原理、设计原则

索引的设计原则 索引覆盖是什么&#xff1a; 索引&#xff08;在MySQL中也叫做“键&#xff08;key&#xff09;”&#xff09; 是存储引擎用于快速找到记录的一种数据结构。这是索引的基本功能。 索引对于良好的性能非常关键。尤其是当表中的数据量越来越大时&#xff0c;索引…

SQLserver基础入门理论(超基础)

♥️作者&#xff1a;小刘在C站 ♥️个人主页&#xff1a; 小刘主页 ♥️努力不一定有回报&#xff0c;但一定会有收获加油&#xff01;一起努力&#xff0c;共赴美好人生&#xff01; ♥️学习两年总结出的运维经验&#xff0c;以及思科模拟器全套网络实验教程。专栏&#xf…

【小沐学Unity3d】3ds Max 多维子材质编辑(Multi/Sub-object)

文章目录 1、简介2、精简材质编辑器2.1 先创建多维子材质&#xff0c;后指定它2.2 先指定标准材质&#xff0c;后自动创建多维子材质 3、Slate材质编辑器3.1 编辑器简介3.2 编辑器使用 结语 1、简介 多维子材质&#xff08;Multi/Sub-object&#xff09;是为一个模形&#xff0…

使用Vue3和Vite升级你的Vue2+Webpack项目

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

CSS水平垂直居中方案

1 前言 水平居中、垂直居中是前端面试百问不厌的问题。其实现方案也是多种多样&#xff0c;常叫人头昏眼花。 水平方向可以认为是内联方向&#xff0c;垂直方向认为是块级方向。 2 内联元素的水平垂直居中 首先&#xff0c;常见内联元素有&#xff1a;a、span、em、b、stro…

使用PAM保障开发运营安全

硬编码凭据和 DevOps 系统中缺乏凭据安全性是组织的巨大漏洞。以明文形式访问凭据的恶意内部人员可以在 IT 中建立和扩展其立足点 基础设施&#xff0c;构成巨大的数据被盗风险。 什么是PAM 特权访问管理 &#xff08;PAM&#xff09; 是指一组 IT 安全管理原则&#xff0c;可…

解决gitee仓库中 .git 文件夹过大的问题

最近&#xff0c;许多项目都迁移到gitee。使用的也越来越频繁&#xff0c;但是今天突然收到一个仓库爆满的提示。让我一脸懵逼。本文将详细为你解答&#xff0c;这种情况如何处理。 1、起因 我收到的报错如下&#xff1a; remote: Powered by GITEE.COM [GNK-6.4] remote: T…

RDMA性能优化经验浅谈

一、RDMA概述 首先我们介绍一下RDMA的一些核心概念&#xff0c;当然了&#xff0c;我并不打算写他的API以及调用方式&#xff0c;我们更多关注这些基础概念背后的硬件执行方式和原理&#xff0c;对于这些原理的理解是能够写出高性能RDMA程序的关键。 Memory Region RDMA的网…

【运维】hadoop3.0.3集群安装(二) 横向新增节点和删除节点

文章目录 一. 新增节点1.配置、安装1.1. 所有节点配置新节点主机映射1.2. 上传安装包1.3. 配置环境变量1.4. 配置workers1.5. 清理之前集群的数据目录&#xff08;如有&#xff09; 2. 新增节点启动3. 平衡DataNode节点 二. 删除节点1. namenode节点操作1.1. 添加excludes文件1…

spring高级源码50讲-43-50(spring续)

其它 43) FactoryBean 演示 - FactoryBean 代码参考 package com.itheima.a43;import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.context.annotation.ComponentScan;ComponentScan public class A43 {publi…

在访问一个网页时弹出的浏览器窗口,如何用selenium 网页自动化解决?

相信大家在使用selenium做网页自动化时&#xff0c;会遇到如下这样的一个场景&#xff1a; 在你使用get访问某一个网址时&#xff0c;会在页面中弹出如上图所示的弹出框。 首先想到是利用Alert类来处理它。 然而&#xff0c;很不幸&#xff0c;Alert类处理的结果就是没有结果…

Flutter系列文章-Flutter在实际业务中的应用

不同场景下的解决方案 1. 跨平台开发&#xff1a; 在移动应用开发中&#xff0c;面对不同的平台&#xff08;iOS和Android&#xff09;&#xff0c;我们通常需要编写两套不同的代码。而Flutter通过一套代码可以构建适用于多个平台的应用&#xff0c;大大提高了开发效率&#x…