周末总结
来源:互联网 发布:使用js完成九九乘法表 编辑:程序博客网 时间:2024/05/13 19:27
在这一周,每天都是做完作业就刷题,而周四则更是先编了两个程序过了一下瘾,才写的周末作业,感觉对编程的热爱只增不减。同时每天都跑两圈,感觉十分充实。
然而,在我编程的过程中,也发现了许多的不足之处。许多新知识我都没有学过,且有些刚学过的东西还没写熟,甚至还会看一眼标程,不得不说还要继续努力。
同时,我的思维能力有所提高,在遇到一道新题时,能够有思路且接近一半都是正确的(当然DP却不能很快的想出状态转移方程)。并且学长讲的课也能听懂了,有时还觉得挺简单的,甚至比他人想的快(鼓掌)。总体来说,还是可以的。
可是考试的成绩却不理想,因此我要 勤学苦练多刷题,专心致志上自习 以来提高能力。
附.题(日后可以回看)
【问题描述】
给出n个正整数a1,a2…an和一个质数mod.一个变量x初始为1.进行m次操 作.每次在 n 个数中随机选一个 ai,然后 x=x*ai%mod.问 m 次操作之后 x 的取值的 期望. 答案一定可以表示成 a/b 的精确分数形式.a 和 b 可能很大,所以只需要输出 a*(b^(10^9+5))模 10^9+7 的结果.
【输入文件】
第一行三个整数 n,m,mod. 接下来一行 n 个空格隔开的正整数 a1,a2…an。
【输出文件】
一行一个整数表示答案。
【输入样例】
510000000002 11111
【输出样例】
1
【数据规模和约定】
第 1 个测试点:mod=2 第 2 个测试点:n=1 第 3,4,5 个测试点:m<=1000,1<=mod<=300. 第 6,7,8 个测试点: 1<=mod<=300 对于全部测试点:1<=ai<mod,mod 为质数 1<=mod<=1000, 对于全部测试点:1<=n<=10^5,1<=m<=10^9
//认真思考//
//认真思考//
//认真思考//
//认真思考//
//认真思考//
题解:
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cstdio>
#include<cmath>
#define mod 1000000007
using namespace std;
int n,m,p;
long long mi(long long x){//快速幂 好写法
long long y=1;
for(int k=mod-2;k;k/=2){
if(k&1)y=y*x%mod;
x=x*x%mod;//x=(x*x)%mod
}
return y;
}
int fa=0,pp=0;
long long f[1001][2],t[1001][2];
void go(){
while(m){
if(m&1){
fa=fa^1;
for(int i=1;i<p;i++)f[i][fa]=0;
for(int i=1;i<p;i++){
for(int j=1;j<p;j++){
f[i*j%p][fa]+=f[i][fa^1]*t[j][pp]%mod;
}
}
for(int i=1;i<p;i++){
f[i][fa]%=mod;
}
}
pp=pp^1;
for(int i=1;i<p;i++)t[i][pp]=0;
for(int i=1;i<p;i++){
for(int j=1;j<p;j++){
t[i*j%p][pp]+=t[i][pp^1]*t[j][pp^1]%mod;
}
}
for(int i=1;i<p;i++)t[i][pp]=t[i][pp]%mod;
m/=2;
}
}
int zc,mi_n;//暂存,n的快速幂
long long ans;
int main(){
scanf("%d%d%d",&n, &m, &p);
for(int i=0;i<n;i++){
scanf("%d",&zc);
t[zc][pp]++;
}
int mi_n=mi(n);
for(int i=1;i<p;i++){
t[i][pp]=(t[i][pp]*mi_n)%mod;
}
f[1][fa]=1;
go();
for(int i=1;i<p;i++){
ans=(ans+f[i][fa]*i)%mod;
}
printf("%lld\n", ans);
return 0;
}
//标程地址: http://floj.cf/submission/25422
//伪代码地址: http://floj.cf/submission/25421
- 周末总结。
- 周末总结
- 周末总结
- 周末总结
- 周末总结
- 周末总结
- 周末总结
- 周末总结
- 周末总结
- 周末总结
- 周末学习总结
- 周末总结_杂谈
- 周末总结_读书
- 【周末技术总结】git
- 周末总结tow
- 周末总结--第八周
- 11.06 周末联考总结
- 77&周末总结
- Java基础知识---内存区域与内存溢出异常
- 印度比中国可怕在哪里?一能力或成超越中国的秘密武器
- 有点坑的unity协程
- Java中的BIO、NIO、AIO(NIO2)
- React+webpack+Less 组件样式覆盖优化
- 周末总结
- MT 192 Request for Cancellation撤销请求
- 挑战题一(2)
- 使用javascript下载页面中的表格数据
- 微信内置浏览器 长按识别二维码 功能的两三个坑与解决方案
- CentOS7下使用yum安装Mongodb3.4
- 【测试】学习使用mocha(摩卡)编写测试用例-常用命令
- APACHE BEAM2.0.0版本如何支持SPARK2.0.2
- 支付宝钱包系统架构内部剖析