一道算法题:等价类思想在计数中的应用
已知x是1到n之间的数字,y是1到m之间的数字,两者都是闭区间,问有多少对(x,y)满足x和y之积为平方数。
3和12、48是等价的,因为12=3乘以2的平方,48=3乘以4的平方。
只需要找到每个等价类包含多少个数字,那么相同等价类之积必然是平方数。
那么又有问题了:如果是立方数呢?那就需要改成二维数组,3的等价类有两种:一种是2次幂等价类,一种是一次幂等价类。
import java.util.Scanner;public class Main {
int[] get(int n) {int[] a = new int[n + 1];for (int i = 1; i <= n; i++) {if (a[i] == -1) continue;int s = 0;for (int j = 1; j * j * i <= n; j++) {if (a[j * j * i] != -1) {s++;a[j * j * i] = -1;}}a[i] = s;}return a;
}int solve(int n, int m) {if (n < m) {int temp = m;m = n;n = temp;}int[] a = get(n);int[] b = get(m);int s = 0;for (int i = 0; i <= m; i++) {if (a[i] != -1) {s += a[i] * b[i];}}return s;
}Main() {Scanner cin = new Scanner(System.in);int n = cin.nextInt(), m = cin.nextInt();int s = solve(n, m);System.out.println(s);
}public static void main(String[] args) {new Main();
}
}
转载于:https://www.cnblogs.com/weiyinfu/p/9488931.html
一道算法题:等价类思想在计数中的应用相关推荐
- 截止目前为止,我遇到的最难的一道算法题:计算相邻两个数的最大差值
hello,今天给大家带来一道算法题.这道算法题,是我目前为止,见过最难的一道题.那么到底是怎样的一道算法题呢?如下: 题目:给定一个数组, 求如果排序之后, 相邻两数的最大差值. 要求时间复杂度O( ...
- leetcode贪心算法题集锦(持续更新中)
leetcode贪心算法题集锦 leetcode贪心算法题集锦(持续更新中).python 和C++编写. 文章目录 leetcode贪心算法题集锦 一.贪心算法 1.盛最多水的容器 2.买股票的最佳 ...
- 一道算法题跟大家分享
无意中看到一道算法题,拿出我的解法与大家分享. 题目:输出1,2,3,4四个数字能组成的互不相同且无重复的三位数并统计满足条件的三位数个数 大家先想想,再看答案吧. View Code 1 /// & ...
- 每天一道算法题系列十二之整数转罗马数字
每天一道算法题系列: 来源:力扣(LeetCode) 本题链接:https://leetcode-cn.com/problems/integer-to-roman/ 来源是力扣,大家喜欢可以去力扣中文 ...
- 一天一道算法题--5.30---递归
感谢微信平台: 一天一道算法题 --------每天多一点进步--------- 今天 休假 这题 也很水 能发现 规律就好 明天 再也不能这样了 forgive me ---------- 转载于 ...
- 一天一道算法题--6.15--卡特兰数
感谢微信平台---一天一道算法题---每天多一点进步- problem: 12个高矮不同的人 排成两排 每排必须是从矮到高排列 而且第二行比对应的第一排的人高 问排列方式有多少种? analyse: ...
- 每天一道算法题系列十七之电话号码的字母组合
每天一道算法题系列: 来源:力扣(LeetCode) 本题链接:https://leetcode-cn.com/problems/letter-combinations-of-a-phone-numb ...
- 搜狗2020秋招笔试的一道算法题
搜狗2020秋招的一道算法题 有A,B,C三种样品,凑齐三个样品各一个就可以领取一个奖品.任意两个样品可兑换另一种样品,如AA可兑换一个B或一个C,AB可兑换一个C.输入ABC,问最多可以领取多少奖品 ...
- java统计一个字符串中每个字符出现的次数_剑指offer算法题054:字符流中第一个不重复的字符...
推荐阅读:宇宙条的工作总结:一年前还在面试找工作,一年后在面试找工作的学弟学妹们:第一次当面试官的经历分享小编在求职找找工作期间剑指offer上的算法题刷了很多遍,并且每道题小编当时都总结了一种最适合 ...
最新文章
- 哪位有方法把 dd/mm/yyyy的字符串 格式化成yyyy-mm-dd
- Elasticsearch的功能、使用场景以及特点
- Android屏幕尺寸适配注意事项
- sar图像去噪matlab,一种基于总曲率的SAR图像变分去噪方法与流程
- PyTorch 1.9发布!移动端疯狂更新
- Kubernetes--玩转Pod滚动更新123
- gels imagej 图片处理_如何用ImageJ进行粒度分析
- re管理器java格式_正则表达式工具类——ReUtil
- 过去一年顶级借贷服务商BTC总托管资产平均增长超700%
- socket上传nsdictionary的json数据异常
- 2.SRE:Google运维解密 --- Google 生产环境:SRE 视角
- linux镜像下载和vmware虚拟主机部署
- synchronized解析
- matlab导出高分辨率图片,Matlab导出高DPI图像——生成高分辨率.eps .tiff .jpg
- 量化金融笔记1-股票量化基础
- 我的团长我的团第四十三集
- 香港传媒高层访团莅临深之蓝参观访问
- 【容斥原理】幸运数字
- PHP+MySQL实现简单的登录注册
- 切入点和切入点表达式(AOP面向切面编程)