目录 题意: 解析 原题描述 字典树动态求Mex @(hdu 6625求两个序列异或最小值的排列) 题意: \(T(100)\)组,每组两个长度为\(n(100000)\)的排列,你可以将\(a[]\)和\(b[]\)随机排列,可以得到\(c[i]=a[i]\)^\(b[i]\),求字典序最小的\(c[]\). 解析 一个显然对的贪心做法: 针对本题 每次两颗字典树同时往下走,如果都有\(0\)或者\(1\)这条路径,就随便同时走\(0\;or\;1\)这条路径,否则只能一个走\(0\),一个走…
首先说说自相关和互相关的概念.  自相关 在统计学中的定义,自相关函数就是将一个有序的随机变量系列与其自身作比较.每个不存在相位差的系列,都与其都与其自身相似,即在此情况下,自相关函数值最大. 在信号分析当中通常将自相关函数称之为自协方差方程. 用来描述信息在不同时间的,信息函数值的相关性.     互相关 在统计学中,互相关有时用来表示两个随机矢量 X 和 Y 之间的协方差 cov(X, Y),以与矢量 X 的“协方差”概念相区分,矢量 X 的“协方差”是 X 的各标量成分之间的协方差矩阵.…
题目: There are two sorted arrays A and B of size m and n respectively. Find the median of the two sorted arrays. The overall run time complexity should be O(log (m+n)). 题意已只两个有序的序列,找到他们的中位数,复杂度要求O(log (m+n)). 问题可以转化成两个有序序列找第num大的数,用类似二分的思想,用递归处理. 因为两个…
Big Event in HDU Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 48364 Accepted Submission(s): 16581 Problem Description Nowadays, we all know that Computer College is the biggest department in H…
题目: There are two sorted arrays nums1 and nums2 of size m and n respectively. Find the median of the two sorted arrays. The overall run time complexity should be O(log (m+n)). Subscribe to see which companies asked this question 解题思路: 我自己想的方法,先排序在查找.…
Bridging signals Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 4452    Accepted Submission(s): 2769 Problem Description 'Oh no, they've done it again', cries the chief designer at the Waferlan…
---恢复内容开始--- 近日,在做PTA题目时,遇到了一个这样的题,困扰了很久.题目如下:已知有两个等长的非降序序列S1, S2, 设计函数求S1与S2并集的中位数.有序序列A​0​​,A​1​​,⋯,A​N−1​​的中位数指A​(N−1)/2​​的值, 即第⌊(N+1)/2⌋个数(A​0​​为第1个数).输入分三行.第一行给出序列的公共长度N(0<N≤100000),随后每行输入一个序列的信息,即N个非降序排列的整数.数字用空格间隔. 首先,分析题可知:该题中的序列是一个升序 的序列(可能存…
求递推序列的第N项 有一个序列是这样定义的:f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1) + B * f(n - 2)) mod 7. 给出A,B和N,求f(n)的值. Input输入3个数:A,B,N.数字之间用空格分割.(-10000 <= A, B <= 10000, 1 <= N <= 10^9) Output输出f(n)的值. Sample Input 3 -1 5 Sample Output 6 原来想直接暴力 后来发现n是1e9 内…
有两个序列A和B,A=(a1,a2,...,ak),B=(b1,b2,...,bk),A和B都按升序排列.对于1<=i,j<=k,求k个最小的(ai+bj).要求算法尽量高效. int *min_k(int *A, int *B, int len1, int len2, int k) { if (A == NULL || B == NULL || k <= 0) return NULL; int i, j; int *tmp = new int[k]; i = len1; j = len…
这个是原先AC的代码,但是目前最后一个样例会超内存,也就是开不了两个数组来保存两个序列了,意味着我们只能开一个数组来存,这就需要利用到两个数组都有序的性质了. #include <iostream> #include <cstdio> #include <algorithm> #include <string.h> #include <cmath> #include <queue> using namespace std; /* 水死…