写新题然后艹翻标程的感觉真是舒爽啊...

  这题就是个dfs。。。先预处理出sqrt(n)范围内的素数,然后dfs构造合法的数就行了。

  直接暴搜会TLE,需要剪一剪枝,不需要跑到最后一层再计算答案,边构造边更新答案,发现下一层无法出现新答案直接退出就行了

  效率大概O(答案个数)

  #6222也就是这题加强版需要高精度,出题人直接用python了= =   欺负C++高精度得手写...

  而且这种写法是过不了的QAQ,加强版就不是很会了

#include<bits/stdc++.h>
#define ull unsigned long long
using namespace std;
const int maxn=;
ull n,cnt,ans;
int p;
ull prime[maxn];
bool v[maxn];
void read(ull &k)
{
int f=;k=;char c=getchar();
while(c<''||c>'')c=='-'&&(f=-),c=getchar();
while(c<=''&&c>='')k=k*+c-'',c=getchar();
k*=f;
}
void dfs(int dep,ull sum)
{
if(dep==p)return;
if(sum*prime[dep+]*prime[dep+]<=n)dfs(dep+,sum);
ull now=prime[dep];
for(int i=;;i++)
{
now*=prime[dep];
if(sum*now>n)return;
dfs(dep+,sum*now);
cnt++;ans+=sum*now;
}
}
int main()
{
read(n);int m=(int)sqrt(n);v[]=;
for(int i=;i*i<=m;i++)
if(!v[i])for(int j=i<<;j<=m;j+=i)v[j]=;
for(int i=;i<=m;i++)if(!v[i])prime[p++]=i;
cnt=ans=;dfs(,);
printf("%llu\n%llu",cnt,ans);
return ;
}

LibreOJ #6221. 幂数 !(数论+dfs+剪枝)的更多相关文章

  1. *HDU1455 DFS剪枝

    Sticks Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Subm ...

  2. POJ 3009 DFS+剪枝

    POJ3009 DFS+剪枝 原题: Curling 2.0 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 16280 Acce ...

  3. poj 1724:ROADS(DFS + 剪枝)

    ROADS Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 10777   Accepted: 3961 Descriptio ...

  4. DFS(剪枝) POJ 1011 Sticks

    题目传送门 /* 题意:若干小木棍,是由多条相同长度的长木棍分割而成,问最小的原来长木棍的长度: DFS剪枝:剪枝搜索的好题!TLE好几次,终于剪枝完全! 剪枝主要在4和5:4 相同长度的木棍不再搜索 ...

  5. DFS+剪枝 HDOJ 5323 Solve this interesting problem

    题目传送门 /* 题意:告诉一个区间[L,R],问根节点的n是多少 DFS+剪枝:父亲节点有四种情况:[l, r + len],[l, r + len - 1],[l - len, r],[l - l ...

  6. HDU 5952 Counting Cliques 【DFS+剪枝】 (2016ACM/ICPC亚洲区沈阳站)

    Counting Cliques Time Limit: 8000/4000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) ...

  7. HDU 5937 Equation 【DFS+剪枝】 (2016年中国大学生程序设计竞赛(杭州))

    Equation Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total S ...

  8. LA 6476 Outpost Navigation (DFS+剪枝)

    题目链接 Solution DFS+剪枝 对于一个走过点k,如果有必要再走一次,那么一定是走过k后在k点的最大弹药数增加了.否则一定没有必要再走. 记录经过每个点的最大弹药数,对dfs进行剪枝. #i ...

  9. poj 1011 Sticks (DFS+剪枝)

    Sticks Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 127771   Accepted: 29926 Descrip ...

随机推荐

  1. uvaoj 1081510815 - Andy's First Dictionary(set应用)

    https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=835&page= ...

  2. TPO-13 C1 Understand the assignment in psychology course

    TPO-13 C1 Understand the assignment in psychology course 第 1 段 1.listen to a conversation between a ...

  3. MySql优化浅析

    优化点:合理的使用索引,可以大幅度提升sql查询效率,特别查询的表的数据量大的时候,效果明显.一.引言 公司的产品XX出行上线正式运营,随着数据量的变大,司机2000+,日订单1万+,注册乘客26W+ ...

  4. How Does Batch Normalization Help Optimization?

    1. 摘要 BN 是一个广泛应用的用于快速稳定地训练深度神经网络的技术,但是我们对其有效性的真正原因仍然所知甚少. 输入分布的稳定性和 BN 的成功之间关系很小,BN 对训练过程更根本的影响是:它让优 ...

  5. Java学习个人备忘录之文档注释

    文档注释 单行注释用 // 多行注释有两种,第一种是 /* 内容 */,第二种是/** 内容 */. 这两种多行注释的区别是/** 内容 */这种注释可以生成一个该文件的注释文档,下面是演示代码. A ...

  6. Calculation PartⅡ

    GitHub/object-oriented 误删内容--周末修复

  7. lintcode-14-二分查找

    二分查找 给定一个排序的整数数组(升序)和一个要查找的整数target,用O(logn)的时间查找到target第一次出现的下标(从0开始),如果target不存在于数组中,返回-1. 样例 在数组 ...

  8. Python实现FTP服务功能

    本文从以下三个方面, 阐述Python如何搭建FTP服务器 一. Python搭建FTP服务器 二. FTP函数释义 三. 查看目录结构 四. 上传下载程序 一. Python搭建FTP服务器 1. ...

  9. listBox和pictureBox的使用

    重要属性:pictureBox中SizeMode可以更改图像显示的尺寸大小. using System; using System.Collections.Generic; using System. ...

  10. 发送tcp的时候,数据包是如何拷贝的

    发送数据包的时候,用户态的数据包是如何拷贝到内核的kiovec msghd 结构体 icmp是走sock吗? 每一个skb_buffer的大小都是固定的吗?所以有skb_available这样的函数 ...