摘要:
逆序对数=0的时候,这个数列是有序的 然后交换相邻的,看哪个比较大,逆序对数会加1或减1 Jeff用的是最优策略所以他肯定让逆序对数-1 设f[i]表示Jeff操作前,逆序对数为i,最终的期望次数 那就有$f[i]=0.5f[i-2]+0.5f[i]+2$ 以及$f[1]=1,f[0]=0$ 可以得 阅读全文
摘要:
相当于是把%k相同的位置的数分为一组,组与组之间互不干扰 然后发现一组中可以任意打乱顺序,并且一定是单调排列最好,那个值就是最大值减最小值 所以我给所有数排序以后,同一组应该选连续的一段最好 然后发现有$n\%k$组元素个数是$\frac{n}{k}+1$,剩下的$k-n\%k$组元素个数是$\fr 阅读全文
摘要:
是一个01分数规划的形式,只不过已经帮你二分好了。 把b乘过去,再减回来,找和等于0的a的最大值就行了 阅读全文
摘要:
首先马拉车一遍(或者用hash),再做个前缀和处理出f[i][j]表示以j为右端点,左端点在[i,j]的回文串个数 然后设ans[i][j]是[i,j]之间的回文串个数,那就有ans[i][j]=ans[i][j-1]+f[i][j] 阅读全文
摘要:
并查集维护每个联通块的直径和最小的最大深度,每次连得时候连的肯定是最大深度最小的那两个点 阅读全文
摘要:
m=n-1的时候,就直接贪心地dfs就可以 m=n的话,就可以枚举删掉一条边,然后照着m=n-1做 $O(n^2)$大概能过 (然而我眼瞎看不到m<=n) 阅读全文
摘要:
首先二分一下答案,就变成了找长度>=m的 不相交的路径的个数 考虑到在一个子树中,只有一个点能出这个子树去和别的点搞 所以我这个子树里尽量自我满足是不会有坏处的 而且要在自我满足数最大的条件下,剩下一个尽量大的去把他搞出去 具体来说,我们设f[x]是x的子树中的满足条件的最大路径数,g[x]是在f[ 阅读全文
摘要:
我那个新的货币系统,就是把原来的货币系统中能被其他数表示的数删掉 那我就算有多少数能被别的数表示,那肯定是要被比它小的表示 于是排个序做完全背包就好了 但是我太zz不会完全背包,然后写了个bitset乱搞还开了250000,T到亲妈都不认识 其实完全背包就是把背包的从后往前更新变成了从前往后更新 阅读全文
摘要:
和NOIp2013 积木大赛一模一样 我在堆一格的时候,我把它尽量地往右去延伸 于是如果对于一个i,a[i-1]<a[i],那i在之前一定只堆过a[i-1]那么多,所以要再堆a[i]-a[i-1] 如果a[i-1]>=a[i],那i肯定都堆过了 阅读全文