digits
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的更多相关文章
- [LeetCode] Reconstruct Original Digits from English 从英文中重建数字
Given a non-empty string containing an out-of-order English representation of digits 0-9, output the ...
- [LeetCode] Remove K Digits 去掉K位数字
Given a non-negative integer num represented as a string, remove k digits from the number so that th ...
- [LeetCode] Count Numbers with Unique Digits 计算各位不相同的数字个数
Given a non-negative integer n, count all numbers with unique digits, x, where 0 ≤ x < 10n. Examp ...
- [LeetCode] Add Digits 加数字
Given a non-negative integer num, repeatedly add all its digits until the result has only one digit. ...
- LeetCode 258. Add Digits
Problem: Given a non-negative integer num, repeatedly add all its digits until the result has only o ...
- ACM: FZU 2105 Digits Count - 位运算的线段树【黑科技福利】
FZU 2105 Digits Count Time Limit:10000MS Memory Limit:262144KB 64bit IO Format:%I64d & ...
- Revolving Digits[EXKMP]
Revolving Digits Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- 【LeetCode】Add Digits
Add Digits Given a non-negative integer num, repeatedly add all its digits until the result has only ...
- 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 ...
- android:digits属性
android:digits属性限定输入的字符 可以用于密码输入等输入框 ex: 个人意见: 但是这样的话不符合要求的字符直接输入不上去,可能会给用户造成困惑,最好给出提示或用其他工具. 本文欢迎转载 ...
随机推荐
- js的正则表达式总结
1.8-20位数字 or 字母 or 特殊字符 var reg = /^[0-9a-zA-Z!@#$%^&*()_+-/.]{8,20}$/; 2.8-20位 数字+字母+特殊字符 //正则 ...
- java面试宝典第三弹
Http和Https的区别 超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之 ...
- Git学习——删除文件
怎么删除版本库中的文件呢? 首先,删除工作区中的文件:rm <file>,然后你有两个选择.其一是,真正删除版库中的文件: git rm <file> git commit - ...
- Java面试——从JVM角度比较equals和==的区别
1. Java中数据类型分类 1.1 基本数据类型 又称为原始数据类型,byte,short,char,int,long,float,double,boolean,他们之间的比较应该使用(== ...
- Java-终止应用程序
参考了:http://www.cnblogs.com/xwdreamer/archive/2011/01/07/2297045.html 理论在上面链接中有详细的解释 package com.tj; ...
- android 之 GridView
GridView 的用法基本与ListView类似. 程序布局文件main.xml <?xml version="1.0" encoding="utf-8" ...
- iOS-MVC设计模式不足
View 的最大的任务就是向 Controller 传递用户动作事件. ViewController 不再承担一切代理和数据源的职责,通常只负责一些分发和取消网络请求以及一些其他的任务. 1.1 苹果 ...
- Python自动发送邮件(可带附件)
Python内置对SMTP的支持,可以发送纯文本邮件.HTML邮件以及带附件的邮件. Python对SMTP支持有smtplib和email两个模块,email负责构造邮件,smtplib负责发送邮件 ...
- pytorch中的math operation: torch.bmm()
torch.bmm(batch1, batch2, out=None) → Tensor Performs a batch matrix-matrix product of matrices stor ...
- Centos7 安装配置优化mysql(mariadb分支)
1.说明 由于在centos7的yum仓库中没有mysql,centos7用mariadb替代了mysql. mariadb是mysql源代码的一个分支, mysql被ORACLE闭源,而mariad ...