题目链接:E. Divisors

题意:

  给出一个X,f(X)是X所有约数的数列(例6:1 2 3 6),给出一个k,k是递归的次数(例:k=2 : f(f(X)) ; X=4,k=2: 1 1 2 1 2 4 ), X (1 ≤ X ≤ 10^12) and k (0 ≤ k ≤ 10^18)。现在给出X与k让你求这个序列,序列长度如果超过1e5就只存1e5个数。

题解:

  这个题的话除了DFS没有想到特别好的方法,但是问题是强行DFS时间会超@。@。(DFS思路:处理出dfs时数的所有约数(n^1/2)最大是1e6的复杂度。深度最大是1e5:深度大于1e5其实就可以特判:如果N是1输出1,不然就输出1e5个1)。但是这样我们发现每次dfs都有处理约数复杂度太大,我们可以用map储存vector的方式。如果这个数以前已经被处理过就直接用,没处理过就处理后放到vector中再丢到map里面。(一定要用vector,在dfs中用静态数组好像很容易爆空间@。@)

 #include<bits/stdc++.h>
using namespace std;
const int MAX_N = 3e5+;
vector<long long> vec;
long long out[MAX_N];
int num = ;
long long N,M,T;
map< long long , vector<long long> > mp;
void dfs(long long n,int pos)
{
if(num>=1e5) return;
vector <long long> vec;
if(mp.count(n)) vec = mp[n];
else
{
// vector 初始化
for(long long i=;i*i<=n;i++)
{
if(n%i==)
{
vec.push_back(i);
if(i != n/i) vec.push_back(n/i);
}
}
sort(vec.begin(),vec.end());
mp.insert(make_pair(n,vec));
}
if(pos == M)
{
for(int i=;i<vec.size();i++)
{
out[num++] = vec[i];
if(num>=1e5) break;
}
return;
}
for(int i=;i<vec.size();i++)
{
if(vec[i] == ) out[num++] = ;
else dfs(vec[i],pos+);
}
}
int main()
{
while(cin>>N>>M)
{
mp.clear();
if(M==)
{
printf("%lld\n",N);
continue;
}
num = ; if(M>=1e5)
{
if(N==)
printf("%lld\n",N);
else
for(int i=;i<1e5;i++) printf("1 ");
continue;
} dfs(N,);
for(int i=;i<num;i++)
{
printf("%lld ",out[i]);
}
printf("\n");
}
return ;
}

Codeforces 448 E. Divisors (DFS,储存结构)的更多相关文章

  1. MySQL数据库储存引擎Inoodb一--记录储存结构

    在开文我先说明一下,接下来的数据库知识文章都是在微信公众号“我们都是小青蛙”学习然后在通过自己的理解进行书写的.有兴趣的朋友可以去关注这个微信公众号.话不多说,我们在日常使用数据库进行数据持 久化的时 ...

  2. [Codeforces 1214D]Treasure Island(dfs)

    [Codeforces 1214D]Treasure Island(dfs) 题面 给出一个n*m的字符矩阵,'.'表示能通过,'#'表示不能通过.每步可以往下或往右走.问至少把多少个'.'变成'#' ...

  3. [Codeforces 163D]Large Refrigerator (DFS+剪枝)

    [Codeforces 163D]Large Refrigerator (DFS+剪枝) 题面 已知一个长方体的体积为V,三边长a,b,c均为正整数,求长方体的最小表面积S V以质因数分解的形式给出 ...

  4. 2019-02-03 线性表的顺序储存结构C语言实现

    #include<cstdio> #define MAXSIZE 20 typedef int Elemtype; //Elemtype类型根据实际情况而定,这里取int typedef ...

  5. CodeForces 448

    A:Rewards: 题目链接:http://codeforces.com/problemset/problem/448/A 题意:Bizon有a1个一等奖奖杯,a2个二等奖奖杯,a3个三等奖奖杯,b ...

  6. Codeforces Gym 100463D Evil DFS

    Evil Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100463/attachments Descr ...

  7. Educational Codeforces Round 25 Five-In-a-Row(DFS)

    题目网址:http://codeforces.com/contest/825/problem/B 题目:   Alice and Bob play 5-in-a-row game. They have ...

  8. Codeforces 839C Journey【DFS】

    C. Journey time limit per test:2 seconds memory limit per test:256 megabytes input:standard input ou ...

  9. Cut 'em all! CodeForces - 982C(贪心dfs)

    K - Cut 'em all! CodeForces - 982C 给一棵树 求最多能切几条边使剩下的子树都有偶数个节点 如果n是奇数 那么奇数=偶数+奇数 不管怎么切 都会有奇数 直接打印-1 贪 ...

随机推荐

  1. 微信小程序入门

    自己看了一下微信小程序 其实  还是很简单的    官方有现成的api 跟 组件给你用   我的感觉就像是一个  前端框架  类似于  ionic 这种   感觉比ionic还要简单 里面的wxml  ...

  2. python3基础(一)

    1. python文件主程序入口文件一般来要申明python路径,编码信息,作者说明等: #!/usr/bin/env python # _*_ coding: utf-8 _*_ # Author: ...

  3. 80、Flask用法简析

    本篇导航: 基本使用 模板.请求和响应 Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,对于Werkzeug本质是Socket服务端,其用于 ...

  4. Go使用flag包开发命令行工具

    flag包是Go语言标准库提供用来解析命令行参数的包,使得开发命令行工具更为简单 常用方法 1.flag.Usage 输出使用方法,如linux下ls -h的帮助输出 2.flag.Type(参数名, ...

  5. SQLite事务与自增深度分析

    SQLite什么都好,就怕“database is locked”这些年来想尽办法去规避它. 测试代码: static void Test2() { XCode.Setting.Current.Tra ...

  6. react 开发知识准备

    react react使用教程 babel babel 可用于ES6转换为ES5,jsx转换为原生js. ES6 ES6 语法 webpack webpack打包工具,它把不同的.相互依赖的静态资源都 ...

  7. Django--权限组件

    创建组件 需求分析: 创建独立app, rbac ##注意: app创建后需要注册到setting.py中 INSTALLED_APPS = [ 'django.contrib.admin', 'dj ...

  8. Js默认参数(多参数情况)

    js function example(settings) { var defaultSetting = { name: '小红', age: '30', sex: '女', phone: '1008 ...

  9. java实现 比较两个文本相似度-- java 中文版 simHash 实现 ,

    比较两个文本的相似度 这里采用 simHash 算法 ; 分词是 基于 http://hanlp.linrunsoft.com/ 的开源 中文分词包 来实现分词 ; 实现效果图: 直接上源码: htt ...

  10. motan负载均衡/zookeeper集群/zookeeper负载均衡的关系

    motan/dubbo支持负载均衡.zookeeper有集群的概念.zookeeper似乎也能做负载均衡,这3者是什么关系呢? 3个概念:motan/dubbo负载均衡.zookeeper集群.zoo ...