牛客周赛 Round 18

牛客竞赛_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ (nowcoder.com)

A-游游的整数翻转_牛客周赛 Round 18 (nowcoder.com)

题目描述 

游游拿到了一个正整数�x,她希望把这个整数的前�k位进行翻转。你能帮帮她吗?

简单的字符串操作

#include<bits/stdc++.h>
using namespace std;
int main()
{int k;string s;cin >> s >> k;int n = s.size();string t = s.substr(0,k);reverse(t.begin(),t.end());while(t.size() && t[0] == '0')t.erase(0,1);string ans = t + s.substr(k,n);cout << ans << endl;return 0;
}

Java版

import java.util.Scanner;
public class Main 
{public static void main(String[] args) {Scanner sc = new Scanner(System.in);String s = sc.next();int k = sc.nextInt();int n = s.length();String t = s.substring(0, k);t = new StringBuilder(t).reverse().toString();while (t.length() > 0 && t.charAt(0) == '0')t = t.substring(1);String ans = t + s.substring(k, n);System.out.println(ans);}
}

 

 B-游游的排列统计_牛客周赛 Round 18 (nowcoder.com)

游游想知道,有多少个长度为nnn的排列满足任意两个相邻元素之和都不是素数。你能帮帮她吗?

我们定义,长度为nnn的排列值一个长度为nnn的数组,其中1到nnn每个元素恰好出现了一次。

小数素数判断 + 全排列即可

#include<bits/stdc++.h>
using namespace std;
bool No_prime[20];
void Init()
{for(int i = 3; i < 20; i++){for(int j = 2;j < i;j++)if(!(i % j))No_prime[i] = true;}
}
int a[11];
int main()
{Init();int n;cin >> n;int ans = 0;for(int i = 1;i <= 10;i++)a[i] = i;do{bool is = true;for(int i = 1;i < n;i++){if(false == No_prime[a[i] + a[i + 1]]){is = false;break;}}ans += is;}while(next_permutation(a + 1,a + 1 + n));cout << ans << endl;return 0;
}

Java版

import java.util.*;public class Main 
{static boolean[] No_prime = new boolean[20];static int[] a = new int[11];public static void init() {for (int i = 3; i < 20; i++) for (int j = 2; j < i; j++) if (i % j == 0) {No_prime[i] = true;break;}}public static void main(String[] args) {init();Scanner scanner = new Scanner(System.in);int n = scanner.nextInt();int ans = 0;for (int i = 1; i <= 10; i++)a[i] = i;do {boolean is = true;for (int i = 1; i < n; i++) if (!No_prime[a[i] + a[i + 1]]) {is = false;break;}ans += is ? 1 : 0;} while (next_permutation(a, 1, 1 + n));System.out.println(ans);}public static boolean next_permutation(int[] a, int l, int r) {int i = r - 1;while (i > l && a[i - 1] >= a[i])i--;if (i <= l)return false;int j = r - 1;while (a[j] <= a[i - 1])j--;int temp = a[i - 1];a[i - 1] = a[j];a[j] = temp;j = r - 1;while (i < j) {temp = a[i];a[i] = a[j];a[j] = temp;i++;j--;}return true;}
}

 C-游游刷题_牛客周赛 Round 18 (nowcoder.com)

游游制定了一个刷题计划,她找到了nnn套试卷,每套试卷的题目数量为aia_iai​。游游每天上午最多打开一套试卷,下午最多打开一套试卷,也可以选择不刷题而摸鱼。当游游打开一套试卷后,她就会把上面的题目全部刷完。但是游游有强迫症,她希望每天刷的题目总数均为kkk的倍数。请你计算游游最多能刷多少天的题? 

思路类似力扣中的俩数之和,很好理解。 

#include<bits/stdc++.h>
using namespace std;
const int maxn = 1e5 + 10;
int a[maxn];
int main()
{int ans = 0;int n, k;cin >> n >> k;map<int,int>M;for(int i = 1;i <= n;i++){int m;cin >> m;if(m % k == 0)ans++;else{int p = m % k;if(M[k - p] > 0){ans++;M[k - p]--;}elseM[m % k]++;}}cout << ans << endl;return 0;
}

 Java版

import java.util.*;
public class Main
{public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int ans = 0;int n = scanner.nextInt();int k = scanner.nextInt();Map<Integer, Integer> M = new HashMap<>();for (int i = 1; i <= n; i++) {int m = scanner.nextInt();if (m % k == 0)ans++;else {int p = m % k;if (M.containsKey(k - p) && M.get(k - p) > 0) {ans++;M.put(k - p, M.get(k - p) - 1);} else M.put(m % k, M.getOrDefault(m % k, 0) + 1); }}System.out.println(ans);}
}

D-游游买商品_牛客周赛 Round 18 (nowcoder.com)

背包问题变形(太久没写,晚上看的时候细节容易写错)

