笔试强训Day15 二分 图论

news/2024/11/16 21:25:44/

平方数

题目链接:平方数 (nowcoder.com)

思路:水题直接过。

AC code:

#include<iostream>
#include<cmath>
using namespace std;
int main()
{long long int n; cin >> n;long long int a = sqrtl(n);long long int b = a + 1;if( abs(n - a * a) > abs(n - b * b))cout << b * b;else cout << a * a;return 0;
}

分组

题目链接:E-分组_牛客小白月赛40 (nowcoder.com)

思路:

题目中要求人数最多的小组人尽量少,即可二分每个小组人数。

注意如果小组人数大于 最多人的那个最大值 是不可以的。

多关注下边界条件即可。

AC code:

#include<iostream>
#include<unordered_map>
#include<algorithm>
using namespace std;
unordered_map<int,int> mp;
int n,m;
int cnt;bool check(int x)
{int k = 0;//小组数for(auto it : mp){if(it.second > x)k +=(it.second + x - 1) / x;//向上取整elsek ++;}if(k > m) return 0;return 1;
}int main()
{cin >> n >> m;int maxx = -2e9;for(int i = 0; i < n; i ++){int x; cin >> x;mp[x]++;maxx = max(maxx, mp[x]);}int l = 0, r = 1e5 + 10; // 二分小组人数while(l < r){int mid = l + r >> 1;if(check(mid)) r = mid;else l = mid + 1;}if(r <= maxx)cout << r << endl;else cout << -1 << endl;return 0;
}

AB13 【模板】拓扑排序

题目链接:【模板】拓扑排序_牛客题霸_牛客网 (nowcoder.com)

思路:

模板题 根据入度是否为零 依次入队即可。

AC code:

#include<iostream>
#include<cstring>
using namespace std;const int N = 100010;int h[N], e[N], ne[N], idx;int q[N], d[N]; // d[N] 入度int n, m;void add(int a, int b) {e[idx] = b;ne[idx] = h[a];h[a] = idx ++;
}
void topsort() {int hh = 0, tt = -1;for (int i = 1; i <= n; i++)if (d[i] == 0) q[++tt] = i;while (hh <= tt) {int a = q[hh++];for (int i = h[a]; i != -1; i = ne[i]) {int j = e[i];d[j]-- ;if (!d[j]) q[++tt] = j;}}if (tt == n - 1)for (int i = 0; i < n; i++) cout << q[i] << " ";elsecout << -1;}
int main() {memset(h, -1, sizeof(h));cin >> n >> m;for (int i = 1; i <= m; i++) {int a, b;cin >> a >> b;add(a, b);d[b]++;}topsort();return 0;
}


http://www.ppmy.cn/news/1456067.html

相关文章

Linux内核--设备驱动(六)媒体驱动框架整理(2)--视频

目录 一、引言 二、V4L2 ------>2.1、主要结构体 ------------>2.2.1、video_device ------------>2.2.2、v4l2_device ------------>2.2.3、v4l2_subdev ------>2.2、流程 ------>2.3、驱动实例 ------>2.4、V4L2的ioctl类型 ------------>…

百度语音识别开发笔记

目录 简述 开发环境 1、按照官方文档步骤开通短语音识别-普通话 2、创建应用 3、下载SDK 4、SDK集成 5、相关接口简单说明 5.1权限和key 5.2初始化 5.3注册回调消息 5.4开始转换 5.5停止转换 6、问题 简述 最近想做一些语音识别的应用&#xff0c;对比了几个大厂…

C++:多继承虚继承

在C中&#xff0c;虚继承&#xff08;Virtual Inheritance&#xff09;是一种特殊的继承方式&#xff0c;用于解决菱形继承&#xff08;Diamond Inheritance&#xff09;问题。菱形继承指的是一个类同时继承自两个或更多个具有共同基类的类&#xff0c;从而导致了多个实例同一个…

NodeJS 如何在npm运行时设置Windows控制台的标题?

通过代码设置 const server app.listen(port, () > {console.log(主机名称&#xff1a;, global.hostname)console.log(主机IP地址&#xff1a;, global.host)console.log(后台服务端口号&#xff1a;, port)console.log(恭喜你&#xff0c;启动成功!)process.title node …

Windows中安装的PostgreSQL 数据库如何重启

1. 使用Windows服务管理器 打开“运行”对话框&#xff08;按WinR键&#xff09;。输入services.msc并按回车&#xff0c;这将打开服务列表。在服务列表中找到PostgreSQL服务。它通常命名为“PostgreSQL”后面跟着版本号和实例名称&#xff0c;例如“PostgreSQL 13 - mydb”。…

图像处理-图像平滑

图像平滑 前言一、概念介绍1.1 图像的平滑1.2 图像中噪声的分类1.3 MATLAB的添加噪音代码 二、空间域平滑滤波2.1 均值滤波2.2 原理计算 总结 前言 在图像的获取、传输和存储过程常常收到各种噪声的干扰和影响&#xff0c;使得图像的质量下降&#xff0c;为了获得高质量的数字…

C语言趣味代码(五)

我想以此篇结束关于C语言的博客&#xff0c;因为在C语言拖得越久越不能给大家带来新的创作&#xff0c;在此我也相信大家对C语言已经有了一个新的认知。进入正题&#xff0c;在这一篇中我主要编一个“英语单词练习小程序”来给大家展开介绍&#xff0c;从测试版逐步改良&#x…

力扣100284. 有效单词(C++)

【题解】 (实际在力扣中运行的代码只需要把下方的check函数放到力扣作答区给的模板中就可以) #include <bits/stdc.h> #include <iostream> #include <vector> #include <string> #include <cctype> #include <cstring> #include <st…