Digits
(digits.cpp/c/pas)
Description
给一个关于x的多项式,并给定一个x,求该多项式在带入该x时的值最后k位数字。
Input
第一行两个整数n、k;
之后的 行,每行两个数ai和bi,表示多项式的一项 aix^bi;
最后一行一个整数x。
Output
输出k行,按顺序输出该多项式带入x后值的最后k位数字,若不足k位,则高位补零。
Example
digits.in
2 1
3 2
1 5
3
digits.out
0
附加样例见选手目录下『digits』文件夹。

Hint
对于30%的数据,n,k,ai,bi<=3,x<=10 ;
对于100%的数据,1<=n<=100000,1<=ai,bi,x<=10^9,1<=k<=8。

【题目分析】

快速幂取模,一定要随时!随时!随时%%%!

/*
评测机上我只有40分,然而我把每一组数据都代入输出,与nancheng58(评测100分)的输出一毛一样!!!为什么评测机给我40!!!我感受到了来自世界深深的恶意!
*/
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
long long x,a[],b[],sum=,mod=,ch,yy;
int n,k,an[];
long long ksm(long long a,long long p)
{
long long ans=;
for(;p;p>>=,a=(a*a)%mod)//here.
if(p&)
ans=ans%mod*a%mod;
return ans;
}
int main()
{
freopen("digits10.in","r",stdin);
freopen("digits.out","w",stdout);
scanf("%lld%d",&n,&k);
for(int i=;i<=k;i++)
mod=mod*;
for(int i=;i<=n;i++)
scanf("%lld%lld",&a[i],&b[i]);
scanf("%lld",&x);
for(int i=;i<=n;i++)
{
ch=ksm(x%mod,b[i]);
yy=(ch%mod)*(a[i]%mod);
sum=(sum%mod+(yy%mod))%mod;
}
an[]=sum/;
an[]=sum/%;
an[]=sum/%;
an[]=sum/%;
an[]=sum/%;
an[]=sum/%;
an[]=sum/%;
an[]=sum%;
for(int i=k;i>=;i--)
printf("%d\n",an[i]);
fclose(stdin);fclose(stdout);
return ;
} //下面附上nancheng58满分代码(郁闷!) #include<iostream>
#include<cstdio>
#define MAXN 100001
#define LL long long
using namespace std;
LL n,k,a[MAXN],b[MAXN],mod,m,lim,ans,c[];
LL read()
{
LL x=,f=;char ch=getchar();
while(ch<''||ch>'') {if(ch=='-')f=-;ch=getchar();}
while(ch>=''&&ch<='')x=x*+ch-,ch=getchar();
return x*f;
}
LL mi(LL x,LL y)
{
LL tot=;
while(y)
{
if(y&) tot=(tot*x)%mod;
x=(x*x)%mod;
y>>=;
}
return tot;
}
int main()
{
freopen("digits10.in","r",stdin);
freopen("digits.out","w",stdout);
n=read(),mod=read();
lim=m=mod;mod=;
while(m--) mod*=;
for(int i=;i<=n;i++)
a[i]=read()%mod,b[i]=read();
k=read();
k%=mod;
for(int i=;i<=n;i++)
{
ans=(ans+a[i]*mi(k,b[i])%mod)%mod;
}
for(int i=lim;i>=;i--)
{
c[i]=ans%;
ans/=;
}
for(int i=;i<=lim;i++)
printf("%d\n",c[i]);
fclose(stdin);fclose(stdout);
return ;
}

