C++笔试强训day15

目录

1.平方数

2.分组

Check函数的具体实现:

3.拓扑排序


1.平方数

链接

数学找规律,找离 x 最近的完全平方数 y。

先开平方根再利用四舍五入进位即可。

详细代码:

#include <cmath>
#include <iostream>
using namespace std;
#define int long long
signed main() {int x;cin >> x;int tmp = (int)(sqrt(x) + 0.5);cout << tmp * tmp << endl;
}

2.分组 ​​​​​​​

链接

首先想到的肯定是暴力枚举:

从1 到 max_cnt(最大的声部人数)遍历,一个一个判断,第一个满足条件的即可cout了,因为求的是最多小组人数尽可能小。

从左往右遍历大数据很有可能超时,这时就要去想办法优化,二分就是个很好的选择:

暴力:

优化 -> 二分:

详细代码:

#include <iostream>
#include <algorithm>
#include <unordered_map>
using namespace std;unordered_map<int, int> umap;
int n, m;bool Check(int x) // 每组人数最多为x时
{int g = 0;for (auto& [a, b] : umap){g += b / x + (b % x == 0 ? 0 : 1);}return g <= m;
}int main()
{cin >> n >> m;int x;int maxn = 0;for (int i = 0; i < n; ++i){cin >> x;maxn = max(maxn, ++umap[x]);}int kinds = umap.size();if (kinds > m)cout << -1 << endl;else{if (kinds == m)cout << maxn << endl;else{暴力//for (int i = 1; i <= maxn; ++i)//{//    if (Check(i))//    {//        cout << i << endl;//        break;//    }//}int l = 1;int r = maxn;while (l < r){int mid = l + (r - l) / 2;if (Check(mid))r = mid;elsel = mid + 1;}cout << l << endl;}}return 0;
}
Check函数的具体实现:

依次取出umap(哈希表)中的数的次数,用次数 除以 x则可以得到可以分多少组,然后如果有余数的话就再可以分一组:

for ( auto & [a, b] : umap)
{
        g += b / x + (b % x == 0 ? 0 : 1 );
}

返回值则是g <= m, 因为大于m就不满足题意,小于m的话可以通过无限分组(拆开那些同一个声部)来实现。

注意:那为什么g < m 时一定能凑出来等于m呢:

因为n是 >= m的,将n完全拆开是肯定可以拼凑出m组的。

3.拓扑排序

链接

一道拓扑排序模板题,了解过拓扑排序就能很简单写出来。

就分三步:

1.构图

2.将入度为 0 的数存入队列

3.BFS遍历,取数出来 cout 然后,将该数连接的线去除

        同时若出现入度为 1 的数,接着存入队列。

详细代码:

#include <iostream>
#include <queue>
#include <vector>
#include <unordered_map>
using namespace std;
const int N = 2e5 + 10;int n, m, a, b;
int in[N];
int ret[N];
int k = 0;
int main() {cin >> n >> m;// 构图unordered_map<int, vector<int>> edges;for (int i = 0; i < 2 * (n - 1); ++i){cin >> a >> b;edges[a].push_back(b);in[b]++;}// 存入度为一的数queue<int> q;for (int i = 1; i <= n; ++i)if (in[i] == 0)q.push(i);while (q.size()){int top = q.front();q.pop();ret[k++] = top;for (int e : edges[top]){in[e]--;if (in[e] == 0)q.push(e);}}int flag = 1;for (int i = 1; i <= n; ++i)if (in[i] != 0){cout << -1 << endl;flag = 0;break;}if (flag){for (int i = 0; i < k - 1; ++i)cout << ret[i] << " ";cout << ret[k - 1];}return 0;
}

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

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

相关文章

【吊打面试官系列】Java高并发篇 - 你对线程优先级的理解是什么?

大家好&#xff0c;我是锋哥。今天分享关于 【你对线程优先级的理解是什么&#xff1f;】面试题&#xff0c;希望对大家有帮助&#xff1b; 你对线程优先级的理解是什么&#xff1f; 每一个线程都是有优先级的&#xff0c;一般来说&#xff0c;高优先级的线程在运行时会具有优先…

基于C语言中的类型转换,C++标准创造出了更加可视化的类型转换

目录 前言 一、 C语言中的类型转换 二、为什么C需要四种类型转换 三、C中新增的四种强制类型转换操作符以及它们的应用场景 1.static_cast 2.reinterpret_cast 3.const_cast 4.dynamic_cast 前言 在C语言中&#xff0c;如果赋值运算符左右两侧的类型不同&#xff0c;或者…

新书速览|图神经网络基础、模型与应用实战

掌握PyTorch图神经网络基础与模型&#xff0c;实战自然语言处理、计算机视觉、推荐系统、社交网络应用开发 01 本书内容 图神经网络不仅能够解决传统机器学习方法无法解决的图数据问题&#xff0c;而且能够应用于许多实际场景&#xff0c;例如社交网络、药物发现、网络安全、…

服务器放在机房的好处有哪些?

今天小编就来聊一聊&#xff0c;服务区放在机房的好处都有哪些&#xff1f; 首先服务器放置在机房当中&#xff0c;可以受到7*24小时全天候的监管维护&#xff0c;专业的技术人员可以在服务器工作时提供一个可靠的技术支持&#xff0c;当机房中的服务器遭到网络攻击或者是出现服…

初级银行从业资格证知识点(十)

中国银保监会近年来启动了银行业保险业清廉金融文化建设活动&#xff0c;旨在通过全覆盖参与、全过程融入、全方位提升&#xff0c;增强金融从业人员清廉从业意识&#xff0c;培育清廉金融理念&#xff0c;通过文化的渗透力和影响力&#xff0c;厚植清廉根基&#xff0c;提升金…

如何设计一个简单的权限系统

在Java中设计一个简单的权限系统&#xff0c;通常涉及以下几个步骤&#xff1a; 定义角色&#xff08;Role&#xff09;和权限&#xff08;Permission&#xff09;实体&#xff1a;首先&#xff0c;你需要定义角色和权限的实体类&#xff0c;以及它们之间的关系。 创建用户&am…

Yii2 自动生成php代码

文档地址&#xff1a;入门&#xff08;Getting Started&#xff09;: 用 Gii 生成代码&#xff08;Generating Code with Gii&#xff09; - Yii 2.0 权威指南 - 文档 - Yii Framework 中文网 找到配置文件&#xff0c;以我的项目为例&#xff1a; 因为的是开启了路由美化所以访…

【前端热门框架【vue框架】】——对组件进行更加简洁合理的处理和解释(一)

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;程序员-曼亿点 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 曼亿点 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a…

YOLOv5独家原创改进: 通用倒瓶颈(UIB)搜索块结合C3二次创新 | 轻量化之王MobileNetV4

💡💡💡创新点:轻量化之王MobileNetV4 开源 | Top-1 精度 87%,手机推理速度 3.8ms,原地起飞! 最主要创新:引入了通用倒瓶颈(UIB)搜索块,这是一个统一且灵活的结构,它融合了倒瓶颈(IB)、ConvNext、前馈网络(FFN)以及一种新颖的额外深度可分(ExtraDW)变体技…

Stable Diffusion WebUI 使用综述

前言 科技圈的风口年年都在变&#xff0c;前几年是区块链&#xff0c;后来是虚拟现实&#xff0c;元宇宙&#xff0c;web3&#xff0c;而现在是 AI&#xff0c;VR 曾经让我兴奋过&#xff0c;可惜它最终没能形成足够大的浪潮&#xff0c;离最终实现可能还很遥远。而 2022 年开…

flutter日期选择器仅选择年、月

引入包&#xff1a;flutter_datetime_picker: 1.5.0 封装 import package:flutter/cupertino.dart; import package:flutter/material.dart; import package:flutter_datetime_picker/flutter_datetime_picker.dart;class ATuiDateTimePicker {static Future<DateTime> …

这篇超详细讲述提取图像中文本python库有哪些?

当提取图像中的文本时,不同的 OCR 库有各自的特点和优势.以下是对每个库进行详细阐述&#xff1a; 1.Tesseract 简介:Tesseract是由Google开源的免费OCR引擎,目前由社区维护.它支持多种语言和字体,并且在处理标准文本方面表现良好. 优势&#xff1a; 支持多种语言和字体. …

TSINGSEE青犀视频边缘计算AI智能分析网关V4告警消息语音推送的配置流程

TSINGSEE青犀视频边缘计算硬件智能分析网关V4内置了近40种AI算法模型&#xff0c;支持对接入的视频图像进行人、车、物、行为等实时检测分析&#xff0c;上报识别结果&#xff0c;并能进行语音告警播放。今天我们来分享一下如何配置和使用AI智能分析网关V4的语音推送。 提前准备…

thinkphp5.1 模型auto

在ThinkPHP5.1中&#xff0c;模型的自动完成功能可以通过在模型类中定义auto属性来实现。这个属性是一个数组&#xff0c;包含了需要自动填充的字段和对应的处理规则。 以下是一个简单的例子&#xff0c;展示了如何在ThinkPHP5.1的模型中使用自动完成功能&#xff1a; <?…

django中的cookie与session

获取cookie request.COOKIE.GET 使用cookie response.set-cookie views.py from django.http import HttpResponse from django.shortcuts import render# Create your views here. def cookie_test(request):r HttpResponse("hello world")r.set_cookie(lan, py…

C语言关键字 typedef 的功能是什么?

一、问题 语⾔有 32 个关键字&#xff0c;其中 int 的功能是声明整型变量&#xff0c;struct 的功能是声明结构体变量&#xff0c;那么 typedef 的功能是什么呢&#xff1f; 二、解答 1. typedef 的功能 在 C 语⾔中除了可以使⽤标准类型名&#xff08;如 int、 char、float …

c语言排序算法之八(桶排序)

前言 以下内容是被验证可以有效理解桶排序&#xff0c;代码也较容易理解。如果你发现还有很多需要增加的&#xff0c;欢迎留言。 为什么要单独写排序算法这一系列&#xff0c;看过一些贴子普遍篇幅较长。看完依旧难以直观理解原理及整个过程。代码永远是基于理解的基础上才能…

【刷题】前缀和进阶

送给大家一句话&#xff1a; 生活坏到一定程度就会好起来&#xff0c;因为它无法更坏。努力过后&#xff0c;才知道许多事情&#xff0c;坚持坚持&#xff0c;就过来了。 – 宫崎骏 《龙猫》 ┌(˘⌣˘)ʃ┌(˘⌣˘)ʃ┌(˘⌣˘)ʃ ┌(˘⌣˘)ʃ┌(˘⌣˘)ʃ┌(˘⌣˘)ʃ ┌(˘…

RS2105XN功能和参数介绍及PDF资料

RS2105XN 品牌: RUNIC(润石) 封装: MSOP-10 开关电路: 单刀双掷(SPDT) 通道数: 2 工作电压: 1.8V~5.5V 导通时间(Tonmax): 50ns RS2105XN是一款模拟开关芯片。以下是RS2105XN的功能和参数介绍&#xff1a; 功能&#xff1a; 2通道单刀双掷&#xff08;SPDT&#xff09;模拟开关…

React 之 组件之间共享值useContext使用(十五)

1. useContext 是 React 中的一个 Hook&#xff0c;它允许你在组件之间共享值&#xff0c;而不必显式地通过组件树逐层传递 props。当你想要在整个应用程序中传递数据时&#xff0c;使用 useContext 可以使代码更加简洁和易于维护。 2. 相当于vue的依赖注入模式&#xff1a;Pro…