目录6283.正整数和负整数的最大计数代码6285.执行K次操作后的最大分数代码6284.使字符串总不同字符的数目相等代码6283.正整数和负整数的最大计数代码直接遍历统计即可classSolution{publicintmaximumCount(int[]nums){inta=0,b=0;for(inti=0;i0)a++;elseif(nums[i]6285.执行K次操作后的最大分数代码用最大堆即可ceil是上取整,操作数和返回值都是double,需要强转,可能会出现浮点错误,所以使用整数运算规避。ceil(a/b)=(a+b-1)/bclassSolution{publiclongmax
算法分析棋盘型状态压缩dp这类dp有一个通用的状态表示法:f[i][j][k],表示前i行(放了j个棋子后)的状态表示为k。由于本题无棋子要求,因此可以省去中间一维,即: 用f[i][j]表示前i行土地的状态为j。首先由于玉米地有不肥沃的地方不能种植,因此需要通过二进制表示出来可以种植和不可以种植的地方,我们是将整行用一个二进制数表示的,可种为0,不可种为1,在输入的时候即可判断: g[i]+=(!x由于是棋盘型,因此根据我们的经验显而易见可以知道需要分别分析棋盘的列和行:根据题意相邻的两格内不能同时种玉米可知: (以x为当前格)则 (x&x>>1)=0; 这很容易理解,比如x的二进制
算法分析棋盘型状态压缩dp这类dp有一个通用的状态表示法:f[i][j][k],表示前i行(放了j个棋子后)的状态表示为k。由于本题无棋子要求,因此可以省去中间一维,即: 用f[i][j]表示前i行土地的状态为j。首先由于玉米地有不肥沃的地方不能种植,因此需要通过二进制表示出来可以种植和不可以种植的地方,我们是将整行用一个二进制数表示的,可种为0,不可种为1,在输入的时候即可判断: g[i]+=(!x由于是棋盘型,因此根据我们的经验显而易见可以知道需要分别分析棋盘的列和行:根据题意相邻的两格内不能同时种玉米可知: (以x为当前格)则 (x&x>>1)=0; 这很容易理解,比如x的二进制