摘要:
题意: 给出一个n ; 有两个操作: 1,mul A , n=n*A ; 2,sqrt() , n=sqrt(n) 开更出来必须是整数 ; 求出经过这些操作后得出的最小 n , 和最小操作数; 分析:首先得明确知道分解到怎样的时候才是 得出最小的n , 首先进过手画就可以明明,经过分解n 可以发现它 阅读全文
摘要:
题意: 给你一棵n个节点的树,每个点有一个权值,初始全为0,m次操作,每次三个数(v, d, x)表示只考虑以v为根的子树,将所有与v点距离小于等于d的点权值全部加上x,求所有操作完毕后,所有节点的值 首先要明确两件事情性质1.每个人的操作只会影响到他的子孙(包括自己) 性质1.每个人的操作只会影响 阅读全文
摘要:
题目大意: 一个图N个点M条双向边。设各点到点1的距离为di,保证满足条件删除M-K条边之后使得到点1的距离仍为di的点数量最多的情况下,输出剩余的K条边的编号(按输入顺序)。 一道大水题 , 应为网络原因没有看到题目, 赛后发现就是跑一遍DJ最短路就好了 , 在最短路里面拿出k条边, 大水题呀。。 阅读全文
摘要:
题目:找出区间[A, B]内所有数字的奇数字位出现次数为偶数,偶数字位出现次数为计数的数的个数。 分析:这道题的状态同样不好取,因为要求每一个奇数的个数都要为偶数,每一个偶数的位数都要为奇数,又因为只有10个数(0~9),又因为没个数只有3种状态,分别是没有(0),奇数个(1),偶数个(2),这样我 阅读全文
摘要:
题目:求1~n的范围里含有13且能被13整除的数字的个数。 分析: dfs(len, num, mod, flag) mod记录数字对13取余后的值 len表示当前位数 num==0 不含13且上一位不为1 pre==1 不含13且上一位为1 pre==2 含13 flag表示是否可以任意取值(判断 阅读全文
摘要:
题目:区间的数里面有49的个数 分析: dp[pos][0]:长度为pos的数中,不包含49的,前一位不为4的有多少个;dp[pos][1]:长度为pos的数中,不包含49的,前一位为4的有多少个;dp[pos][2]:长度为pos的数中,包含49的有多少个; 一开始我是打算先算不满足的,在算满足的 阅读全文
摘要:
题目:区间的有多少个数字满足数字的每一位上的数组成的最长递增子序列为K 思路:用dp[i][state][j]表示到第i位状态为state,最长上升序列的长度为k的方案数。那么只要模拟nlogn写法的最长上升子序列的求法就行了。这里这里记忆化的时候一定要写成dp[pos][stata][k],表示前 阅读全文
摘要:
题意:数字满足的条件是该数字可以被它的每一位非零位整除。 分析:大概的思路我是可以想到的 , 但没有想到原来可以这样极限的化简 , 在数位dp 的道路上还很长呀 ; 我们都知道数位dp 的套路 , 核心的部分就是找到判断这个数的满足条件的方法 , 如果找到了那这个问题就迎刃而解了吧 ; 这个题的条件 阅读全文
摘要:
题意:求区间[l,r]内所有与7无关的数的平方和(取模)定义与7无关的数: 1.数字的数位上不能有7 2.数字的数位和不能是7的倍数 3.数字本身不能是7的倍数分析:状态的保存:1.数位上不能有7: 只需枚举数位的数字的时候跳过7就好 if (i == 7) continue;2.数位和不能是7的倍 阅读全文
摘要:
平衡数的定义是指,以某位作为支点,此位的左面(数字 * 距离)之和 与右边相等,距离是指某位到支点的距离; 题意:求区间内满足平衡数的数量 ; 分析:很好这又是常见的数位dp , 不过不同的是我们这次需要枚举是哪个位置是平衡点 , 一开始我是想说搜索到最后以为 ,然后得到这个数的位数 ,在判断平衡位 阅读全文