笔试强训day15

devtools/2024/9/20 3:32:35/ 标签: 算法

平方数

牛妹是一个喜欢完全平方数的女孩子。
牛妹每次看到一个数 x,都想求出离 x 最近的完全平方数 y。
每次手算太麻烦,所以牛妹希望你能写个程序帮她解决这个问题。
形式化地讲,你需要求出一个正整数 y,满足 y 可以表示成 a2a^2a2(a 是正整数),使得 |x-y| 的值最小。可以证明这样的 y 是唯一的。

输入描述:

一行,一个整数 x (1≤x≤1012)x\ (1\le x\le 10^{12})x (1≤x≤1012),表示牛妹询问的数。

输出描述:

一行,一个整数 y,表示离 x 最近的完全平方数 y。
#include <iostream>
#include <cmath>
#define int long long
using namespace std;signed main()
{int n;cin>>n;int x = sqrt(n);int a = x*x,b = (x+1)*(x+1);cout<<(n-a<b-n?a:b)<<endl;return 0;
}

分组

dd当上了宣传委员,开始组织迎新晚会,已知班里有nnn个同学,每个同学有且仅有一个擅长的声部,把同学们分成恰好mmm组,为了不搞砸节目,每一组里的同学都必须擅长同一个声部,当然,不同组同学擅长同一个声部的情况是可以出现的,毕竟一个声部也可以分成好几个part进行表演,但是他不希望出现任何一组的人过多,否则可能会导致场地分配不协调,也就是说,她希望人数最多的小组的人尽可能少,除此之外,对组内人员分配没有其他要求,她希望你告诉她,这个值是多少,如果无法顺利安排,请输出-1

输入描述:

第一行两个数个数n,m(1≤m≤n≤100000)表示人数
接下来一行n个数,a[i](1≤a[i]≤n)表示第i个学生的擅长声部

输出描述:

输出一个数,表示人数最多的小组的人数
//暴力做法#include <bits/stdc++.h>using namespace std;
int n,m;
unordered_map<int,int>hx;bool check(int x)
{int g = 0;for(auto&[a,b]:hx){g += b/x + (b%x==0?0:1);}return g<=m;
}
int main()
{cin>>n>>m;int h = 0;for(int i = 0;i<n;++i){int x;cin>>x;h = max(h,++hx[x]);}if(m<hx.size()){cout<<-1;}else{for(int i = 1;i<=h;++i){if(check(i)){cout<<i;break;}}}return 0;
}
//二分做法#include <bits/stdc++.h>using namespace std;
int n,m;
unordered_map<int,int>hx;bool check(int x)
{int g = 0;for(auto&[a,b]:hx){g += b/x + (b%x==0?0:1);}return g<=m;
}
int main()
{cin>>n>>m;int h = 0;for(int i = 0;i<n;++i){int x;cin>>x;h = max(h,++hx[x]);}if(m<hx.size()){cout<<-1;}else{int l = 1,r = h;while(l<r){int mid = l+r>>1;if(check(mid))r = mid;else l = mid+1;}cout<<l;}return 0;
}

拓扑排序

给定一个包含�n个点�m条边的有向无环图,求出该图的拓扑序。若图的拓扑序不唯一,输出任意合法的拓扑序即可。若该图不能拓扑排序,输出−1−1。

输入描述:

第一行输入两个整数�,�n,m ( 1≤�,�≤2⋅1051≤n,m≤2⋅105),表示点的个数和边的条数。
接下来的�m行,每行输入两个整数��,��u**i​,v**i​ (1≤�,�≤�1≤u,vn),表示��u**i​到��v**i​之间有一条有向边。

输出描述:

若图存在拓扑序,输出一行�n个整数,表示拓扑序。否则输出−1−1。

