Work in Progress
找到 854 个题目
对每个数取模200,统计每个余数的出现次数。对于相同余数的数,任意两个的差都是200的倍数,所以答案是所有余数组合数C(count,2)的和。
枚举所有可能的子序列组合,计算每个子序列元素和模200的余数。利用鸽笼原理,当子序列数量足够多时,必然存在两个不同子序列具有相同的模200余数。
枚举所有可能的四位数字组合(0000-9999),对每个组合统计各数字出现次数,检查是否满足记忆条件:'o'表示必须出现,'x'表示不能出现,'?'表示可出现可不出现。
使用动态规划求解博弈问题。从终点向起点逆推,计算每个位置的最优得分差。当前玩家会选择对自己最有利的移动方向,最终比较起点的得分差确定胜负。
用DFS求出每个点到根的XOR距离,两点间距离为它们到根距离的XOR。按位统计贡献:第i位为1的点数乘以为0的点数乘以2^i
统计每个A[i]的出现次数,然后对每个j计算B[C[j]]的值,累加对应A值的出现次数即可得到满足A[i]=B[C[j]]的配对总数。
贪心构造字典序第K小的字符串。每次选择当前位置的字符时,计算选择'a'能产生的组合数,如果K大于该数则选择'b'并更新K,否则选择'a'。
对每个节点维护其子树中所有节点深度的信息,使用线段树合并优化。DFS遍历树,对每个节点建立权值线段树记录子树内各深度的节点数,自底向上合并子节点信息,查询时在对应节点的线段树中查询指定深度的节点数。
按村庄编号排序朋友位置,模拟太郎的移动过程。每次移动到下一个有朋友的村庄,收集所有朋友给的钱,然后继续前进直到钱用完。
二分答案,用二维前缀和快速计算每个K×K区域内小于mid的元素个数,判断是否存在区域的中位数≤mid
使用set维护白棋可达位置集合。按行遍历黑棋,根据三种移动规则更新可达位置:向前需要该位置无黑棋,斜向移动需要目标位置有黑棋。
对每个起点城市执行BFS,计算从该城市能到达的所有城市数量。将所有起点的可达城市数量相加即为答案。本质是计算有向图中所有可达的(起点,终点)对数。