首页 > 其他分享 >NYOJ516(优化)

NYOJ516(优化)

时间:2023-05-31 17:32:06浏览次数:51  
标签:cnt int LL NYOJ516 ans include 优化 MOD


题目:http://acm.nyist.net/JudgeOnline/problem.php?pid=516

 

不能直接逐项快速幂计算。

#include <iostream>
#include <string.h>
#include <stdio.h>
#include <math.h>

using namespace std;
typedef long long LL;
const int N = 10000005;
const LL MOD = 1000000007;

bool prime[N];
int p[N];
int k;
LL ans,a,x;

void isprime()
{
    k = 0;
    int i,j;
    memset(prime,true,sizeof(prime));
    for(i=2; i<N; i++)
    {
        if(prime[i])
        {
            p[k++] = i;
            for(j=i+i; j<N; j+=i)
            {
                prime[j] = false;
            }
        }
    }
}

void quick_mod()
{
    while(x)
    {
        if(x&1)
        {
            ans = ans*a%MOD;
            x--;
        }
        x>>=1;
        a=a*a%MOD;
    }
}

int main()
{
    int n;
    isprime();
    while(~scanf("%d",&n))
    {
        if(n==0) break;
        ans = 1;
        x = 0;
        a = 1;
        for(int i=0; p[i] <= n; i++)
        {
            int t = n;
            int cnt = 0;
            while(t)
            {
                cnt += t/p[i];
                t /= p[i];
            }
            if(cnt > 1)
            {
                if(cnt&1) cnt--;
                if(cnt == x) a = a * p[i] % MOD;
                else
                {
                    quick_mod();
                    x = cnt;
                    a = p[i];
                }
            }
            else
            {
                quick_mod();
                break;
            }
        }
        printf("%lld\n",ans);
    }
    return 0;
}

 

标签:cnt,int,LL,NYOJ516,ans,include,优化,MOD
From: https://blog.51cto.com/u_16146153/6388687

相关文章

  • 编译器绕过拷贝构造函数和返回值优化
    写在前面:在拷贝初始化(也就是用等号初始化,注意使用拷贝构造函数创建一个新的对象不属于拷贝初始化)过程中,编译器可以(但不是必须)跳过拷贝构造函数或者移动构造函数,直接创建对象。1stringnull_book="999";2//可以改写为3stringnull_book("999");这里面”999“隐式的转换为......
  • 我将性能提升了百分之20 —— 一次系统延迟优化案例
    一次系统延迟优化案例问题背景线上隔三差五晚上10点左右总会有sql报警出现,且是同样的sql,我们的sql报警是在应用程序内部通过对sql操作增加钩子函数,对sql前后执行的位置记录下时间戳,然后sql执行完毕后,对时间戳进行相减得到sql执行时长,大于1s则报警。晚上10点正好是我们的业务高峰......
  • 烂怂if-else代码优化方案
    0.问题概述代码可读性是衡量代码质量的重要标准,可读性也是可维护性、可扩展性的保证,因为代码是连接程序员和机器的中间桥梁,要对双边友好。Quora上有一个帖子:“Whataresomeofthemostbasicthingseveryprogrammershouldknow?”其中:Codethat’shardtounderstand......
  • SQL优化之EXPLAIN执行计划
    前言从今天开始本系列文章就带各位小伙伴学习数据库技术。数据库技术是Java开发中必不可少的一部分知识内容。也是非常重要的技术。本系列教程由浅入深,全面讲解数据库体系。非常适合零基础的小伙伴来学习。全文大约【1965】字,不说废话,只讲可以让你学到技术、明白原理的纯干......
  • 关于MySQL的一些优化(单表访问)
    以此表为例CREATETABLE`single_table`(`id`intNOTNULLAUTO_INCREMENT,`key1`varchar(100)CHARACTERSETutf8mb4COLLATEutf8mb4_0900_ai_ciNULLDEFAULTNULL,`key2`intNULLDEFAULTNULL,`key3`varchar(100)CHARACTERSETutf8mb4COLLATEutf8mb......
  • mysql执行优化器
    sql这个ql看着给人感觉t表是驱动表,其实优化器优化后trc才是驱动表,因为t的查询条件筛选出来有50多万,二trc筛选只有几千条explainselectdistinctt.`id`as"id",t.deletedas"deleted",t.noas"no",ru.nameas"requester_name",tm.solve_minutesas"ticketMetric......
  • Mysql:数据库优化步骤
    数据库优化步骤查看mysql是否存在周期性波动1.1是。代表可能遇上如618,双十一等活动对数据库暂时性的压力增大,可以mysql加缓存或更改缓存策略1.2不是。大概率是本身开发人员编写的SQL有问题,或者是业务量达到一定程度引发的查询慢非周期性波动调优思路开启慢查询,并设定慢......
  • 武汉星起航:亚马逊卖家优化产品Listing,轻松提升产品排名
    在竞争激烈的亚马逊市场中,卖家们都希望能够提高产品的排名,获得更多的曝光和销售机会。而优化产品的Listing是实现这一目标的关键步骤。武汉星起航在这里提供了一些亚马逊卖家有效的优化技巧,让他们的产品在激烈的竞争中脱颖而出。首先,关键词是优化产品Listing的重要元素。在撰写产品......
  • 如何科学地利用MTTR优化软件交付流程?
    谷歌提出的衡量DevOps质量的DORA指标让MTTR(平均恢复时间)名声大振。在本文中,你将了解到MTTR的作用、为什么它对行业研究很有用、你可能被它误导的原因以及如何避免MTTR产生的弊端。 MTTR究竟是在测量什么?MTTR指平均恢复时间,既是MeanTimetoRecovery,有时也是Mea......
  • Hadoop之MapReduce性能优化
    现在大家已经掌握了MapReduce程序的开发步骤,注意了,针对MapReduce的案例我们并没有讲太多,主要是因为在实际工作中真正需要我们去写MapReduce代码的场景已经是凤毛麟角了,因为后面我们会学习一个大数据框架Hive,Hive支持SQL,这个Hive底层会把SQL转化为MapReduce执行,不需要我们写一行代......