E - Handshake

2024-08-28 12:20
文章标签 handshake

本文主要是介绍E - Handshake,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

就是二分再二分的题目。。
中规中矩吧。。
题目链接

#include <bits/stdc++.h>
using namespace std;
#define int long long
#define ll __int128_t
#define ar array<int, 2>
#define arr array<int, 3>
int  n, m, k, inf = 1LL << 61, mod = 998244353;// 1e9+7;
const int N = 5e5 + 50;
int sum[N];
void solve() {cin >> n >> m;int a[n];for (int &x : a)cin >> x ;sort(a, a + n);//这边正序排就好了。下面lower_bound方便点for (int i = 0; i < n; ++i) {sum[i + 1] = sum[i] + a[i];}function<ar(int)> ok = [&](int mx) ->ar{// 就是要枚举右端点。。然后算 左边和特匹配的有多少个>=mxint cnt = 0, ans = 0;//sum 和 有效个数for (int i = 0; i < n; ++i) {if (a[i] + a[n - 1] < mx)continue;int j = lower_bound(a, a + n, mx - a[i]) - a ;cnt += n - j;ans += sum[n] - sum[j] + a[i] * (n - j);}if (cnt >= m)return {ans, cnt};elsereturn { -1, 0};};int l = 0, r = inf;while (l < r) {int mid = (l + r + 1) >> 1;if (ok(mid)[0] != -1)l = mid;elser = mid - 1;}auto[all, cnt] = ok(l);cout << all - (cnt - m)*l;};// 为什么这题会是蓝题。。
// 实际上还是有点东西的。。
// 比如 怎么统计个数啊。。算all啊。。
// 怎么证明最后那部分都是l     5 4 3 3 3 3 后面多出来部分都是3 。。 如果不是3的话。。那就会被截取掉。。signed main() {ios::sync_with_stdio(false);cin.tie(0);cout << fixed << setprecision(15);
#ifdef DEBUGfreopen("../1.in", "r", stdin);
#endif//init_f();//init();//expr();// int T; cin >> T; while(T--)solve();return 0;
}

这篇关于E - Handshake的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1114748

相关文章

【python requests错误】Caused by SSLError(SSLError(bad handshake: SysCallError(104, 'ECONNRESET')

错误描述: 在发送get请求时错误,执行下面一句时报错了: response = requests.get(image_url) 原因HTTPSConnectionPool(host='test-kkbuluo-resource.cdn.hzmltest.com', port=443): Max retries exceeded with url: /IMCORE/RESOURCE/LOG

RFC6455-The WebSocket protocol 之五:Opening Handshake 4.2-4.4

参考:http://jinnianshilongnian.iteye.com/blog/1898350 4.2 Server-Side Requirements 服务器端的要求 Servers MAY offload the management of the connection to other agents    on the network, for ex

RFC6455-The WebSocket protocol 之四:Opening Handshake 4.1. Client Requirements

4.Opening Handshake 4.1. Client Requirements 第四章:握手 第一节:客户端的要求 To _Establish a WebSocket Connection_, a client opens a connection and sends a handshake as defined in this section. A connect

JDK1.8 Received fatal alert: handshake_failure 替换jce不能解决问题的情况

java version “1.8.0_241” 今天对接外部第三方接口的时候提示Received fatal alert: handshake_failure错误,网上说替换jce就好,那个jce下载地址是 https://www.oracle.com/java/technologies/javase-jce8-downloads.html 在我准备替换自己的jce的时候发现文件目录是这样的,按

解决jdk1.8中发送邮件失败(handshake_failure)问题

暑假在家做一个类似知乎的问答型网站(代码可见:Github/wenda 喜欢的可以给个star或者自己fork然后修改,目前功能还未很完善),其中有一个站内邮件通知系统(这里简单的讲一个例子:如果用户登录的时候出现异常,那么就会通过邮件发送通知用户)。然而却碰到一个问题。问题错误信息如下: 发送邮件失败Mail server connection failed; nested exceptio

Ubuntu下 Git 克隆gnutls_handshake() failed的问题

在Ubuntu下git克隆的时候提示gnutls_handshake() failed,搜了一下解决方法有两种: 使用ssh证书克隆而不是通过https链接进行克隆,但是这样子模块在更新的时候还是会走https,所以有子模块的仓库不适用这个方法。(尝试修改.gitsubmodule文件的子模块链接为git@github.com:xxxxxx仍然访问不正常,如果有成功的欢迎在下方留言。) git

javax.net.ssl.SSLProtocolException: handshake alert: unrecognized_name解决

jdk1.7提示:javax.net.ssl.SSLProtocolException: handshake alert: unrecognized_name //方案1:设置系统属性:System.setProperty("jsse.enableSNIExtension", "false"); //方案2:如果是tomcat: // 1. linux,在catalina.sh加上JAVA_OP

半导体设备数据Handshake

本文主要是结合自己在实际工作中的经验从系统的角度总结一下半导体设备的类型:   <1>:图一 设备主要是中小型Inline设备,设备的Substract 的传递是透过PLC 信号的HandShake 来传递,Process Data 的上报也是透过PLC  <2>:图二 为中大型设备在Inline 线的模型,Substract 的传递也是透过PLC 的Handshake ,Proc

jetson nano apt install 问题解决Could not handshake: An unexpected TLS packet was received. [xxx]

如果之前jetson nano的apt install正常,突然出现这个问题,那很可能是你用apt源服务器崩了,我用的是华为云源,出现了如题报错,改成了清华源,就没问题了,也可以改成中科大源。 保存备份: sudo cp /etc/apt/sources.list /etc/apt/sources.list.baksudo gedit /etc/apt/sources.list ‘清华源:

转:javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure 解决方案

转:javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure 解决方案 javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure 解决方案 这个是jdk导致的,jdk里面有一个jce的包,安全性机