摘要:
Java中的锁机制是并发编程中用来确保多个线程在访问共享资源时不发生数据竞争的关键工具。Java提供了多种锁机制来帮助开发者管理线程同步,主要包括以下几种: 1. synchronized 锁 synchronized是Java中最基本的锁机制,它可以用来修饰方法或者代码块,从而确保同一时间只有一个 阅读全文
摘要:
一 客户端向服务器发送请求 二 服务器收到请求后,发送一个证书(该证书是受到第三方权威机构认证的)和服务器的公钥给客户端,客户端收到证书后,对证书进行验证 三 如果验证成功,客户端会随机生成一个会话密钥,并用服务器刚刚发过来的公钥进行加密该会话密钥,然后将会话密钥发送给服务器 四 服务器用自己的私钥 阅读全文
摘要:
原题链接 题解 发现随着 \(i\) 越大,绝对符号内的值越大,因此具有单调性,可以应用二分查找找离0最近的 \(i\) 而值可以用 等差数列求和公式 快速求出 code #include<bits/stdc++.h> using namespace std; /* mt19937_64 rnd(t 阅读全文
摘要:
原题链接 题意 为了凑 \(mex(k)\) ,\([0,k-1]\) 内的数至少要出现一遍,这些数总共有 \(k\) 个,总和为 $sum=\frac{(k-1)\cdot k}{2} $ 所以,如果 \(n<k\) 或者 \(s<sum\),都不行。 所以,剩余 \(n-k\) 个数的构造要满足 阅读全文
摘要:
原题链接 题意 每个矩形变成删除若干个行和列,每少一行或少一列就加一分,问加 \(k\) 分最少要删除几个格子? 分析 抽象开来,最后的答案的样子一定是第 \(i\) 个矩形加了 \(s_i\) 分 因此,我们只需要求出每个矩形加 \(s_i \in[0,a+b]\) 分时最少需要删除几个格子,然后 阅读全文
摘要:
原题链接 题意 给定一个数组,随机取两个数并相乘,求该期望 分析 暴力方法:遍历所有数对,然后累加,最后除以数对个数 \(O(n^2)\) 每个数的贡献为 \(\sum a_j,j\in[1,n],j \ne i\),遍历计算每个数对最后累加和的贡献 由于要去重,所以每个数的贡献只统计前面的数的和 阅读全文
摘要:
原题链接 题意 每个数要么黑色,要么白色,每个数都有跳往下一个数,请问你最多能得到几个黑色数? 分析 前往下一个数具有很强的指示性,所以我们可以画一个有向图出来 那么问题就变成了一个有向图,问图中的每个点最多能到达几个黑色的点?(只有一个出边) 但是注意本题,由于是排列,每个点最多只有一个入边和一个 阅读全文
摘要:
原题链接 题意 每次询问,要求给定的桥至少走,问最短距离 分析 首先要有暴力的想法 由于给定的 \(k\) 座桥不限制经过顺序,因此我们可以先假定一种过桥的顺序,然后查询 \(a_0\to a_1\) 的最短路, \(a_1\to a_2\) 的最短路.... \(a_k\to a_{k+1}\) 阅读全文
摘要:
原题链接 题意 交替向上向右走,可以不走,请问到给定点需要走几次? 分析 由于可以走0步,所以向上走和向右走是相互独立的,只需要求出他们的最大值即可 如果最后一步是向右跳,由于此时已经跳完了,所以接下来就不用向上跳了 提醒 走0步的移动也要统计在内!! code #include<bits/stdc 阅读全文
摘要:
定义: 解释 既然是等价关系,那么 \(A\) 中的元素 \(a\) 一定和自己等价 如果 \(a\) 和 \(b\) 等价,那么 \(b\) 和 \(a\) 也一定等价 如果 \(a,b\) 等价, \(b,c\) 等价,那么 \(a,c\) 一定等价 阅读全文