「CTSC 2011」排列】的更多相关文章

「CTSC 2011」排列 要求不存在公差为 A 或者公比为 B 的子列,那么实际上可以把该问题转化为求一个图的最优拓朴序. 任意差为 A 或者比为 B 的两个数连一条边. 求一个合法序列的答案可以用树状数组. 接下来如果直接用优先队列计算最小拓朴序就可以得到32分的好成绩. 如上方法复杂度为\(o(nlog(n))\),远远小于给定时限. 尝试引入随机算法. 每个数都定义一个优先级\(rank\). 用爬山求出局部最优解: ​ 每次先随机生成\(rank\)数组,然后随机一个点,试图将该点$r…
[「CTSC 2011」幸福路径 蚂蚁是可以无限走下去的,但是题目对于精度是有限定的,只要满足精度就行了. \({(1-1e-6)}^{2^{25}}=2.6e-15\) 考虑使用倍增的思想. 定义\(dp[x][y][t]\)为从\(x\)点出发,走\(2^t\)步,到达\(y\)所得到的最大权值. dp转移:\(dp[x][y][t]=max(dp[x][k][t-1]+p^{2^{t-1}} dp[k][y][t-1])\)(\(k \subset [1,n]\)). 一次转移复杂度为\(…
#2509. 「AHOI / HNOI2018」排列   题目描述 给定 nnn 个整数 a1,a2,…,an(0≤ai≤n),以及 nnn 个整数 w1,w2,…,wn.称 a1,a2,…,an 的一个排列 ap[1],ap[2],…,ap[n] 为 a1,a2,…,an 的一个合法排列,当且仅当该排列满足:对于任意的 kkk 和任意的 jjj,如果 j≤kj \le kj≤k,那么 ap[j]a_{p[j]}a​p[j]​​ 不等于 p[k]p[k]p[k].(换句话说就是:对于任意的 kk…
「状压DP」「暴力搜索」排列 题目描述: 题目描述 给一个数字串 s 和正整数 d, 统计 sss 有多少种不同的排列能被 d 整除(可以有前导 0).例如 123434 有 90 种排列能被 2 整除,其中末位为 2 的有 30 种,末位为 4 的有 60 种. 输入格式 输入第一行是一个整数 TTT,表示测试数据的个数,以下每行一组 s 和 d,中间用空格隔开.s 保证只包含数字 0,1,2,3,4,5,6,7,8,9 输出格式 每个数据仅一行,表示能被 d 整除的排列的个数. 输入输出样例…
Casper is designing an electronic circuit on a \(N \times M\) rectangular grid plate. There are \(N \times M\) square tiles that are aligned to the grid on the plate. Two (out of four) opposite corners of each tile are connected by a wire. A power so…
\(\mathcal{Description}\)   Link.   \(n\) 种果汁,第 \(i\) 种美味度为 \(d_i\),每升价格 \(p_i\),一共 \(l_i\) 升.\(m\) 组询问,给定花费上限 \(g\) 和果汁需求量 \(L\),求混合多种果汁以满足要求时,所用果汁最小美味度的最大值.   \(n,m,p_i\le10^5\). \(\mathcal{Solution}\)   最小值最大,显然二分.   需要 check:能否用美味度不小于 \(mid\) 的果汁…
题意 题目链接 Sol 神仙题Orz 首先不难看出如果我们从\(a_i\)向\(i\)连一条边,我们会得到以\(0\)为根的树(因为每个点一定都有一个入度,出现环说明无解),同时在进行排列的时候需要保证父亲节点一定在孩子节点之前出现 接下来考虑直接贪心.对于某些权值很小的点,我们需要让其尽早出现,同时又要满足选择的条件. 那么我们可以从小的点开始,依次向他的父亲合并,并删除该点(也就是如果父亲一但被删除,那么这个点立马被删除) 下面的内容抄袭摘抄自这里 然后直接用set搞一搞 复杂度:\(O(n…
题解 虽然要求一个dfs序,但是不是从根开始贪心 从最小的点开始贪心,最小的点显然是父亲选了之后马上就选它 那么我们每次把最小的点和父亲合并,两个联通块之间也是如此 对于两个联通块,他们合并的顺序应该是平均值较小的更靠前 因为有两个联通块和为\(S_i\)和\(S_j\),大小为\(B_i\)和\(B_j\) 如果\(S_i * B_j < S_j * B_i\)即\(i\)应该放在\(j\)前面,我们可以得到 \(\frac{S_i}{B_i} = \frac{S_j}{B_j}\) 代码 #…
题目链接 戳我 \(Solution\) 其实我们可以发现这题等价于让你求: 用\(1\)~\(n\)的数组成一个完全二叉树使之满足小根堆性质的方案数 于是我们可以考虑\(dp\) 假设我们现在在\(i\)点,\(i\)的子节点个数为\(s[i]\)(包括自己) 则: \(dp[i]=C(s[i]-1,s[i*2])*f[i*2]*f[i*2+1]\) \(ps:\) 因为是二叉树所以\(i*2\)和\(i*2+1\)为\(i\)的两个儿子 这个式子很容易看懂吧. 在子节点中选一些填入左儿子,一…
题意 记\(s_R\)为\(s\)翻转后的串,求一个串最长的形如\(ss_Rss_R\)的子串长度 题解 这有一个复杂度明显\(O(n)\)的做法,思路来自网上某篇博客 一个双倍回文串肯定当且仅当本身是一个回文串且左右两边都是回文串 所以对于右边的回文串,到它中心\(i\)的时候,\(manacher\)记录的\(maxr\)一定\(>i\) 如果满足这个条件,那就判断\(i\).\(i\)关于\(mid\)的对称串是否有交点,有交点就说明这是双倍回文串:还要注意不能以字母为中心,因为回文串必须…