zoukankan      html  css  js  c++  java
  • Digits

    (Digits)

    这道题目比较简单,首先先打出来暴力,然后一看(b)的范围,瞬间想到快速幂。

    快速幂的精髓是什么?

    取模啊,再一看(k)的范围,大胆猜想模一个大于八位数的能被十整除的数字,然后发现对答案没有影响,直接做完。

    代码:

    #include<iostream>
    #include<cstdio>
    #define ll long long
    using namespace std;
    const ll MOD=1e9,N=1e5+100;
    inline ll qpow(ll a,ll p)
    {
    	ll base=a,ans=1;
    	while (p)
    	{
    		if (p&1) ans=(ans%MOD*base%MOD)%MOD;
    		base=(base%MOD*base%MOD)%MOD;
    		p=p>>1;
    	}
    	return ans%MOD;
    }
    ll n,k,x,now;
    ll a[N],b[N],will[15];
    int main()
    {
    	scanf("%lld%lld",&n,&k);
    	for (int i=1;i<=n;i++)
    	scanf("%lld%lld",a+i,b+i);
    	scanf("%lld",&x);
    	ll ans=0;
    	for (int i=1;i<=n;i++)
    	ans=(ans+a[i]*qpow(x,b[i])%MOD)%MOD;
    	int num=0;
    	while (ans)
    	{
    		will[++num]=ans%10;
    		ans/=10;
    	}
    	for (int i=k;i>=1;i--)
    	printf("%lld
    ",will[i]);
    	return 0;
    }
    
  • 相关阅读:
    CAN
    snip_opencv环境配置和测试程序
    snip_进制转换代码段
    代码高亮的调试过程
    test3
    test2
    dsBlog_杂类
    js秒数转换为时分秒
    Linux 添加硬盘挂着到指定目录
    上海居住证积分续办
  • 原文地址:https://www.cnblogs.com/last-diary/p/11405617.html
Copyright © 2011-2022 走看看