#include<bits/stdc++.h>
using namespace std;
const int maxn = 1010;
#define endl '\n'
#define int long long
int a[maxn], b[maxn];
int dp[maxn][maxn];//前i件商品价格为j的最大满足
int n, x;signed main()
{cin.tie(0) -> sync_with_stdio(false);int n, x; cin >> n >> x;for(int i = 1;i <= n; i++) cin >> a[i];for(int i = 1;i <= n; i++) cin >> b[i];for(int i = 1;i <= n; i++){for(int j = 1;j <= x; j++){if(j >= a[i])dp[i][j] = max(dp[i - 1][j],dp[i - 1][j - a[i]] + b[i]);else dp[i][j] = dp[i - 1][j]; int t = (a[i] / 2 + a[i - 1]);if(i > 1 && j >= t)dp[i][j] = max(dp[i][j], dp[i - 2][j - t] + b[i] + b[i - 1]);}}cout << dp[n][x] << endl;return 0;
}

Java版

import java.util.*;public class Main 
{public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int maxn = 1010;long [][] dp = new long  [maxn][maxn];int n, x;n = scanner.nextInt();x = scanner.nextInt();int[] a = new int[maxn];int[] b = new int[maxn];for (int i = 1; i <= n; i++) a[i] = scanner.nextInt();for (int i = 1; i <= n; i++) b[i] = scanner.nextInt();for (int i = 1; i <= n; i++) {for (int j = 1; j <= x; j++){if (j >= a[i]) dp[i][j] = Math.max(dp[i - 1][j], dp[i - 1][j - a[i]] + b[i]);else dp[i][j] = dp[i - 1][j];int t = (a[i] / 2 + a[i - 1]);if (i > 1 && j >= t) dp[i][j] = Math.max(dp[i][j], dp[i - 2][j - t] + b[i] + b[i - 1]);}}System.out.println(dp[n][x]);}
}

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

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

相关文章

【笔试题】位运算

记录一些常见的位运算题&#xff1a; 1、实现对一个8bit数据&#xff08;unsigned char类型&#xff09;的指定位&#xff08;例如第n位&#xff09;置0或者置1操作&#xff0c;并保持其他地位不变。 unsigned char reg;/* 对第n位置0 */ reg &~ (1 << n);/* 对第n位…

mysql根据条件导出表数据(`--where=“文本“`)

本文只讲导出&#xff0c;导入可以参考不同MySQL服务的表以及库的数据迁移&#xff08;/备份&#xff09;-CSDN博客 现在先查下migration_one.table_11里有什么&#xff1a; SELECT * FROM migration_one.table_11;id name ------ -------- 12321 hehe 1321 …

盐值处理:解析与应用(Salt Hashing、Salting)密码哈希(彩虹表)看了还是懵逼!

看了还是懵逼&#xff01;攻击者是在哪儿截获盐值哈希密码的&#xff1f; 文章目录 盐值处理&#xff1a;深度解析与应用1. 盐值处理简介1.1 定义与概述1.2 为什么需要盐值 2. 盐值处理工作原理2.1 创建盐值2.2 应用盐值2.3 存储盐值和哈希密码 3. 盐值处理的优点与缺点3.1 优点…

flutter实现上拉到底部加载更多数据

实现上拉加载数据&#xff0c;效果如下&#xff1a; flutter滚动列表加载数据 使用的库主要是infinite_scroll_pagination , 安装请查看官网 接口用的是https://reqres.in/提供的接口 请求接口用到的库是dio 下面主要是介绍如何使用infinite_scroll_pagination实现上拉加载…

世界土壤数据库(HWSD)土壤数据集

简介&#xff1a; HWSD&#xff08;Harmonized World Soil Database&#xff09;是联合国粮食及农业组织&#xff08;FAO&#xff09;和国际土壤参考与信息中心&#xff08;ISRIC&#xff09;共同开发的世界土壤数据集。该数据集是一份高分辨率&#xff08;1 km&#xff09;&a…

JUC-3-并发锁

一 JAVA 多线程锁介绍 1 悲观锁 定义&#xff1a;悲观锁指对数据被外界修改持保守态度&#xff0c;认为数据很容易就会被其他线程修改&#xff08;很悲观&#xff09;&#xff0c;所以在数据被处理前先对数据进行加锁&#xff0c;并在整个数据处理过程中&#xff0c;使数据处…

linux之信号量的删除

linux之信号量的删除 命令格式&#xff1a;ipcrm [options] [resources] 常用选项&#xff1a; -s&#xff0c;–semaphore-id 按id号删除信号量 -S&#xff0c;–semaphore-key 按键值删除信号量 -a&#xff0c;–all[] 全部删除 -v&#xff0c;–verbose 解释正在进行的操作…

LLM之Prompt(一):5个Prompt高效方法在文心一言3.5的测试对比

在Effective Prompt: 编写高质量Prompt的14个有效方法文中我们了解了14个编写Prompt的方法&#xff08;非常感谢原作者&#xff09;&#xff0c;那么这些Prompt在具体大模型中的效果如何呢&#xff1f;本文以百度文心一言3.5版本大模型在其中5个方法上做个测试对比。 第1条&am…

