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;例如社交网络、药物发现、网络安全、…

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> …

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

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

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语言排序算法之八(桶排序)

前言 以下内容是被验证可以有效理解桶排序&#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;模拟开关…

基于springboot+mybatis+vue的项目实战之(后端+前后端联调)

步骤&#xff1a; 1、项目准备&#xff1a;创建数据库&#xff08;之前已经创建则忽略&#xff09;&#xff0c;以及数据库连接 2、建立项目结构文件夹 3、编写pojo文件 4、编写mapper文件&#xff0c;并测试sql语句是否正确 5、编写service文件 6、编写controller文件 …

【数据库原理及应用】期末复习汇总高校期末真题试卷09

试卷 一、填空题(每空1分&#xff0c;共10分) 数据的完整性是指数据的________、有效性和相容性。数据模型通常由________、数据操作以及数据约束条件等三要素组成。在关系的有关术语中&#xff0c;关系表中的每一行称作________&#xff0c;每一列称作属性。信息的三种世界是…

C++:多态-虚函数

C 中的多态性是面向对象编程中的一个重要概念&#xff0c;它允许在运行时选择不同的函数实现&#xff0c;以适应不同类型的对象。 多态的种类 编译时多态性&#xff08;Compile-time Polymorphism&#xff09;&#xff1a;也称为静态多态性或早期绑定&#xff0c;指在编译时确…

【网络协议】----IPv6协议报文、地址分类

【网络协议】----IPv6协议简介 【网络协议】----IPv6协议简介IPv6特点IPv4 和 IPv6报文结构IPv6报文格式-拓展报头 IPv6地址分类IPv6地址表示IPv6单播地址可聚合全球单播地址链路本地地址唯一本地地址特殊地址补充 接口标识&#xff08;主机位&#xff09;生成方法通过EUI-64规…

CISCN 2023 初赛

Web unzip 文件上传页面 upload.php页面源码显示了出来 <?php error_reporting(0); highlight_file(__FILE__);$finfo finfo_open(FILEINFO_MIME_TYPE); if (finfo_file($finfo, $_FILES["file"]["tmp_name"]) application/zip){exec(cd /tmp &am…

IP协议,网络层

一、IP协议报文 在网络层最主要的协议是IP协议&#xff0c;网络层的主要任务是进行&#xff1a;1.地址管理 2.路由选择 地址管理&#xff1a;使用一套地址体系&#xff0c;描述互联网中每个设备所处的位置。 IP地址有两个版本&#xff0c;1.IPV4 2.IPV6 &#xff0c;IP…

信奥数据“信息差”,让你惊掉下巴!

✅ 信奥红利分析 暑假信奥赛即将到来&#xff0c;在全国各地赛事也越来越受到重视&#xff0c;但是似乎关于红利这一块各地如何&#xff0c;并没有太多的老师给各位家长分析清楚。 那么今天曹老师就主要给从各位新手家长分析一下信奥红利地区&#xff0c;在开始分析之前请大家看…