首页 > 奇♂妙拆分
头像 Boops
发表于 2020-05-19 22:38:56
写在前面 本来我还是在开开心心的写题,这个题找到并证明贪心还是花了不少时间的,AC后看了下别人的代码,和我第一次的思路相似,代码就差了一点点,那一瞬间,我突然明白,原来这就是被打击的感觉。没心情写题了,看了好多题解都没有比较好的解释,我就打算自己写一下题解,顺便给出这样贪心的理由。 正文 看到题目, 展开全文
头像 平凡的小白
发表于 2020-05-29 10:46:47
题意:一个自然数最多可以分解成多少个不同的因子。 思路: 枚举题,主要在暴力的基础上减去不必要的枚举。1.因为n(1除外)一定存在一个小于的因子,所以枚举到因子枚举到就可以了。2.每找到一个因子就从n分离出来:3.当时,有两个一样的未出现的因子,那么只能把这两个因子合并为算作一个因子。4.当时, 展开全文
头像 Bernard5
发表于 2020-05-17 12:54:04
贪心,每个数字只用一次,从前往后扫一遍即可。 想复杂了,最简单的就是最好的。 #include <bits/stdc++.h> using namespace std; typedef long long ll; int main() { ll T, a; cin > 展开全文
头像 sunrise__sunrise
发表于 2020-05-21 19:12:41
解题思路 看到江大佬一开始的写法,直接都A了好像……大素数就可以被卡掉 那么很多是没必要的枚举,比如之后的位置。任何两个因子对,除1以外,都存在比根号小的因子。 所以代码就可以写出来了,比较简单的枚举。 #include <bits/stdc++.h> #pragma GCC optim 展开全文
头像 19_hanhan
发表于 2020-05-20 20:08:58
题目 题目描述: 在遥远的米♂奇♂妙♂妙♂屋里住着一群自然数,他们没事就喜欢拆♂开自己来探♂究。 现在他们想知道自己最多能被拆分成多少个不同的自然数,使得这些自然数相乘的值等于被拆分的数。 输入描述: 第1行输入一个整数T,代表有T组数据。 第2-T+1行,每行输入一个整 展开全文
头像 矫健的母单花国企上岸了
发表于 2022-01-28 12:34:49
这道题一开始我就想着把除数一个一个枚举出来,这样就不会重复了,让后我就发现了一个规律,当商小于除数时,这时拆分出来的自然数就会出现重复。 / / / 举个例子 256 / 1 = 256 256 / 2 = 128 128 / 3 = (不是整数,跳过) 128 / 4 = 32 32 / 5 = 展开全文
头像 theamo
发表于 2020-05-15 23:10:55
#include<iostream> #include<vector> using namespace std; int main(){ int t; cin>>t; while(t--){ int n; cin>>n; 展开全文
头像 ziuch
发表于 2020-08-22 20:28:56
题目描述 在遥远的米♂奇♂妙♂妙♂屋里住着一群自然数,他们没事就喜欢拆♂开自己来探♂究。现在他们想知道自己最多能被拆分成多少个不同的自然数,使得这些自然数相乘的值等于被拆分的数。 输入描述: 第1行输入一个整数T,代表有T组数据。 展开全文
头像 輝夜ちゃん
发表于 2020-05-16 09:56:11
大家的思路应该非常清晰,就是枚举 我开始想从1一直到根号n,枚举下来tip:这里提醒大家一下吧,思路清晰了再开始写,这种题本来想清楚了挺简单,但边写边想可能翻车(比如我)最后写了个函数,开始像搜素一样搜 优秀的思路:动态的更新处理的对象,虽然我这样搜素也可,但是这个一个循环就可以解决了,我们还是从一 展开全文
头像 微澜尛雨
发表于 2021-11-25 19:58:56
题目考点:因数、枚举 题目大意:将数字拆成因数相乘的形式,问有多少个不同因子。 分析:暴力枚举即可(以为会被大素数卡掉实际上数据不大) 代码: #include<iostream> #include<cstring> #include<algorithm> us 展开全文