Android codec2 视频框架 之应用

文章目录 应用流程外部主动获取输入和输出buffer外部设置回调 内部流程 应用流程 外部主动获取输入和输出buffer 解码的调用流程&#xff0c;以android原生的一个bin来说明 android 原生代码位置&#xff1a; frameworks/av/cmds/stagefright/codec.cpp frameworks/av/cmds/st…

Golang区块链钱包

引言 随着区块链技术的发展&#xff0c;数字货币的应用逐渐普及。而区块链钱包作为数字货币的一种必备工具&#xff0c;也变得越来越重要。Golang作为一种简单、高效的编程语言&#xff0c;被广泛运用于区块链领域。本文将介绍Golang区块链钱包的基本概念、特点和使用方法&…

Django系列之Serializer的source参数使用、自定义序列化方法

数据准备 models.py from django.contrib.auth.models import AbstractUser from django.db import modelsclass Publish(models.Model):name models.CharField(max_length32)city models.CharField(max_length8)email models.CharField(max_length32)def __str__(self):r…

【系统集成项目管理工程师】——2.技术

信息与信息化 信息技术核心&#xff1a;信息的传输技术 信息技术三大支柱&#xff1a;传感技术、计算机技术、通信技术 时间敏感网络TSN能够帮助实现信息技术(IT)与运营技术(OT&#xff09;融合&#xff0c;统一的网络能够减少开发部署成本&#xff0c;降低控制器等产品网络配…

Docker中OceanBase挂载过后,删除再启动无限重启的解决办法

ob-compose.yml文件如下&#xff1a; version: 3 services:oceanbase1:image: oceanbase/oceanbase-ce:latestcontainer_name: oceanbase1hostname: oceanbase1ports:- 2881:2881restart: alwaysprivileged: truevolumes:#- //d/obdata/ob:/root/ob#- //d/obdata/obd:/root/.o…

企业该如何选择数字化转型工具?

本人从事TOB服务行业 8 年&#xff0c;曾有幸参与过多家大型企业数字化转型的规划与实施。 在这些服务的企业客户中&#xff0c;有初创企业从几个人开始&#xff0c;短短几年就发展成了拥有2000人的大型企业&#xff0c;也有拥有百年历史的跨国集团企业和国有单位。里面的大多…

外卖系统的数据管理和隐私保护应该如何进行?

1. 数据管理 外卖系统处理大量用户数据&#xff0c;包括个人信息、订单记录、支付信息等。以下是一些数据管理的最佳实践&#xff1a; 合规性与透明度&#xff1a;确保你的数据收集、存储和处理符合相关法规&#xff0c;例如GDPR&#xff08;通用数据保护条例&#xff09;。同…

【已解决】ModuleNotFoundError: No module named ‘dgl‘

禁止使用下面方法安装DGL,这种方法会更新你的pytorch版本&#xff0c;环境越变越乱 pip install dgl 二是进入DGL官网&#xff1a;Deep Graph Library (dgl.ai)&#xff0c;了解自己的配置情况&#xff0c;比如我cuda11.8&#xff0c;ubuntu&#xff0c;当然和linux是一样的 …

Go语言Gin框架前后端分离项目开发工程化实例

文章目录 基本数据配置配置文件管理数据库配置路由配置封装公共方法 数据库模型数据表内容model文件DTO文件 中间件错误异常捕获中间件跨域中间件token认证中间件JWT 控制器UserController 运行调试注册接口登录接口获取用户信息 构建发布项目前端VUE调用接口 基本数据配置 配…

第8章_聚合函数

文章目录 1 聚合函数介绍1.1 AVG和SUM函数1.2 MIN和Max函数1.3 COUNT函数演示代码 2 GROUP BY2.1 基本使用2.2 使用多个列分组2.3 演示代码 3 HAVING3.1 基本使用3.2 WHERE和HAVING的对比3.3 演示代码 4 SELECT的执行过程4.1 查询的结构4.2 SELECT执行顺序4.3 SQL的执行原理演示…

VScode连接Xshell 并解决【过程试图写入的管道不存在】报错

一.下载vscode 国内镜像&#xff1a; https://vscode.cdn.azure.cn/stable/6c3e3dba23e8fadc360aed75ce363ba185c49794/VSCodeUserSetup-x64-1.81.1.exe二.打开vscode在扩展搜索SSH并安装 三.添加主机 按F1选择添加新的ssh主机 按格式输入后在左边会出现电视的图标 之后输入…

Web3.0的测试题

任务&#xff1a; 在前端开发一个查询UI&#xff0c;查询当前用户账户的ETH余额和指定ERC20合约中的余额 目标&#xff1a; UI框架指定使用 MUI (https://mui.com)需要查询到当前账户的ETH余额并展示在UI界面上需要输入ERC20合约地址后&#xff0c;查询到到当前账户在此ERC20…