11.15 ~ 18日志

1.Problem - A - Codeforces

这道题感觉网上的题解都讲得非常复杂,但是也给了我一些启发,最后a出来后发现并没有那么困难,首先这题假设我们的答案是x,那么就代表有(sum + k) / x个牌堆,想要让x合法需要满足两个条件

1.(sum + k) / x >= maxn,因为每副牌堆不能有重复的牌,那么牌堆数至少要大于等于最多的牌才有可能

2.(sum + k) / x * x >= sum,这是因为当k = 0的时候sum / x是向下取整的,此时有可能出现牌堆数 * x < sum的情况,这是不能存在的

#define yyy cout<<"Yes"<<"\n" 
#define nnn cout<<"No"<<"\n" 
#define x first 
#define y second
#include<bits/stdc++.h>
using namespace std;typedef long long ll;
typedef pair<ll , ll> pii;
typedef pair<int , string> pis;
const int N = 1e6 + 10,M = 2e5 + 5e4,inf = 0x3f3f3f3f,mod = 1e9 + 7;
const double pi = 3.1415926535898;ll n,k;
ll a[N];void work()
{cin>>n>>k;ll maxn = 0,sum = 0;for(int i = 1 ; i <= n ; i++){cin>>a[i];maxn = max(maxn , a[i]);sum += a[i];}int ans = 1;for(int i = n ; i >= 1 ; i--){ll y = (sum + k) / i;if(y >= maxn && y * i >= sum){ans = i;break;}}cout<<ans<<"\n";
}int main()
{std::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);int t;cin>>t;while(t--){work();}
}

2.D - Project Planning

想复杂了,这题可以直接二分答案,因为我们发现只要场次够小就一定可以满足,而若是超过一个临界值就无法满足,因此我们需要二分找出这个临界值,那么如何判断能不能凑出mid场呢,对于ai >= mid的计数+1,而对于ai < mid的则需要所有ai < mid的凑起来一起除去mid是他们的贡献数看加起来是否超过k

#define yyy cout<<"Yes"<<"\n" 
#define nnn cout<<"No"<<"\n" 
#define x first 
#define y second
#include<bits/stdc++.h>
using namespace std;typedef long long ll;
typedef pair<ll , ll> pii;
typedef pair<int , string> pis;
const int N = 5e5 + 10,M = 2e5 + 5e4,inf = 0x3f3f3f3f,mod = 1e9 + 7;
const double pi = 3.1415926535898;ll n,k;
ll a[N];bool check(ll mid)
{ll sum = 0,cnt = 0;for(int i = 1 ; i <= n ; i++){if(a[i] >= mid){cnt++;}else{sum += a[i];}}cnt += sum / mid;return cnt >= k;
}int main()
{std::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);cin>>n>>k;for(int i = 1 ; i <= n ; i++){cin>>a[i];}ll l = 0,r = 1e18;while(l < r){ll mid = (l + r + 1) / 2;if(check(mid)){l = mid;}else{r = mid - 1;}}cout<<r;
}   

3.P1197 [JSOI2008] 星球大战 - 洛谷 | 计算机科学教育新生态

正难则反,首先很容易能够想到并查集,但是对于删点的操作不太好想,因为我们每次删除一个点i我们并不能知道与i相连的j是否还与其他点有连结从而继续联通,但是我们反过来想,不是将k个点依次删除而是从头到尾将k个点依次连结,这样每次接点的时候只需要i和j的祖先是否相同,若不同则合并后一定会少一个连通块,复杂度实际上是k + m