#include <bits/stdc++.h>using namespace std;
int n, m;
const int N = 2e5 + 10;
vector<vector<int> >edges(N);
int in[N];
queue<int>q;
vector<int>ans;int main() {cin >> n >> m;for (int i = 0; i < m; ++i) {int u, v;cin >> u >> v;edges[u].push_back(v);in[v]++;}for (int i = 1; i <= n; ++i) {if (in[i] == 0) {q.push(i);}}while (!q.empty()) {int t = q.front();q.pop();ans.push_back(t);for (int& x : edges[t]) {if (--in[x] == 0) {q.push(x);}}}if (ans.size() == n) {for (int i = 0; i < n - 1; i++) {cout << ans[i] << " ";}cout << ans[n - 1]; // 测评会考虑最后⼀个元素的空格} else {cout << -1 << endl;}return 0;
}

http://www.ppmy.cn/devtools/114387.html

相关文章

网页打开时,下载的文件xhr类型有什么作用?

网页打开时下载的文件xhr类型主要用于与服务器交互数据&#xff0c;实现网页的动态更新和内容局部加载。‌ XMLHttpRequest&#xff08;XHR&#xff09;对象是浏览器内置的一个功能强大的Web API&#xff0c;它允许网页通过JavaScript向服务器发出请求并处理响应&#xff0c;而…

Chainlit集成LlamaIndex并使用通义千问模型实现AI知识库检索网页对话应用增强版

前言 之前使用Chainlit集成LlamaIndex并使用通义千问大语言模型的API接口&#xff0c;实现一个基于文档文档的网页对话应用。 可以点击我的上一篇文章《Chainlit集成LlamaIndex并使用通义千问模型实现AI知识库检索网页对话应用》 查看。 本次针对上一次的代码功能进一步的完善…

微信小程序页面制作——婚礼邀请函(含代码)

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…

htop(1) command

文章目录 1.简介2.格式3.选项4.交互式命令5.示例6.小结参考文献 1.简介 htop 是一种交互式、跨平台的基于 ncurses 的进程查看器。 类似于 top&#xff0c;但 htop 允许您垂直和水平滚动&#xff0c;并使用指向设备(鼠标)进行交互。您可以观察系统上运行的所有进程&#xff0…

macOS平台编译MAVSDK源码生成mavsdk库与mavsdk_server服务可执行文件

克隆源码: 克隆命令 git clone https://github.com/mavlink/MAVSDK.git --recursive 克隆成功如下: 生成makefile (只生成mavsdk库) cmake -Bbuild/default -DCMAKE_BUILD_TYPE=Debug -H. 指定安装目录与生成目录: cmake -Bbuild/macos -DCMAKE_BUILD_TYPE=Debug -…

定制相亲交友系统如何提升用户体验

在当今社会&#xff0c;随着互联网技术的发展&#xff0c;人们的生活方式发生了翻天覆地的变化&#xff0c;其中婚恋交友领域尤为明显。越来越多的年轻人不再满足于传统的相亲方式&#xff0c;他们渴望一种更为高效、便捷且个性化的交友体验。正是在这种背景下&#xff0c;定制…

python清除一个月以前的ES索引文档数据

python清除一个月以前的ES索引文档数据 先查看一下mysql 数据&#xff0c;看一下那一列是日期字段看到是 edittime 列以下是 python 脚本 vim delete_old_noticeresult.py import datetime from elasticsearch import Elasticsearch, RequestError import logging# 配置日志 …

leetcode41. 缺失的第一个正数,原地哈希表

leetcode41. 缺失的第一个正数 给你一个未排序的整数数组 nums &#xff0c;请你找出其中没有出现的最小的正整数。 请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。 示例 1&#xff1a; 输入&#xff1a;nums [1,2,0] 输出&#xff1a;3 解释&#xf…

tair性能挑战赛攻略心得-Zzzzz

关联比赛: 第二届数据库大赛—Tair性能挑战 赛题分析 赛题要求实现一个基于persistent memory&#xff08;AEP&#xff09;的持久化键值存储系统&#xff0c;并要求从数据正确性和系统读写性能两个方面来考虑系统设计。 正确性 数据正确性包括数据写入的持久性和原子性两个…

tomcat,el表达式执行带参数命令,字符串数组,String[],el表达式注入

准备环境: docker pull tomcat:8;docker run --name tomcat8 -p 808:8080 -v /tmp/CC:/usr/local/tomcat/webapps/ -d tomcat:8;如下为 /tmp/CC/app/index.jsp <% page language"java" contentType"text/html; charsetUTF-8" pageEncoding"UTF-8…

【kafka-01】kafka安装和基本核心概念

Kafka系列整体栏目 内容链接地址【一】afka安装和基本核心概念https://zhenghuisheng.blog.csdn.net/article/details/142213307【二】kafka集群搭建https://zhenghuisheng.blog.csdn.net/article/details/142253288 kafka安装和基本核心概念 一&#xff0c;kafka安装和基本核心…

算法:30.串联所有单词的子串

题目 链接&#xff1a;leetcode链接 思路分析&#xff08;滑动窗口&#xff09; 这道题目类似寻找异位词的题目&#xff0c;我认为是寻找异位词的升级版 传送门:寻找异位词 为什么说像呢&#xff1f; 注意&#xff1a;这道题目中words数组里面的字符串长度都是相同的&…

mongodb 安装教程

mongodb 安装教程&#xff1a; https://blog.51cto.com/u_13646338/5449015 wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-5.0.9.tgz tar -zxvf mongodb-linux-x86_64-rhel70-5.0.9.tgz -C /opt/module/ [roothadoop102 module]# mv mongodb-linux-…

LabVIEW编程快速提升的技术

在LabVIEW程序员的成长过程中&#xff0c;很多技术和概念看似简单、常用&#xff0c;但真正掌握并能熟练运用&#xff0c;往往需要踏踏实实的实践与积累。没有什么是能够一蹴而就的&#xff0c;唯有通过不断的专注与深入&#xff0c;才能获得显著的提升。要想在LabVIEW开发上取…

ld-linux-x86-64.so.2

ld-linux-x86-64.so.2是Linux操作系统上x86_64架构的动态链接器。 ld-linux使用一系列的策略和配置文件来确定在哪里查找共享库。这通常包括查看/etc/ld.so.cache文件&#xff08;这是预先计算的共享库位置列表&#xff0c;该文件利用ldconfig工具管理&#xff09;&#xff0c;…

基于SpringBoot+Vue+MySQL的考编论坛网站

系统展示 用户前台界面 管理员后台界面 系统背景 在当前信息化高速发展的时代&#xff0c;考编已成为众多求职者的重要选择。然而&#xff0c;备考过程中信息获取、经验交流及资源分享的需求日益凸显。基于SpringBoot、Vue.js与MySQL构建的考编论坛网站应运而生&#xff0c;旨在…

11 vue3之插槽全家桶

插槽就是子组件中的提供给父组件使用的一个占位符&#xff0c;用<slot></slot> 表示&#xff0c;父组件可以在这个占位符中填充任何模板代码&#xff0c;如 HTML、组件等&#xff0c;填充的内容会替换子组件的<slot></slot>标签。 匿名插槽 1.在子组…

LabVIEW机械产品几何精度质检系统

随着制造业的发展&#xff0c;对产品质量的要求越来越高&#xff0c;机械产品的几何精度成为衡量其品质的重要指标。为了提高检测效率和精度&#xff0c;开发了一套基于LabVIEW的几何精度质检系统&#xff0c;该系统不仅可以自动化地进行几何尺寸的测量&#xff0c;而且能实时分…

240919-Pip先在线下载不安装+再离线安装

A. 最终效果 # 使用modelscope sdk下载模型 import os os.environ[MODELSCOPE_CACHE] 您希望的下载路径from modelscope import snapshot_download model_dir snapshot_download(opendatalab/PDF-Extract-Kit) print(f"模型文件下载路径为&#xff1a;{model_dir}/model…

快速开发与维护:探索 AndroidAnnotations

在移动应用开发的世界中&#xff0c;效率和可维护性是两个至关重要的要素。随着应用功能的不断增长和用户需求的不断变化&#xff0c;开发者们一直在寻找能够提高生产力的工具和框架。今天&#xff0c;我们将深入探讨一个能够帮助开发者实现快速开发和易于维护的框架——Androi…