HZOJ 毛一琛】的更多相关文章

直接暴搜是$3^n$的,无法接受. 正解是$meet \ in \ the \ middle$,暴搜前n/2个数,每个数的状态有三种:都不选,选为A集合,选为B集合.那么我们可以维护两个集合的差. 设状态为sta,每个数选中为1(无论是A还是B集合都为1),否则为0.差为v. 将二元组(sta,v)插入Hash_map. 之后暴搜后n/2个数.同样统计出状态sta和差v.在Hash_map中查询差为v的二元组个数.同时用数组v[1<<11][1<<11]记录两个状态是否选择过去重.…
问题 A: 毛一琛/$cow$ $subsets$ 时间限制: 1 Sec  内存限制: 512 MB 题面 题面谢绝公开. 题解 题名貌似是个大神??看起来像是签到题然后就死了. 首先$O(3^n)$算法显然.也显然过不去$20$的测试点. 正解是赫赫有名的$meet$ $in$ $the$ $middle$算法.数据在40以内的都能用$meet$ $in$ $the$ $middle$?? 对于两半路径,可以拼起来并且构成合法答案的条件是两人获得的分数相同. 所以一个比较聪明的办法是,不去记…
A. 毛一琛 考虑到直接枚举的话时间复杂度很高,我们运用$meet\ in\ the\ middle$的思想 一般这种思想看似主要用在搜索这类算法中 发现直接枚举时间复杂度过高考虑枚举一半另一半通过其他算法统计,保证两边互不影响 今天的题我们考虑枚举先枚举左半部分,然后每个物品有三种取值情况 选入A集合,选入B集合,不选,系数不同 考虑完左半部分再去考虑右半部分,那么我们可以用哈系表先从将左半部分的答案统计出来 然后右半部分查询他的相反数注意去重 也可以用将两边状态都用结构体存下来 注意去重 思…
题目传送门(内部题69) 输入格式 第一行正整数$n,P,k$.第二行$n$个自然数$a_i$.$(0\leqslant a_i<P)$. 输出格式 仅一个数表示最重的背包的质量. 样例 样例输入: 5 5 20 4 2 1 3 样例输出: 5 数据范围与提示 样例解释: 取$x=3,a=\{3,2,0,4,1\}$.分配方案为$\{3,2,0\},\{4,1\}$,质量最大的质量为$5$. 数据范围: 对于$20\%$的数据$n\leqslant 20,P\leqslant 50$.对于$40…
题目描述 $MYC$在$NOI2018$中,遇到了$day1T2$这样一个题,题目是让你求有多少“好”的排列.$MYC$此题没有获得高分,感到非常惭愧,于是回去专心研究排列了.如今数排列的题对$MYC$来说已经是小菜一碟了.于是$MYC$想考考你,扔给你了一个非常$naive$的数排列题给你. 给定一个$\{0,1,2,3,...,n-1\}$的排列$p$.一个$\{0,1,2,...,n-2\}$的排列$q$被认为是优美的排列,当且仅当$q$满足下列条件: 对排列$s=\{0,1,2,3,..…
题目描述 历史学考后,$MYC$和$ztr$对答案,发现选择题他们没有一道选的是一样的.最后他们都考了个$C$.现在问题来了,假设他们五五开,分数恰好一样(问答题分数也恰好一样,只考虑选择题).已知考题是$N$道选择题(第$i$题分数为$M(i)$).问$ztr$和$MYC$做对的题的并有多少种可能?众所周知,历史学考选择题有$25$题,但是$MYC$为了给你降低难度,$n$不超过$20$. 一句话题意:有多少个非空子集,能划分成和相等的两份. 原题见:$USACO\ 2012\ OPEN\ G…
题解 \(by\;zj\varphi\) 二分答案,考虑二分背包中的最大值是多少. 枚举 \(p\) 的值,在当前最优答案不优时,直接跳掉. 随机化一下 \(p\),这样复杂度会有保证. Code #include<bits/stdc++.h> #define ri register signed #define p(i) ++i namespace IO{ char buf[1<<21],*p1=buf,*p2=buf; #define gc() p1==p2&&…
题解 \(by\;zj\varphi\) 原题问的就是对于一个序列,其中有的数之间有大小关系限制,问有多少种方案. 设 \(dp_{i,j}\) 表示在前 \(i\) 个数中,第 \(i\) 个的排名为 \(j\)的方案数 方程: \[f_{i,j}=\begin{cases} \sum\limits_{k=j}^{i-1} f_{i-1,k},(p_{i-1}<p_i)\\ \sum\limits_{k=1}^{j-1} f_{i-1,k},(p_{i-1}>p_i)\\ \end{case…
题解 \(by\;zj\varphi\) 如何判断一个集合可以被拆成两个相等的部分? 枚举两个集合,如果它们的和相等,那么他们的并集就是合法的,复杂度 \(\mathcal O\rm(3^n)\) \(\rm\;meet\;in\;the\;middle\) 优化,将序列分成两段,枚举第一段的每个数加到哪个集合,用 \(\rm hash\) 表存一下. 在后半部分扫完后,再扫前面的每个集合,得到答案. 复杂度 \(\mathcal O\rm (3^\frac{n}{2}+6^\frac{n}{2…
原文链接www.cnblogs.com/zhouzhendong/p/ZJOI2019Day2 游记 4-23 乘车. 报到. 自闭. 晚上没睡好. 4-24 上午张哲宇讲课. 幕后点人上去讲题. 然而几乎没有人用真名自我介绍. 计算鸭好评. 中午犟骨头饭好评. 下午神仙题选讲. 自闭了. 晚上试机,rush了一波FFT发现开完O2之后,2e6的FFT 3次要跑 5 秒,cly常数小,只要3秒.好像比填海机子慢. 虽然显示屏还是正方形的,但是键盘好评. 回去重新学了一下KM. 4-25 上午杨帆…