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: 个人意见: 但是这样的话不符合要求的字符直接输入不上去,可能会给用户造成困惑,最好给出提示或用其他工具. 本文欢迎转载 ...
随机推荐
- 2017年网络空间安全技术大赛部分writeup
作为一个bin小子,这次一个bin都没做出来,我很羞愧. 0x00 拯救鲁班七号 具体操作不多说,直接进入反编译源码阶段 可以看到,只要2处的str等于a就可以了,而str是由1处的checkPass ...
- viewDidLoad、loadView
一.loadView永远不要主动调用这个函数.view controller会在view的property被请求并且当前view值为nil时调用这个函数.如果你手动创建view,你应该重载这个函数,且 ...
- ios调试小结
Xcode底部的小黑盒是我们调试时的好朋友,它可以输出日志信息.错误信息以及其他有用的东西来帮你跟踪错误,除了可以看到日志直接输出的信息外,我们编程过程中也可以在某些断点停留,来检查app的多个方面. ...
- Leetcode 71 简化路径simplify-path(栈)
给定一个文档 (Unix-style) 的完全路径,请进行路径简化. 例如,path = "/home/", => "/home"path = " ...
- Python自动化测试框架——数据驱动(从文件中读取)
学过编程的伙伴们都知道,数据不仅可以从代码中读取,还可以从文件中读取. 今天小编就简要的介绍一下从文件中读取数据,并应用到自动化测试中方法. 先来展示下接下来将要用到的文件在项目中的结构 从txt文件 ...
- 【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 ...
- Taro:使用taro完成小程序开发
前言:taro是一个可以很好实现一次开发,多端统一的框架,本文只介绍它小程序端开发的一些内容.小程序项目搭建gitup已经有很清楚的说明:https://github.com/NervJS/taro ...
- 常用JS方法整理
目录: 截取指定字节数的字符串 判断是否微信 获取时间格式的几个举例 获取字符串字节长度 对象克隆.深拷贝 组织结构代码证验证 身份证号验证 js正则为url添加http标识 URL有效性校验方法 自 ...
- laravel的安装与启动
今天,我就来给大家分享下laravel的安装 https://pkg.phpcomposer.com 这是官网的中国镜像 第一步: 点链接进来执行下面的三条语句 执行完后,查看下当前目录底下有个 c ...
- aggregate和annotate使用
aggregate和annotate方法的使用场景 Django的aggregate和annotate方法属于高级查询方法,主要用于组合查询,是Django高手们必需要熟练掌握的.当我们需要对查询集( ...