【多校】2019 Multi-University Training Contest 1官方题解
Blank
定义dp[i][j][k][t]dp[i][j][k][t]dp[i][j][k][t]代表填完前ttt个位置后,{0,1,2,3}\{0,1,2,3\}{0,1,2,3}这4个数字最后一次出现的位置,排序后为i,j,k,t(i<j<k<t)i,j,k,t(i<j<k<t)i,j,k,t(i<j<k<t)的方案数目,则按照第t+1t+1t+1位的数字的四种选择,可以得到四种转移。
对于限制可以按照限制区间的右端点分类,求出dp[i][j][k][t]dp[i][j][k][t]dp[i][j][k][t]后,找到所有以ttt为区间右端点的限制条件,如果当前状态不满足所有限制条件则不合法,不再向后转移。
总时间复杂度O(n4)O(n^4)O(n4)。滚动一维,空间复杂度O(n3)O(n^3)O(n3)
UPD 一开始的模数为109+710^9+7109+7,后来统一改成了998244353998244353998244353,但最后在polygon上生成数据的时候标程放错了,就跑出了模109+710^9+7109+7的结果。对被这道题卡了的大佬们表示歉意!
Operation
暴力的做法可以用数据结构维护区间线性基,但肯定过不了。
贪心地维护序列的前缀线性基(上三角形态),对于每个线性基,将出现位置靠右的数字尽可能地放在高位,也就是说在插入新数字的时候,要同时记录对应位置上数字的出现位置,并且在找到可以插入的位置的时候,如果新数字比位置上原来的数字更靠右,就将该位置上原来的数字向低位推。
在求最大值的时候,从高位向低位遍历,如果该位上的数字出现在询问中区间左端点的右侧且可以使答案变大,就异或到答案里。
对于线性基的每一位,与它异或过的线性基更高位置上的数字肯定都出现在它右侧(否则它就会被插入在那个位置了),因此做法的正确性显然。
Milk
由于只能从上向下走,因此可以将行离散化,然后从上向下做背包。
记第iii行的牛奶数为cic_ici,则对于第iii行,求出在行内向左/右走喝1,2,...,ci1,2,...,c_i1,2,...,ci包牛奶并且回到/不回到行中点的最短时间,然后合并背包求出在第iii行内喝1,2,...,ci1,2,...,c_i1,2,...,ci包牛奶并且回到/不回到行中点的最短时间,然后和在前i−1i-1i−1行喝牛奶并回到中点的背包合并,求出在前iii行内喝1,2,...,k1,2,...,k1,2,...,k包牛奶并且回到/不回到行中点的最短时间,并用不回到中点的背包更新答案。每一行处理的复杂度为O(kci)O(kc_i)O(kci),因此总复杂度为O(k2)O(k^2)O(k2)。
注意对第一行要特殊处理。
Vacation
把第iii辆车追上第i+1i+1i+1辆车当作一个事件,显然只有nnn个事件,且第iii辆车追上第i+1i+1i+1辆车只可能会对第i−1i-1i−1辆车追上第iii辆车的时间产生影响,且时间一定是变小,因此可以维护车之间的距离和速度来计算事件发生时间,用堆来找出最早发生的事件,不停处理直到000车通过停车线。复杂度为O(nlogn)O(n\log n)O(nlogn)。
上述做法比较麻烦,可以直接二分最终时间,然后从第一辆车开始递推求出每辆车的最终位置。复杂度为O(nlogC)O(n\log C)O(nlogC),也可以过。
UPD 发现有很多大佬写了O(n)O(n)O(n)的做法,大概是这样:最终通过停止线的时候,一定是一个车后面堵着剩余所有的车,那么影响时间的就只有最前面这辆车,所以对于每一辆车,假设是它是和000车堵在一起的最靠前的一辆车,那么可以计算出一个值,所有的车的计算值的最大值就是答案。
Path
题意为给定一个有向图,删掉一条边的代价为边权,要求以尽可能少的总代价删掉一些边,使得最短路增加。
先求出最短路,然后保留所有满足dey−dex=ewd_{e_y}-d_{e_x}=e_wdey−dex=ew的边,对于新的图求111到nnn的最小割即为答案。
Typewriter
对于iii从小到大处理,维护使得s[j:i]∈s[1:j−1]s[j:i]\in s[1:j-1]s[j:i]∈s[1:j−1]的最小的jjj(s[l:r]s[l:r]s[l:r]表示子串slsl+1...srs_ls_{l+1}...s_{r}slsl+1...sr),那么记f[i]f[i]f[i]为输出前iii个字符的最小代价,则f[i]=min{f[i−1]+p,f[j−1]+q}f[i]=\min\{f[i-1]+p,f[j-1]+q\}f[i]=min{f[i−1]+p,f[j−1]+q}。
用SAM维护s[1:j−1]s[1:j-1]s[1:j−1],若s[1:j−1]s[1:j-1]s[1:j−1]中包含s[j:i+1]s[j:i+1]s[j:i+1],即加入第i+1i+1i+1个字符仍然能复制,就不需要做任何处理。否则,重复地将第jjj个字符加入后缀自动机并j=j+1j=j+1j=j+1,相应维护s[j:i+1]s[j:i+1]s[j:i+1]在后缀自动机上新的匹配位置,直到s[j,i+1]∈s[1,j−1]s[j,i+1]\in s[1,j-1]s[j,i+1]∈s[1,j−1]。
UPD 出题人的的程序跑了600+ms,验题人的程序跑了900+ms,也并没有特地优化时间……开这个时限本意就是卡掉非线性的做法,但是目测误伤了很多写线性做法的大佬,非常抱歉!
Meteor
题意为求分子分母均小于等于某个值nnn的第kkk大的最简分数。
首先考虑二分一个值kkk,求出小于这个值的分子分母≤n\le n≤n的最简分数个数,即为:
∑i=1n∑j=1⌊ki⌋[(i,j)=1]=∑i=1n∑j=1⌊ki⌋∑d∣i,d∣jμ(d)=∑dμ(d)∑i=1⌊nd⌋⌊ki⌋
\begin{aligned}
&\sum_{i=1}^n\sum_{j=1}^{\lfloor ki \rfloor}[(i,j)=1]\\
=&\sum_{i=1}^n\sum_{j=1}^{\lfloor ki \rfloor}\sum_{d|i,d|j}\mu(d)\\
=&\sum_{d} \mu(d)\sum_{i=1}^{\lfloor \frac {n}{d}\rfloor}\lfloor {ki}\rfloor
\end{aligned}
==i=1∑nj=1∑⌊ki⌋[(i,j)=1]i=1∑nj=1∑⌊ki⌋d∣i,d∣j∑μ(d)d∑μ(d)i=1∑⌊dn⌋⌊ki⌋
二分的时候写分数二分,二分O(logn)O(\log n)O(logn)次就可以收敛到仅包含一个符合条件的分数的区间。最后在Stern-Brocot Tree上遍历,求出≥\ge≥左端点lll且满足条件的最小的符合条件的分数即为答案。
在分数二分之后,kkk变成ab\frac abba的形式,因此后半和式就可以用类欧几里得来算。
二分的部分复杂度为O(nlognlogC)O(\sqrt n\log n\log C)O(nlognlogC)(CCC代表二分出的分子分母的值),然后在树上遍历求答案的复杂度为O(n)O(n)O(n)(在所求答案为1n\frac 1nn1时可以取到上界)。
Desert
对于一个有根仙人掌,去掉根之后的每个连通块都会是许多有根仙人掌串起来的一个“序列”,且互为对称的两个序列被认为相同。例如:
[外链图片转存失败(img-rckZimCt-1563840303961)(.\so.png)]
从这个角度考虑,令ana_nan表示nnn个点的有根仙人掌数目,bnb_nbn表示nnn个点的“仙人掌序列(互为对称的两个序列视为不同)”的个数,cnc_ncn 表示共有 nnn 个点并由奇数个仙人掌组成的“回文仙人掌序列”的个数,dnd_ndn表示共有nnn个点的“仙人掌序列(互为对称的仙人掌序列视为相同)”的个数,则b,c,db,c,db,c,d 的求法容易得到:
{bn=an+∑i=1n−1aibn−icn=an+∑i=1⌊n/2⌋aicn−2idn=12(bn+cn+[2∣n]bn/2)
\left\{
\begin{aligned}
b_n &= a_n + \sum_{i=1}^{n-1} a_i b_{n-i}\\
c_n &= a_n + \sum_{i=1}^{\lfloor n/2\rfloor} a_i c_{n-2i}\\
d_n &= \frac12 \left(b_n + c_n + [2|n] b_{n/2} \right)\\
\end{aligned}
\right.
⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧bncndn=an+i=1∑n−1aibn−i=an+i=1∑⌊n/2⌋aicn−2i=21(bn+cn+[2∣n]bn/2)
而按照前面的分析,ana_nan就是由n−1n-1n−1个点组成若干个“仙人掌序列(互为对称的仙人掌序列视为相同)”的方案数。因此
∑nanxn=x∏i=1∞∏j=1di∑k=0∞xik
\sum_n a_nx^n=x\prod_{i=1}^{\infty}\prod_{j=1}^{d_i}\sum_{k=0}^{\infty}x^{ik}
n∑anxn=xi=1∏∞j=1∏dik=0∑∞xik
枚举 (i,j)(i,j)(i,j) 表示枚举一种序列,kkk 表示这种序列的个数。等式右边的乘积展开之后每项即为若干个 xikx^{ik}xik 的乘积,表示某种 iii 个点的仙人掌序列选了 kkk 个。
对这个等式进行处理:
∑nanxn=x∏i=1∞∏j=1di∑k=0∞xik⇔∑nanxn−1=∏i=1∞1(1−xi)di⇔ln∑nanxn−1=∑i=1∞ln1(1−xi)di=∑i=1∞di∑j=1∞xijj⇔ddxln∑nanxn−1=∑i=1∞idi∑j=1∞xij−1⇔∑n>1(n−1)anxn−2=(∑nanxn−1)(∑i=1∞idi∑j=1∞xij−1)⇔∑n>1(n−1)anxn=(∑nanxn)(∑i=1∞idi∑j=1∞xij)⇔∑n>1(n−1)anxn=(∑nanxn)(∑i=1∞xi∑j∣ijdj)
\begin{aligned}
\sum_n a_nx^n&=x\prod_{i=1}^{\infty}\prod_{j=1}^{d_i}\sum_{k=0}^{\infty}x^{ik}\\
\Leftrightarrow\sum_n a_nx^{n-1}&=\prod_{i=1}^{\infty}\frac1{(1-x^i)^{d_i}}\\
\Leftrightarrow\ln\sum_n a_nx^{n-1}&=\sum_{i=1}^{\infty}\ln\frac1{(1-x^i)^{d_i}}=\sum_{i=1}^{\infty}d_i\sum_{j=1}^{\infty}\frac{x^{ij}}j\\
\Leftrightarrow\frac{\rm d}{{\rm d}x}\ln\sum_n a_nx^{n-1}&=\sum_{i=1}^{\infty}id_i\sum_{j=1}^{\infty}x^{ij-1}\\
\Leftrightarrow\sum_{n>1} (n-1)a_nx^{n-2}&=\left(\sum_n a_nx^{n-1}\right)\left(\sum_{i=1}^{\infty}id_i\sum_{j=1}^{\infty}x^{ij-1}\right)\\
\Leftrightarrow\sum_{n>1} (n-1)a_nx^n&=\left(\sum_n a_nx^n\right)\left(\sum_{i=1}^{\infty}id_i\sum_{j=1}^{\infty}x^{ij}\right)\\
\Leftrightarrow\sum_{n>1} (n-1)a_nx^n&=\left(\sum_n a_nx^n\right)\left(\sum_{i=1}^{\infty}x^i\sum_{j|i}jd_j\right)\\
\end{aligned}
n∑anxn⇔n∑anxn−1⇔lnn∑anxn−1⇔dxdlnn∑anxn−1⇔n>1∑(n−1)anxn−2⇔n>1∑(n−1)anxn⇔n>1∑(n−1)anxn=xi=1∏∞j=1∏dik=0∑∞xik=i=1∏∞(1−xi)di1=i=1∑∞ln(1−xi)di1=i=1∑∞dij=1∑∞jxij=i=1∑∞idij=1∑∞xij−1=(n∑anxn−1)(i=1∑∞idij=1∑∞xij−1)=(n∑anxn)(i=1∑∞idij=1∑∞xij)=(n∑anxn)⎝⎛i=1∑∞xij∣i∑jdj⎠⎞
令左右两边对应项系数相等即可以得到ana_nan 的递推式:
an=[n=1]+[n>1]1n−1∑i=1n−1(∑j∣ijdj)an−i
a_n = [n=1] + [n>1]\frac1{n-1} \sum_{i=1}^{n-1} \left(\sum_{j|i} j d_j \right) a_{n-i}\\
an=[n=1]+[n>1]n−11i=1∑n−1⎝⎛j∣i∑jdj⎠⎞an−i
分治FFT求出a,b,c,da,b,c,da,b,c,d即可。
String
一位位地构造答案字符串,每次贪心地加能加入的最小的字符(判断能否加入只要判断加入之后原字符串剩下的后缀中的每种字符的数目能否足够满足条件)。
Kingdom
记前序序列为a[]a[]a[],中序序列为b[]b[]b[]。首先考虑到,如果一个数既没有在a[]a[]a[]中出现也没有在b[]b[]b[]中出现,那么说明当所有出现过的数确定之后,它放在任何一个位置上都可以。
再来考虑出现过的数,显然如果树的形态确定了,那么这些数的位置一定确定了。定义 f[x][l][r]f[x][l][r]f[x][l][r] 为 a[x]a[x]a[x]做根,对应的子树为 b[]b[]b[]中的 [l,r][l, r][l,r] 区间,有多少不同的树的形态。如果一个数仅在 a[]a[]a[] 或 b[]b[]b[] 中出现过,那么它可以和 000 对应。否则,需要把它在两个序列中的位置对应。在区间 DPDPDP 划分区间的时候考虑这些数出现的合法性再转移即可。
最后,假如有 kkk 个数既没有出现在 a[]a[]a[]中也没有出现在b[]b[]b[]中,那么答案即为 f[1][1][n]⋅k!f[1][1][n] \cdot k!f[1][1][n]⋅k!
另外,对于每个状态(x,l,r)(x,l,r)(x,l,r),可以推得这种状态中有多少个对位置可以随意确定,那么可以在转移的过程中乘一个组合数,相当于把空位可以填的数字分给两个子区间,这样可以直接求出最终的答案。
由于非法状态比较多,写记忆化搜索跑的比较快。
Function
∑i=1ngcd(⌊i3⌋,i)=∑a=1⌊n3⌋∑i=1ngcd(a,i)[⌊i3⌋=a]\begin{aligned}
&\sum_{i=1}^n\gcd(\lfloor{\sqrt[3]{i}}\rfloor,i)\\
=&\sum_{a=1}^{\lfloor{\sqrt[3]{n}}\rfloor}\sum_{i=1}^n\gcd(a,i)
[\lfloor\sqrt[3]{i}\rfloor=a]
\end{aligned}=i=1∑ngcd(⌊3i⌋,i)a=1∑⌊3n⌋i=1∑ngcd(a,i)[⌊3i⌋=a]
又有
⌊i3⌋=a⇔a≤i3<a+1⇔a3≤i≤(a+1)3−1\lfloor \sqrt[3]i\rfloor=a\Leftrightarrow a\le \sqrt[3]i< a+1\Leftrightarrow a^3\le i\le (a+1)^3-1⌊3i⌋=a⇔a≤3i<a+1⇔a3≤i≤(a+1)3−1
因此
∑i=1ngcd(a,i)[⌊i3⌋=a]=∑i=a3min{n,(a+1)3−1}gcd(a,i)\begin{aligned}
&\sum_{i=1}^n\gcd(a,i)[\lfloor\sqrt[3]{i}\rfloor=a]\\
=&\sum_{i=a^3}^{\min \left\{n,(a+1)^3-1\right\}}\gcd(a,i)
\end{aligned}=i=1∑ngcd(a,i)[⌊3i⌋=a]i=a3∑min{n,(a+1)3−1}gcd(a,i)
设r=⌊n3⌋−1r=\lfloor\sqrt[3]{n}\rfloor-1r=⌊3n⌋−1,则带回原式子
∑i=1ngcd(⌊i3⌋,i)=∑i=⌊n3⌋3ngcd(⌊n3⌋,i)+∑a=1r∑i=a(a+1)3−1gcd(a,i)\begin{aligned}
&\sum_{i=1}^n\gcd(\lfloor{\sqrt[3]{i}}\rfloor,i)\\
=&\sum_{i=\lfloor\sqrt[3]{n}\rfloor^3}^n\gcd(\lfloor\sqrt[3]{n}\rfloor,i)+\sum_{a=1}^{r}\sum_{i=a}^{(a+1)^3-1}\gcd(a,i)
\end{aligned}=i=1∑ngcd(⌊3i⌋,i)i=⌊3n⌋3∑ngcd(⌊3n⌋,i)+a=1∑ri=a∑(a+1)3−1gcd(a,i)
而
∑i=1ngcd(a,i)=∑dd∑i=1n[gcd(a,i)=d]=∑dd∑t∣id,t∣adμ(t)=∑T∣a⌊nT⌋∑d∣Tdμ(Td)\begin{aligned}
&\sum_{i=1}^n\gcd(a,i)\\
=&\sum_dd\sum_{i=1}^n[\gcd(a,i)=d]\\
=&\sum_dd\sum_{t|\frac id,t|\frac ad}\mu(t)\\
=&\sum_{T|a}\lfloor\frac nT\rfloor\sum_{d|T}d\mu(\frac Td)
\end{aligned}===i=1∑ngcd(a,i)d∑di=1∑n[gcd(a,i)=d]d∑dt∣di,t∣da∑μ(t)T∣a∑⌊Tn⌋d∣T∑dμ(dT)
注意∑d∣Tdμ(Td)=φ(T)\sum_{d|T}d\mu(\frac Td)=\varphi(T)∑d∣Tdμ(dT)=φ(T),则O(n3)O(\sqrt [3]n )O(3n)预处理φ(T)\varphi(T)φ(T)之后,答案式子中的第一个和式可以O(n6)O(\sqrt[6]n)O(6n)地计算出来。
第二个和式可以化为
∑a=1r∑T∣a(⌊(a+1)3−1T⌋−⌊a3−1T⌋)φ(T)=∑Tφ(T)∑b=1⌊rT⌋(⌊(bT+1)3−1T⌋−⌊(bT)3−1T⌋)\begin{aligned}
&\sum_{a=1}^{r}\sum_{T|a}(\lfloor\frac {(a+1)^3-1}T\rfloor-\lfloor\frac {a^3-1}T\rfloor)\varphi(T)\\
=&\sum_{T}\varphi(T)\sum_{b=1}^{\lfloor\frac {r}T\rfloor}(\lfloor\frac {(bT+1)^3-1}T\rfloor-\lfloor\frac {(bT)^3-1}T\rfloor)\\
\end{aligned}=a=1∑rT∣a∑(⌊T(a+1)3−1⌋−⌊Ta3−1⌋)φ(T)T∑φ(T)b=1∑⌊Tr⌋(⌊T(bT+1)3−1⌋−⌊T(bT)3−1⌋)
而
⌊(bT+1)3−1T⌋−⌊(bT)3−1T⌋=⌊b3T2+3b2T+3b⌋−⌊b3T2−1T⌋=3Tb2+3b+1\begin{aligned}
&\lfloor\frac {(bT+1)^3-1}T\rfloor-\lfloor\frac {(bT)^3-1}T\rfloor\\
=&\lfloor b^3T^2+3b^2T+3b\rfloor-\lfloor b^3T^2-\frac 1T \rfloor\\
=&3Tb^2+3b+1
\end{aligned}==⌊T(bT+1)3−1⌋−⌊T(bT)3−1⌋⌊b3T2+3b2T+3b⌋−⌊b3T2−T1⌋3Tb2+3b+1
因此
∑a=1r∑i=a(a+1)3−1gcd(a,i)=∑T=1rφ(T)[(3T∑b=1⌊rT⌋b2)+(3∑b=1⌊rT⌋b)+⌊rT⌋]\begin{aligned}
&\sum_{a=1}^{r}\sum_{i=a}^{(a+1)^3-1}\gcd(a,i)\\
=&\sum_{T=1}^r\varphi(T)[(3T\sum_{b=1}^{\lfloor\frac {r}T\rfloor}b^2)+(3\sum_{b=1}^{\lfloor\frac {r}T\rfloor}b)+\lfloor\frac {r}T\rfloor]\\
\end{aligned}=a=1∑ri=a∑(a+1)3−1gcd(a,i)T=1∑rφ(T)[(3Tb=1∑⌊Tr⌋b2)+(3b=1∑⌊Tr⌋b)+⌊Tr⌋]
可以O(n3)O(\sqrt[3]n)O(3n)求出。
总复杂度O(Tn3)O(T\sqrt [3]n)O(T3n)。
nnn比较小的情况可能会出问题,注意要适当特判。也有其它的算法,只要是线性应该都是能过的。把n3\sqrt[3]n3n出到10710^7107是为了卡非线性做法。
Sequence
令bi=∑j=i−k⋅xaj(0≤x,1≤j≤i)b_i=\sum_{j=i-k\cdot x}a_j(0\le x,1\le j\le i)bi=∑j=i−k⋅xaj(0≤x,1≤j≤i),则∑bixi=(∑aixi)(∑xik)\sum b_i x^i=(\sum a_i x^i)(\sum x^{ik})∑bixi=(∑aixi)(∑xik),因此操作的顺序没有影响,可以统计各类操作次数,然后批量处理,也就是∑xik\sum x^{ik}∑xik的幂。
由于n,mn,mn,m比较大,直接做快速幂或者ln+exp\ln+\expln+exp大概会TTT,但是(∑xik)n=∑(n−1+ii)xik(\sum x^{ik})^n=\sum\binom {n-1+i}{i}x^{ik}(∑xik)n=∑(in−1+i)xik,因此可以省掉求幂,对于一种操作只做一次卷积即可。
Code
d=2d=2d=2时,f(x)=sign(wT⋅x)=w0+w1x1+w2x2f(\boldsymbol{x})={\rm sign}(\boldsymbol{w^T\cdot x})=w_0+w_1x_1+w_2x_2f(x)=sign(wT⋅x)=w0+w1x1+w2x2,f(x)=0f(\boldsymbol{x})=0f(x)=0对应于二维平面上的一条直线,直线一侧的点取值为 111,直线另一侧的取值为 −1-1−1。故该问题等价于能否找到一条直线将平面上的两类点分开,等价于判断这两类点分别组成的两个凸包是否相交。
【多校】2019 Multi-University Training Contest 1官方题解的更多相关文章
- 2015多校联合训练赛 Training Contest 4 1008
构造题: 比赛的时候只想到:前面一样的数,后面 是类似1,2,3,4,5,6....t这 既是:t+1,t+1...,1,2,3,...t t+1的数目 可能 很多, 题解时YY出一个N 然后对N ...
- 2019 Nowcoder Multi-University Training Contest 4 E Explorer
线段树分治. 把size看成时间,相当于时间 $l$ 加入这条边,时间 $r+1$ 删除这条边. 注意把左右端点的关系. #include <bits/stdc++.h> ; int X[ ...
- 2019 Nowcoder Multi-University Training Contest 1 H-XOR
由于每个元素贡献是线性的,那么等价于求每个元素出现在多少个异或和为$0$的子集内.因为是任意元素可以去异或,那么自然想到线性基.先对整个集合A求一遍线性基,设为$R$,假设$R$中元素个数为$r$,那 ...
- 2016 Multi-University Training Contest 1 部分题解
第一场多校,出了一题,,没有挂零还算欣慰. 1001,求最小生成树和,确定了最小生成树后任意两点间的距离的最小数学期望.当时就有点矛盾,为什么是求最小的数学期望以及为什么题目给了每条边都不相等的条件. ...
- 2018 Multi-University Training Contest - Team 1 题解
Solved A HDU 6298 Maximum Multiple Solved B HDU 6299 Balanced Sequence Solved C HDU 6300 Triangle Pa ...
- 2018 Multi-University Training Contest 3(部分题解)
Problem F. Grab The Tree Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 524288/524288 K (Ja ...
- 2018 Multi-University Training Contest 2(部分题解)
Game Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- 2018 Multi-University Training Contest 1(部分题解)
Maximum Multiple Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- 2016 Multi-University Training Contest 3 部分题解
1001,只要枚举区间即可.签到题,要注意的是输入0的话也是“TAT”.不过今天补题的时候却WA了好几次,觉得奇怪.原来出现在判断条件那里,x是一个int64类型的变量,在进行(x<65536* ...
随机推荐
- Flume 实战练习
前期准备 了解Flume 架构及核心组件 Flume 架构及核心组件 Source : 收集(指定数据源从哪里获取) Channel : 聚集 Sink : 输出(把数据写到哪里去) 学习使用 Flu ...
- OpenSSL 生成自定义证书
前言 本文用来记录通过OpenSSL生成自定义证书并在浏览器设置可信任 准备 Linux CentOS7 系统 nginx 1.12.2 Windows 10 IE 11 chrome 71 Open ...
- 每日一译系列-模块化css怎么玩(译文)
原文链接:How Css Modules Work 原文作者是Preact的作者 这是一篇关于如何使用Css Modules的快速介绍,使用到的工具是Webpack吊炸的css-loader 首先,我 ...
- JavaScript 核心学习——继承
本篇博文讲述如何在 JavaScript 中实现继承,以及原型与原型链的知识,在附录中将会讲述 JavaScript 面向对象的常见错误. ##原型与原型链在 JavaScript 中,使用类将会付出 ...
- 致歉Note7用户后,三星要还给世界下一个机皇
1月23日,三星电子在韩国首尔公布了Note7事件原因调查结果.此次认定过程精密而繁琐,最终结果发布距离三星宣布全球召回Note7已经有3个月. 相比事发之初各路信息甚嚣尘上,现在虽然还不能说已经 ...
- 牛客网剑指offer第21题——判断出栈序列是否是入栈序列
题目: 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈 ...
- sql -- 多表关联,update(用户奖励)
表设计: users_buy: users_score: 需求: 1.根据用户分组,找出用户消费最高的金额 select user_name, max(paymoney) as pm from use ...
- 压力测试(八)-多节点JMeter分布式压测实战
1.Jmeter4.0分布式压测准备工作 简介:讲解Linux服务器上jmeter进行分布式压测的相关准备工作 1.压测注意事项 the firewalls on the systems are tu ...
- (Win10)Java,Maven,Tomcat8.0,Mysql8.0.15安装与环境配置,以及IDEA2019.3使用JDBC连接MySQL、创建JavaEE项目
之前用windows+linux的双系统,最近不怎么舒服就把双系统给卸了,没想到除了问题,导致有linux残余,于是就一狠心重装了电脑,又把Java及其相关的一些东西重新装了回来,还好当初存了网盘链接 ...
- JAVA 中的反射(reflact)
获取反射加载类(获取类的字节码)的3种方式: Class class1=Class.forName("lession_svc.lession_svc.reflact.Person" ...