#define yyy cout<<"Yes"<<"\n" 
#define nnn cout<<"No"<<"\n" 
#define x first 
#define y second
#include<bits/stdc++.h>
using namespace std;typedef long long ll;
typedef pair<ll , ll> pii;
typedef pair<int , string> pis;
const int N = 1e6 + 10,inf = 0x3f3f3f3f,mod = 1e9 + 7;
const double pi = 3.1415926535898;int n,m,k;
int p[N],a[N],ans[N];
vector <int> g[N];
bool st[N];int find(int x)
{if(p[x] != x){p[x] = find(p[x]);}return p[x];
}void merge(int u,int v)
{int fu = find(u),fv = find(v);if(fu != fv){p[fu] = fv;}
}int main()
{std::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);cin>>n>>m;for(int i = 0 ; i < n ; i++){p[i] = i;}for(int i = 1 ; i <= m ; i++){int u,v;cin>>u>>v;g[u].push_back(v);g[v].push_back(u);}int k;cin>>k;for(int i = 1 ; i <= k ; i++){cin>>a[i];st[a[i]] = 1;}int sum = n - k;for(int i = 0 ; i < n ; i++){int u = i;if(st[u]){continue;}for(int j = 0 ; j < g[u].size() ; j++){int v = g[u][j];if(st[v]){continue;}int fu = find(u),fv = find(v);if(fu != fv){sum--;merge(fu , fv);}}}ans[k] = sum;for(int i = k ; i >= 1 ; i--){int u = a[i];sum++,st[u] = 0;for(int j = 0 ; j < g[u].size() ; j++){int v = g[u][j];if(st[v]){continue;}int fu = find(u),fv = find(v);if(fu != fv){sum--;merge(fu , fv);}}ans[i - 1] = sum;}for(int i = 0  ; i <= k ; i++){cout<<ans[i]<<"\n";}
}   

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Redis-08 Redis集群

Redis槽位 Redis分片 Redis集群优势 主要掌握第三种 为什么槽位是16384&#xff1f; 三主三从&#xff1a; 每个主机只能写在自己的槽位 所以登录redis集群记得加参数 -c 比如redis-cli -a dc123 -p 6380 -c 加了 -c 相当于会进行路由转发&#xff0c;不属于自己槽位的…

《Django 5 By Example》阅读笔记:p645-p650

《Django 5 By Example》学习第8天&#xff0c;p645-p650总结&#xff0c;总计6页。 一、技术总结 1.django-rest-framework (1)serializer p648, Serializer: Provides serialization for normal Python class instances。Serializer又细分为Serializer, ModelSerializer,…

设计模式-Adapter(适配器模式)GO语言版本

前言 个人感觉Adapter模式核心就在于接口之间的转换。将已有的一些接口转换成其他接口形式。并且一般用于对象上&#xff0c;而不是系统上 问题 就用一个简单的问题&#xff0c;懂数据结构的同学可能知道双端队列。那么就用双端队列实现一个栈&#xff08;stack&#xff09;或…

【Pythonr入门第二讲】你好,世界

"Hello, World!" 是一种传统的编程入门示例&#xff0c;通常是程序员学习一门新编程语言时编写的第一个程序。这个程序的目标非常简单&#xff1a;在屏幕上输出 "Hello, World!" 这个字符串。尽管它非常简单&#xff0c;但具有重要的象征意义和实际价值。 …

「OpenCV交叉编译」ubuntu to arm64

Ubuntu x86_64 交叉编译OpenCV 为 arm64OpenCV4.5.5、cmake version 3.16.3交叉编译器 gcc-arm-10.2-2020.11-x86_64-aarch64-none-linux-gnu 可在arm或linaro官网下载所需版本&#xff0c;本文的交叉编译器可点击链接跳转下载 Downloads | GNU-A Downloads – Arm Developer L…

PointNet++项目分析

好的&#xff0c;下面是每个文件和目录的详细说明&#xff1a; - **E:\Pointnet_Pointnet2_pytorch\-p**&#xff1a;这看起来像是命令行中的一个参数&#xff0c;而不是实际的文件&#xff0c;可能是误列。 - **E:\Pointnet_Pointnet2_pytorch\.gitattributes**&#xff1a;定…

聚焦 AUTO TECH 2025华南展:探索新能源汽车发展新趋势

随着“新四化”浪潮的推进&#xff0c;汽车行业正经历前所未有的变革。中国新能源汽车正逐渐走向世界。国内汽车制造巨头如比亚迪、吉利、奇瑞、长安等&#xff0c;已经将出口提升至核心战略地位。中国新能源汽车的发展&#xff0c;不仅推动了全球汽车产业的电动化转型&#xf…

JavaEE-网络编程(2)

目录 1. TCP的socket api 1.1 ServerSocket 1.2 Socket 1.3 关于连接 2. 写一个TCP回显服务器 代码的基本结构 2.1.建立连接 2.2 使用 try catch 语法 2.3 对操作流进行封装 2.4 使用 flush() 冲刷缓冲区 2.5 用 close() 关闭对客户端的连接 2.6 println 和 hasnex…

2.5D视觉——Aruco码定位检测

目录 1.什么是Aruco标记2.Aruco码解码说明2.1 Original ArUco2.2 预设的二维码字典2.3 大小Aruco二维码叠加 3.函数说明3.1 cv::aruco::detectMarkers3.2 cv::solvePnP 4.代码注解4.1 Landmark图说明4.2 算法源码注解 1.什么是Aruco标记 ArUco标记最初由S.Garrido-Jurado等人在…

