草庐IT

一文搞清楚安卓屏幕密度、像素密度、分辨率、安卓计量单位(dp)

一、先搞清楚几个概念:1、屏幕分辨率(px):分辨率是手机屏幕的像素点总数,一般用屏幕宽的像素点数乘以屏幕高的像素点数。分辨率越大屏幕越细腻,能够显示的细节就越多。常用的分辨率有320x240、640x480、1280x720、1280x960、1080x1920、2560x1440等,单位是像素。比如1080x1920表示屏幕宽度方向上有1080个像素,屏幕高方向上有1920个像素2、像素密度(dpi):指每英寸的屏幕中包含的像素数量3、屏幕密度:是像素密度的另一种表示形式,android以像素密度160dpi为基准对屏幕进行划分,当像素密度为160dpi时屏幕密度为1.0,像素密度为120

第十三届蓝桥杯A组:选数异或——三种解法(线段树、DP、ST表)

[蓝桥杯2022省A]选数异或题目描述给定一个长度为nnn的数列A1,A2,⋯ ,AnA_{1},A_{2},\cdots,A_{n}A1​,A2​,⋯,An​和一个非负整数xxx,给定mmm次查询,每次询问能否从某个区间[l,r][l,r][l,r]中选择两个数使得他们的异或等于xxx。输入格式输入的第一行包含三个整数n,m,xn,m,xn,m,x。第二行包含nnn个整数A1,A2,⋯ ,AnA_{1},A_{2},\cdots,A_{n}A1​,A2​,⋯,An​。接下来mmm行,每行包含两个整数li,ril_{i},r_{i}li​,ri​表示询问区间[li,ri]\left[l_{i}

第十三届蓝桥杯A组:选数异或——三种解法(线段树、DP、ST表)

[蓝桥杯2022省A]选数异或题目描述给定一个长度为nnn的数列A1,A2,⋯ ,AnA_{1},A_{2},\cdots,A_{n}A1​,A2​,⋯,An​和一个非负整数xxx,给定mmm次查询,每次询问能否从某个区间[l,r][l,r][l,r]中选择两个数使得他们的异或等于xxx。输入格式输入的第一行包含三个整数n,m,xn,m,xn,m,x。第二行包含nnn个整数A1,A2,⋯ ,AnA_{1},A_{2},\cdots,A_{n}A1​,A2​,⋯,An​。接下来mmm行,每行包含两个整数li,ril_{i},r_{i}li​,ri​表示询问区间[li,ri]\left[l_{i}

【蓝桥杯】DP和枚举(持续更新~~~)

😽PREFACE🎁欢迎各位→点赞👍+收藏⭐+评论📝📢系列专栏:蓝桥杯🔊本专栏涉及到的知识点或者题目是算法专栏的补充与应用💪种一棵树最好是十年前其次是现在DPDP就是动态规划,其类型有以下两个特征:重叠子问题:子问题是原大问题的小版本,计算步骤完全一样,计算大问题要多次重复计算小问题。最优子结构:大问题的最优解包含小问题的最优解,可通过小问题去求解大问题。0/1背包问题有N件物品和一个容量是V的背包。每件物品只能使用一次。第i件物品的体积是vi,价值是wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。输入格式第一行两个整数,N,V,用空格隔开,分别表示

【蓝桥杯】DP和枚举(持续更新~~~)

😽PREFACE🎁欢迎各位→点赞👍+收藏⭐+评论📝📢系列专栏:蓝桥杯🔊本专栏涉及到的知识点或者题目是算法专栏的补充与应用💪种一棵树最好是十年前其次是现在DPDP就是动态规划,其类型有以下两个特征:重叠子问题:子问题是原大问题的小版本,计算步骤完全一样,计算大问题要多次重复计算小问题。最优子结构:大问题的最优解包含小问题的最优解,可通过小问题去求解大问题。0/1背包问题有N件物品和一个容量是V的背包。每件物品只能使用一次。第i件物品的体积是vi,价值是wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。输入格式第一行两个整数,N,V,用空格隔开,分别表示

每日算法之把数字翻译成字符串

JZ46把数字翻译成字符串描述有一种将字母编码成数字的方式:'a'->1,'b->2',...,'z->26'。现在给一串数字,返回有多少种可能的译码结果示例1输入:"12"返回值:2说明:2种可能的译码结果(”ab”或”l”)思路思路:对于普通数组1-9,译码方式只有一种,但是对于11-19,21-26,译码方式有可选择的两种方案,因此我们使用动态规划将两种方案累计。具体做法:step1:用辅助数组dp表示前i个数的译码方法有多少种。step2:对于一个数,我们可以直接译码它,也可以将其与前面的1或者2组合起来译码:如果直接译码,则dp[i]=dp[i−1];如果组合译码,则dp[i]=dp

每日算法之把数字翻译成字符串

JZ46把数字翻译成字符串描述有一种将字母编码成数字的方式:'a'->1,'b->2',...,'z->26'。现在给一串数字,返回有多少种可能的译码结果示例1输入:"12"返回值:2说明:2种可能的译码结果(”ab”或”l”)思路思路:对于普通数组1-9,译码方式只有一种,但是对于11-19,21-26,译码方式有可选择的两种方案,因此我们使用动态规划将两种方案累计。具体做法:step1:用辅助数组dp表示前i个数的译码方法有多少种。step2:对于一个数,我们可以直接译码它,也可以将其与前面的1或者2组合起来译码:如果直接译码,则dp[i]=dp[i−1];如果组合译码,则dp[i]=dp

LeetCode刷题第八九十周

动态规划如果某一问题有很多重叠子问题,使用动态规划是最有效的解题步骤:背包问题:01背包,完全背包,多重背包01背包:统一使用一维数组来进行遍历publicstaticvoidmain(String[]args){int[]weight={1,3,4};int[]value={15,20,30};intbagWight=4;testWeightBagProblem(weight,value,bagWight);}publicstaticvoidtestWeightBagProblem(int[]weight,int[]value,intbagWeight){intwLen=weight.len

LeetCode刷题第八九十周

动态规划如果某一问题有很多重叠子问题,使用动态规划是最有效的解题步骤:背包问题:01背包,完全背包,多重背包01背包:统一使用一维数组来进行遍历publicstaticvoidmain(String[]args){int[]weight={1,3,4};int[]value={15,20,30};intbagWight=4;testWeightBagProblem(weight,value,bagWight);}publicstaticvoidtestWeightBagProblem(int[]weight,int[]value,intbagWeight){intwLen=weight.len

编程兔暑假3.5阶段集训Day6——状压(状态压缩)dp、dp优化以及图论

    今天我们先来讲一下状态压缩dp(也称状压dp)。状压dp,顾名思义,就是把状态压缩起来。比如对于8*8的棋盘,每个位置可以放一个棋子,对于在第i行第2个位置和第6个位置放了棋子,我们可能需要8维或9维数组表示。因此我们就有了把一行状态压缩成一个数字的做法。一般我们会转化为二进制,如果每个位置可以有3种状态,那我们可以采用三进制。这样只需要一个大小为2^8的一维数组我们就可以存下所有状态,这就是状态压缩。eg1•现在有n*m的方格棋盘,和无限的1*2的骨牌,问有多少种方法能用骨牌铺满棋盘。•1m) { return; } if(i==m) { ++tot; from[tot]=pr