digits的更多相关文章

  1. [LeetCode] Reconstruct Original Digits from English 从英文中重建数字

    Given a non-empty string containing an out-of-order English representation of digits 0-9, output the ...

  2. [LeetCode] Remove K Digits 去掉K位数字

    Given a non-negative integer num represented as a string, remove k digits from the number so that th ...

  3. [LeetCode] Count Numbers with Unique Digits 计算各位不相同的数字个数

    Given a non-negative integer n, count all numbers with unique digits, x, where 0 ≤ x < 10n. Examp ...

  4. [LeetCode] Add Digits 加数字

    Given a non-negative integer num, repeatedly add all its digits until the result has only one digit. ...

  5. LeetCode 258. Add Digits

    Problem: Given a non-negative integer num, repeatedly add all its digits until the result has only o ...

  6. ACM: FZU 2105 Digits Count - 位运算的线段树【黑科技福利】

     FZU 2105  Digits Count Time Limit:10000MS     Memory Limit:262144KB     64bit IO Format:%I64d & ...

  7. Revolving Digits[EXKMP]

    Revolving Digits Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  8. 【LeetCode】Add Digits

    Add Digits Given a non-negative integer num, repeatedly add all its digits until the result has only ...

  9. Add Digits, Maximum Depth of BinaryTree, Search for a Range, Single Number,Find the Difference

    最近做的题记录下. 258. Add Digits Given a non-negative integer num, repeatedly add all its digits until the ...

  10. android:digits属性

    android:digits属性限定输入的字符 可以用于密码输入等输入框 ex: 个人意见: 但是这样的话不符合要求的字符直接输入不上去,可能会给用户造成困惑,最好给出提示或用其他工具. 本文欢迎转载 ...

随机推荐

  1. 2017年网络空间安全技术大赛部分writeup

    作为一个bin小子,这次一个bin都没做出来,我很羞愧. 0x00 拯救鲁班七号 具体操作不多说,直接进入反编译源码阶段 可以看到,只要2处的str等于a就可以了,而str是由1处的checkPass ...

  2. viewDidLoad、loadView

    一.loadView永远不要主动调用这个函数.view controller会在view的property被请求并且当前view值为nil时调用这个函数.如果你手动创建view,你应该重载这个函数,且 ...

  3. ios调试小结

    Xcode底部的小黑盒是我们调试时的好朋友,它可以输出日志信息.错误信息以及其他有用的东西来帮你跟踪错误,除了可以看到日志直接输出的信息外,我们编程过程中也可以在某些断点停留,来检查app的多个方面. ...

  4. Leetcode 71 简化路径simplify-path(栈)

    给定一个文档 (Unix-style) 的完全路径,请进行路径简化. 例如,path = "/home/", => "/home"path = " ...

  5. Python自动化测试框架——数据驱动(从文件中读取)

    学过编程的伙伴们都知道,数据不仅可以从代码中读取,还可以从文件中读取. 今天小编就简要的介绍一下从文件中读取数据,并应用到自动化测试中方法. 先来展示下接下来将要用到的文件在项目中的结构 从txt文件 ...

  6. 【Linux】启动Tomcat遇到Neither the JAVA_HOME nor the JRE_HOME environment variable is defined

    找不到JAVA_HOME路径,需要做以下变更: 找到启动路径所在的目录: cd bin/ vi catalina.sh 加入以下信息: export JAVA_HOME=/home/gongzi/ht ...

  7. Taro:使用taro完成小程序开发

    前言:taro是一个可以很好实现一次开发,多端统一的框架,本文只介绍它小程序端开发的一些内容.小程序项目搭建gitup已经有很清楚的说明:https://github.com/NervJS/taro ...

  8. 常用JS方法整理

    目录: 截取指定字节数的字符串 判断是否微信 获取时间格式的几个举例 获取字符串字节长度 对象克隆.深拷贝 组织结构代码证验证 身份证号验证 js正则为url添加http标识 URL有效性校验方法 自 ...

  9. laravel的安装与启动

    今天,我就来给大家分享下laravel的安装 https://pkg.phpcomposer.com 这是官网的中国镜像 第一步: 点链接进来执行下面的三条语句 执行完后,查看下当前目录底下有个  c ...

  10. aggregate和annotate使用

    aggregate和annotate方法的使用场景 Django的aggregate和annotate方法属于高级查询方法,主要用于组合查询,是Django高手们必需要熟练掌握的.当我们需要对查询集( ...