云厂商双十一,无新可拉

失去意义的促销秀。 作者|文昌龙 编辑|杨舟 与电商平台双十一的“低价诱惑”和套路满满不同&#xff0c;云市场的双十一更像是一个买方市场&#xff0c;客户牢牢掌握主导权&#xff0c;厂商不得不低头争抢每一位潜在客户。 电商平台「双11」的本质&#xff0c;初始来看&…

Spring Boot出现java: 错误: 无效的源发行版:16的解决方式

第一步&#xff1a; 修改为SDK的目标字节码版本 第二步&#xff1a;CtrlShiftAltS进入项目结构 第三步&#xff1a;pom.xml文件中 在网上搜索和自己SDK适配的Springboot版本&#xff0c;1.8对应的是2.7.1&#xff08;可以用&#xff09; 修改Java版本为1.8 最后的最后&a…

删除k8s 或者docker运行失败的脚本

vi delete_exited_containers.sh#!/bin/bash# 列出所有停止的容器并存储到数组 list_exited_containers() {echo -e "\nStopped containers:"containers()# 获取停止的容器信息并存入数组while IFS read -r line; docontainers("$line")done < <(do…

Java之Spring MVC篇三

​​​​​​​ 目录 响应 返回静态页面 RestController 和 Controller的区别和联系 返回数据ResponseBody 关于ResponseBody 返回HTML代码片段 返回JSON 设置状态码 设置Header 设置Content-Type 没设置Content-Type之前 设置Content-Type之后 响应 返回静态页面…

Revisiting Prompt Engineering via Declarative Crowdsourcing

文章目录 题目摘要简介LLMS 和众包声明式提示工程讨论结论 题目 通过声明式众包重新审视快速工程 论文地址&#xff1a;https://arxiv.org/abs/2308.03854 摘要 大型语言模型 (LLM) 在理解和生成文本形式的数据方面非常强大&#xff0c;但很脆弱且容易出错。出现了以所谓的提…

数据库概述

1.为什么要使用数据库 使用数据库有以下几个重要原因&#xff1a; 数据的集中管理&#xff1a;数据库可以集中管理和存储大量的数据&#xff0c;而不需要将数据分散保存在不同的文件中。这样可以方便地对数据进行访问、修改和更新。 数据的持久化存储&#xff1a;数据库通过将…

嵌入式驱动开发详解1(系统调用)

文章目录 符设备驱动架构read函数详解用户层read函数内核层read函数 具体实现用户层代码 内核层代码细节分析 符设备驱动架构 如上图所示&#xff0c;应用层程序直接用系统提供的API函数即可调用驱动层相应的函数&#xff0c;中间的具体过程都是由linux内核实现的&#xff0c;…

开源 - Ideal库 - 枚举扩展设计思路及实现难点(三)

今天想和大家分享关于枚举扩展设计思路和在实现过程中遇到的难点。 01、设计思路 设计思路说起来其实也很简单&#xff0c;就是通过枚举相关信息&#xff1a;枚举值、枚举名、枚举描述、枚举项、枚举类型&#xff0c;进行各种转换&#xff0c;通过一个信息获取其他信息。比如通…

学习笔记021——Ubuntu 安装 MySQL 5.7版本

本文通过是Ubuntu自带的apt安装的。 目录 1、查看可安装 MySQL 版本 2、安装 3、设置密码、开启远程访问 4、修改 sql_mode 和 设置 不区分大小写。&#xff08;根据自己需求来定&#xff09; 5、改端口等设置&#xff1a; 6、启动命令 7、验证 1、查看可安装 MySQL 版…

IDE配置tomcat

1.导航到 Tomcat 安装目录 E:\apache-tomcat-9.0.95-windows-x64\apache-tomcat-9.0.95 2.启动 Tomcat 服务&#xff1a;bin\startup.bat

STL关联式容器之平衡二叉搜索树

平衡二叉搜索树 在STL关联式容器介绍-CSDN博客中对二叉搜索树做了简要的描述&#xff1b;但是因为没有对二叉搜索树对数的深度及插入后树的结构进行调整&#xff0c;二叉搜索树可能失去平衡&#xff0c;造成搜寻效率低落的情况。如下所示&#xff1a; 所谓树形平衡与否&#xf…