HUD 1215七夕节(get一种解决超时的新思想)
来源:互联网 发布:移动网络维护人员体检 编辑:程序博客网 时间:2024/06/10 04:31
做完这道题后才发现自己是真的菜, 这个题是真的皮。这道题还是大一上学期的时候打杭电单身节比赛的时候遇见的,因为一直找不到合适的、能够使其不超时的方法,而且也忘记了这道题,才一直保留了下来。今天在做这道题的时候,第一眼用打表法,但是因为这道题的数字量级为五十万级,所以一般的找因子的方法会超时,所以我还是无法解决这道题超时的问题。直到我看了他们的博客我才找到解决超时的方法。
内心对我这种行为真的很不屑,但是确实胸中没有解决这种情况的墨水,所以还是继续积累吧!
方法就是:先用个变量 i 循环遍历从1到maxnum,在这个循环内再另开一个循环,以 i 为基础遍历maxnum内的所有 i 的倍数,使对应的数加 i 。
我现在从中体会到,其精髓是:由因子找倍数
1、单位变化的数字为 i ,不需要以一为单位一个一个的找了,这就节省了相当大的一段时间。
2、原始方法,一个一个的找因子,会使具有相同因子的数字在找时步骤重复,且多了很多判断。
七夕节那天,月老来到数字王国,他在城门上贴了一张告示,并且和数字王国的人们说:"你们想知道你们的另一半是谁吗?那就按照告示上的方法去找吧!"
人们纷纷来到告示前,都想知道谁才是自己的另一半.告示如下:
数字N的因子就是所有比N小又能被N整除的所有正整数,如12的因子有1,2,3,4,6.
你想知道你的另一半吗?
人们纷纷来到告示前,都想知道谁才是自己的另一半.告示如下:
数字N的因子就是所有比N小又能被N整除的所有正整数,如12的因子有1,2,3,4,6.
你想知道你的另一半吗?
321020
1822
时间成本大的原始找因子代码:
#include <iostream>#include <algorithm>#include <cstdio>#include <map>#include <cstring>using namespace std;const int maxn = 20000;int data[maxn + 5];int found(int num){ int sum = 0; for(int i = 1; i < num; i++) { if(num % i == 0) { sum += i; } } return sum;}void txt(){ for(int i = 1; i <= maxn; i++) { data[i] = found(i); }}int main(){ txt(); int t; scanf("%d", &t); while(t--) { int num; scanf("%d", &num); printf("%d\n", data[num]); } return 0;}新的因子找倍数法:
#include <iostream>#include <algorithm>#include <cstdio>#include <map>#include <cstring>using namespace std;const int maxn = 20000;int data[maxn + 5];int found(int num){ int sum = 0; for(int i = 1; i < num; i++) { if(num % i == 0) { sum += i; } } return sum;}void txt(){ for(int i = 1; i <= maxn; i++) { data[i] = found(i); }}int main(){ txt(); int t; scanf("%d", &t); while(t--) { int num; scanf("%d", &num); printf("%d\n", data[num]); } return 0;}
阅读全文
0 0
- HUD 1215七夕节(get一种解决超时的新思想)
- HDU-1215-七夕节(Java+素数打表+超时坑人)
- (转载)迭代开发的新思想
- 新思想
- nyoj 找球号(二) 138 (Hash表)机智 一种新思想
- Android http get请求里中文是乱码的解决(其中一种情况)
- 转udp 超时设置(select函数的一种用法)
- 迭代开发的新思想
- 互联网的一些新形势,新思想
- 软件项目开发的新思想
- 【myweb2.0】框架的新思想
- 七夕节的习俗
- HDU 1215 七夕节(筛选法)
- 七夕节(杭电1215)
- HDU 1215 七夕节(因子和)
- hdu 1215 七夕节(因子和)
- HDU 1215 七夕节 (水题)
- HDU 1215 七夕节(筛选法)
- WPF利用HelixToolKit后台导入3D模型
- Spark2.0.X源码深度剖析之 TaskScheduler之Task划分 —— 国内全网最新最全最具深度!!!
- datatables分页配置
- Markdown示例
- Android Wi-Fi 设置country code的调用流程(博通芯片为base)
- HUD 1215七夕节(get一种解决超时的新思想)
- 小白带你学安卓——工程目录结构及日志
- 《趣学算法》前言
- placeholder支持ie
- SDL编译安装问题
- 基于ubuntu对于CIFRA-10进行训练学习
- 单词长度
- HTTP常见错误代码
- selenium定位页面元素