2018-10-16-weekly】的更多相关文章

传送门 一道不错的矩阵快速幂优化dpdpdp. 设f[i][j][k][l]f[i][j][k][l]f[i][j][k][l]表示前iii轮第iii轮还有jjj个一滴血的,kkk个两滴血的,lll个三滴血的. 显然是可以从f[i−1]f[i-1]f[i−1]转移过来的. 但是仔细一想,这个递推关系在i=1i=1i=1~nnn的时候都是一样的,于是把后面三个状压上矩阵快速幂优化就行了. 直接转是O(T∗size3log)O(T*size^3log)O(T∗size3log)的. 于是可以用倍增的…
题意:给定一个{0,1,2,3,-,n-1}的排列 p. 一个{0,1,2 ,-,n-2}的排列 q 被认为是优美的排列, 当且仅当 q 满足下列条件 对排列 s={0,1,2,3,...,n-1}进行 n–1 次交换. 交换 s[q0],s[q0+1] 交换 s[q1],s[q1+1] - 最后能使得排列 s=p. 问有多少个优美的排列,答案对 10^9+7 取模. ( n<=5000) 题解:这个题我们首先要知道一个性质,p排列的每一个数都是s排列经过变换后的最后状态,我们就能通过这些推出q…
1. 打开NuGet管理器搜索redis,安装:“StackExchange.Redis” 2. 配置 Web.config 文件 <connectionStrings> <add name="connStr" connectionString="mongodb://127.0.0.1:27017/mydb01" /> <!-- 在有些版本里面如果不带上数据库名称会出错 --> <add name="redis&q…
传送门 线段树经典题. 就是让你求左端点在[l1,r1][l1,r1][l1,r1]之间,右端点在[l2,r2][l2,r2][l2,r2]之间且满足l1≤l2,r1≤r2l1\le l2,r1 \le r2l1≤l2,r1≤r2的最大子段和. 直接分类讨论就行了. 如果两个区间不相交的话,答案就是rmax(l1,l2)+sum(l2+1,l2−1)+lmax(l2,r2)rmax(l1,l2)+sum(l2+1,l2-1)+lmax(l2,r2)rmax(l1,l2)+sum(l2+1,l2−…
传送门 考试的时候开始sb的以为需要可持久化trietrietrie树,发现建树时空都是O(n2)O(n^2)O(n2)的. 然后发现由于每次只从原来的字符串改一个字符. 因此直接主席树维护区间hashhashhash值. sortsortsort的时候在主席树上二分比大小. 如果左子树hashhashhash值相同递归比右子树,否则走左子树,因为左子树的字典序的贡献更大. 代码…
传送门 按照题意模拟维护最小的环套树森林就行了. 然而考试的时候naivenaivenaive瞎写了一个错误的贪心. 代码…
传送门 原题,原题,全TM原题. 不得不说天天考原题. 其实这题我上个月做过类似的啊,加上dzyodzyodzyo之前有讲过考试直接切了. 要求的其实就是∑i=lr(ii−l+k)\sum _{i=l} ^{r} \binom {i} {i-l+k}∑i=lr​(i−l+ki​) 转化一下. 由于(ii−l+k)=(il−k)\binom {i} {i-l+k}=\binom {i} {l-k}(i−l+ki​)=(l−ki​) 于是原式<=>∑i=lr(il−k)\sum _{i=l} ^r…
心路历程 预计得分:\(100 + 100 + 20 = 220\) 实际得分:\(100 + 100 + 30 = 230\) 辣鸡模拟赛.. T1T2都是一眼题,T3考验卡常数还只有一档暴力分. 开场发现T1只要用堆维护一下就行,20min切掉,时间有点长因为花了好长时间在找pbds的头文件.. T2很裸的拆位+期望dp,就是分情况讨论有点恶心. T3我想了1h结果正解是压位优化暴力qnmd... 咦?好像连题解一块写完了....那就只贴一下代码吧.. 算了代码也懒得发了数据包戳着儿…
IO流学习总结 一 Java IO,硬骨头也能变软 二 java IO体系的学习总结 三 Java IO面试题 NIO与AIO学习总结 一 Java NIO 概览 二 Java NIO 之 Buffer(缓冲区) 三 Java NIO 之 Channel(通道) 四 Java NIO之Selector(选择器) 五 Java NIO之拥抱Path和Files 六 NIO学习总结以及NIO新特性介绍 七 Java NIO AsynchronousFileChannel异步文件通 八 高并发Java…
题意:有n件行李,编号为1~n.行李的质量是模 P 意义下的(P不一定是质数).有 k 个背包,要装下这些行李,为了方便在背包中找行李,每个背包中的行李编号是连续的,允许有背包为空.我们想让最重的背包尽量轻.你可以选择一个x(0<=x<P),给所有行李的质量+x 并%P,然后才装到背包里去. 你要先选择一个 x,再选择一种行李分配方案,使得最重的背包尽量轻.(n<=10000,P<=10000) 题解:暴力做法直接枚举x,二分答案即可,时间复杂度\(O(nPlogn)\) 满分做法…