摘要:
学习博客:https://rpdreamer.blog.luogu.org/bei-bao-wen-ti f[mo+k*w[i]]=q[head]+k*c[i]; 这一步没有搞懂啊,说好的最后应该加上 a*c[i] 的呢 洛谷P1776 宝物筛选 阅读全文
摘要:
我终于会这个dp了。。。 0表示当前行向下覆盖,1表示被当前行横着覆盖或者被上一行覆盖 状压,判断合法状态 没了 阅读全文
摘要:
dp[i][j][k]前i个物品,选了j件,重量为k的最大价值 TLE 考虑消掉一维状态 由于第一个物品重量为0,所以可以先选出n+m个第一个物品,然后将其他物品的价值都减去第一个物品的价值 相当于将后面的物品分隔成了一个重量为0,价值为第一个物品的价值,和一个重量为其本身,价值为剩余价值的物品 这 阅读全文
摘要:
吃豆豆 阅读全文
摘要:
题目链接: https://www.codechef.com/problems/LEMOVIE 对于这种类似排列,并且有大小关系的贡献,一般要按从大到小或从小到大插入进行讨论 一组数有贡献当且仅当至少一个数被插到了最前面,那么就分情况进行讨论即可 就是插板法,把y个数插到x个数当中,把x个数之间的空 阅读全文
摘要:
两种方法,分别离线在线 阅读全文
摘要:
题目链接: https://www.codechef.com/problems/ANUCBC 按模数进行背包 取模不要直接取,分开写,不然会T 阅读全文
摘要:
有一个长度为n的排列a,其中有一些位置被替换成了−1。你需要尝试恢 复这个排列,将−1替换回数字。 求有多少种可行的替换方法,满足得到的是一个排列,且不存在ai = i的 位置。n ≤ 2000。 对于一个排列,可以用一个n*n的方阵来表示,第i行第j列如果被标记,则代表数字 i填在了第j个位置(a 阅读全文
摘要:
题面: https://s3.amazonaws.com/codechef_shared/download/translated/LTIME10/mandarin/SHGAME.pdf 把n-1,m-1分别拆分成两段,于是相当于四堆石子的nim游戏 枚举把n分成x,n-x,把m分成y,m-y 开个桶 阅读全文
摘要:
dp 首先暴力的dp式子: f[i]=min{f[j]+num(j+1,i)} 这样是n^2的 考虑优化: 代价是一段区间不同颜色的数量, 那么如果区间的颜色数量是相同的,更新长度更长的区间一定更优 那么可以用双向链表优化一下,当一个数在之前出现过的时候,就将之前出现过的位置删除掉 其实相当于离散化 阅读全文