最大值最小 给定一个不降的序列 \(a\),求其中大于等于 \(x\) 的第一个数。 其实就是查找第一个合法的点。 while(l<r) { mid=(l+r)>>1; if(a[mid]<x)l=mid+1; else r=mid; } 如果当前 \(mid\) 小了,就向右寻找,当前 \(mid ...
分类:
其他好文 时间:
2020-10-31 01:33:54
阅读次数:
18
题意:给你四组长度为$n$序列,从每个序列中选一个数出来,使得四个数字之和等于$0$,问由多少种组成情况(仅于元素的所在位置有关). 题解:$n$最大可以取4000,直接暴力肯定是不行的,我们可以先对后两个数组$c$和$d$,枚举他们每个元素的和,用一个新数组$CD$记录,然后再去枚举$a$和$b$ ...
分类:
其他好文 时间:
2020-10-31 01:32:05
阅读次数:
17
本周的学习逐渐进入了较为重要的阶段 涉及到了日后非常重要的伪代码的介绍以及一些简单算法的介绍 对于本周内容的巩固和加深是十分有必要的 第六章 低级程序设计语言与伪代码 本章的内容我在高一时就有所了解 当时参加信息竞赛时 由于不是随时都能使用电脑 伪代码这一方式就变得十分重要了 在当时 课余时间研究c ...
分类:
其他好文 时间:
2020-10-30 12:50:45
阅读次数:
14
一、为什么会有分布式锁? 在多线程环境下,由于上下文的切换,数据可能出现不一致的情况或者数据被污染,我们需要保证数据安全,所以想到了加锁。 所谓的加锁机制呢,就是当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问,直到该线程读取完,其他线程才可使用。 我们为了减少DB的压力,把库存预热到 ...
分类:
其他好文 时间:
2020-10-29 09:55:18
阅读次数:
18
输出n的阶乘#include<stdio.h>#include<Windows.h>#pragmawarning(disable:4996)intFact(intn){intret=1;for(inti=1;i<=n;i++){ret*=i;}returnret;}intmain(){intn=5;intresult=Fact(n);printf("%d\n
分类:
移动开发 时间:
2020-10-27 11:55:52
阅读次数:
37
题意:有长度$n$的序列,让你构造序列,使得二分查找能在$pos$位置找到值$x$.问最多能构造出多少种排列? 题解:题目给出的$pos$是固定的,所以我们可以根据图中所给的代码来进行二分,确定有多少数小于$x$和大于$x$,然后根据排列组合即可算出答案. 代码: int n,x,pos; ll f ...
分类:
其他好文 时间:
2020-10-27 11:38:34
阅读次数:
29
输出n的阶乘#include<stdio.h>#include<Windows.h>#pragmawarning(disable:4996)intFact(intn){intret=1;for(inti=1;i<=n;i++){ret*=i;}returnret;}intmain(){intn=5;intresult=Fact(n);printf("%d\n
分类:
移动开发 时间:
2020-10-27 11:34:27
阅读次数:
31
二分图相关定理 最小顶点覆盖数 \(n\) = 最大匹配数 \(m\) 对于每组匹配点 \((u, v)\), 发现其中只有一个点会连向非匹配点. 证明: 如果 \(u\) 连向非匹配点 \(x\), \(v\) 连向非匹配点 \(y\), 那么可以找到增广路 \(x->u->v->y\). 与匹配 ...
分类:
其他好文 时间:
2020-10-26 11:28:18
阅读次数:
17
你准备参加一场远足活动。给你一个二维 rows x columns 的地图 heights ,其中 heights[row][col] 表示格子 (row, col) 的高度。一开始你在最左上角的格子 (0, 0) ,且你希望去最右下角的格子 (rows-1, columns-1) (注意下标从 0 ...
分类:
其他好文 时间:
2020-10-26 11:13:12
阅读次数:
19
原题链接 题意简介 要求有多少种 n 的排列,能够通过二分法正确地找到放在 pos 处的数字 x。 答案对 1e9+7 取模。n<=1000。 采用的二分法如下图: 思路分析 首先,这个排列中有一个位置是固定的,就是 a[pos] = x 。 我们知道,二分查找的过程是不断缩小区间的过程,想要找到一 ...
分类:
其他好文 时间:
2020-10-26 10:58:44
阅读次数:
23