Fibonacci数列,快速幂

 #include <cstdio>
struct Matrix{int a[][];};
const int N=,MOD=;
Matrix A,B,O,I;
Matrix Mul(Matrix A,Matrix B){
Matrix C=O;
for(int i=;i<=N;i++)
for(int j=;j<=N;j++)
for(int k=;k<=N;k++)
C.a[i][j]=(C.a[i][j]+A.a[i][k]*B.a[k][j])%MOD;
return C;
}
Matrix Pow(Matrix A,int n){
Matrix B=I;
for(;n;n>>=,A=Mul(A,A))if(n&)B=Mul(B,A);
return B;
}
int main(){
for(int i=;i<=;i++)for(int j=;j<=;j++)O.a[i][j]=,I.a[i][j]=(i==j);
A.a[][]=,A.a[][]=;
A.a[][]=,A.a[][]=;
int n;scanf("%d",&n),B=Pow(A,n+),printf("%d\n",B.a[][]);
return ;
}

圆的面积

 #include <cmath>
#include <cstdio>
typedef double db;
db r,pi=acos(-);
int main(){
scanf("%lf",&r),printf("%.7lf",pi*r*r);
return ;
}

序列求和

 #include <cstdio>
typedef long long ll;
ll ans,n;
int main(){
scanf("%lld",&n),printf("%lld",(+n)*n/);
return ;
}

A+B问题

 #include <cstdio>
int main(){
int a,b;scanf("%d%d",&a,&b),printf("%d",a+b);
return ;
}

数列排序,STL使用

 #include <queue>
#include <cstdio>
using namespace std;
priority_queue<int>q;
int main(){
int n,a;scanf("%d",&n);
for(int i=;i<=n;i++)scanf("%d",&a),q.push(-a);
for(int i=;i<=n;i++)printf("%d ",-q.top()),q.pop();
return ;
}

十六进制转八进制,进制转化

 #include <cstdio>
#include <string>
#include <cstring>
#include <iostream>
using namespace std;
char s[];
int main(){
int n,len,num,ok;scanf("%d",&n);
for(int i=;i<=n;i++){
scanf("%s",s+),len=strlen(s+);
string ans="";
for(int i=;i<=len;i++)
switch(s[i]){
case '':ans+="";break;case '':ans+="";break;
case '':ans+="";break;case '':ans+="";break;
case '':ans+="";break;case '':ans+="";break;
case '':ans+="";break;case '':ans+="";break;
case '':ans+="";break;case '':ans+="";break;
case 'A':ans+="";break;case 'B':ans+="";break;
case 'C':ans+="";break;case 'D':ans+="";break;
case 'E':ans+="";break;case 'F':ans+="";break;
}//printf("%s\n",ans.c_str());
switch(len%){
case :ans=""+ans;break;
case :ans=""+ans;break;
}
len=ans.length();ok=;
for(int i=;i<len;i+=){
num=*(ans[i]-'')+*(ans[i+]-'')+(ans[i+]-'');//printf("%c %c %c\n",ans[i],ans[i+1],ans[i+2]);
if(num)ok=;if(ok)putchar(num+'');
}
puts("");
}
return ;
}

阶乘计算,高精度

 #include <cstdio>
#include <string>
#include <cstring>
#include <cstdlib>
using namespace std;
const int MAXN=;
char buf[MAXN];
struct BigData{
int a[MAXN],cnt;
void init(int c){cnt=c,memset(a,,sizeof(a));}
void Print(){for(int i=cnt;i>=;i--)putchar(a[i]+'');puts("");}
void ReadInt(int x){
memset(buf,,sizeof(buf));
itoa(x,buf+,);
init(strlen(buf+));
for(int i=;i<=cnt;i++)a[cnt-i+]=buf[i]-'';
}
};
BigData Mul(BigData A,BigData B){
BigData C;C.init();
for(int i=;i<=A.cnt;i++)
for(int j=;j<=B.cnt;j++){
C.a[i+j-]+=A.a[i]*B.a[j];
C.a[i+j]+=C.a[i+j-]/;
C.a[i+j-]%=;
}
C.cnt=A.cnt+B.cnt-;
if(C.a[C.cnt+]>=)C.cnt++;
while(C.a[C.cnt]==&&C.cnt>)C.cnt--;
return C;
}
BigData Ans,A;
int main(){
Ans.init(),Ans.a[]=;
int n;scanf("%d",&n);
for(int i=;i<=n;i++)A.ReadInt(i),Ans=Mul(Ans,A);
Ans.Print();
return ;
}

C++-蓝桥杯-入门训练的更多相关文章

  1. 蓝桥杯 入门训练 Fibonacci数列(水题,斐波那契数列)

    入门训练 Fibonacci数列 时间限制:1.0s   内存限制:256.0MB 问题描述 Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1. 当n比较大时,Fn也非 ...

  2. 蓝桥杯 入门训练 Fibonacci数列

      入门训练 Fibonacci数列   时间限制:1.0s   内存限制:256.0MB        问题描述 Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1. ...

  3. 蓝桥杯-入门训练 :Fibonacci数列

    问题描述 Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1.当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少. 输入格式 输入包含一个整数n. ...

  4. 蓝桥杯入门训练-Fibonacci数列

    刚刚开始刷题的时候就栽了个大跟头,稍微记一下...... 一开始不是很理解:“我们只要能算出这个余数即可,而不需要先计算出Fn的准确值,再将计算的结果除以10007取余数,直接计算余数往往比先算出原数 ...

  5. 蓝桥杯 入门训练 Fibonacci数列 解析

    问题描述 Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1. 当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少. 输入格式 输入包含一个整数n ...

  6. 蓝桥杯-入门训练 :A+B问题

    问题描述 输入A.B,输出A+B. 说明:在“问题描述”这部分,会给出试题的意思,以及所要求的目标. 输入格式 输入的第一行包括两个整数,由空格分隔,分别表示A.B. 输出格式 输出一行,包括一个整数 ...

  7. 蓝桥杯如何训练?(附VIP题库)

    https://www.dotcpp.com/ 给大家介绍下蓝桥杯,是近几年可以说国内名气最大的程序设计类比赛了 相比国际赛事ACM,蓝桥杯入门简单.中文答题.拿奖率高,更适合国内大众化参加,近几年不 ...

  8. Java实现 蓝桥杯 算法训练 猴子吃包子(暴力)

    试题 算法训练 猴子吃包子 问题描述 从前,有一只吃包子很厉害的猴子,它可以吃无数个包子,但是,它吃不同的包子速度也不同:肉包每秒钟吃x个:韭菜包每秒钟吃y个:没有馅的包子每秒钟吃z个:现在有x1个肉 ...

  9. Java实现蓝桥杯 算法训练 大等于n的最小完全平方数

    试题 算法训练 大等于n的最小完全平方数 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 输出大等于n的最小的完全平方数. 若一个数能表示成某个自然数的平方的形式,则称这个数为完全平 ...

随机推荐

  1. Java集合那点事, 满满干货~

    说到Java集合,可以说是初学者必踩的坑了. 那么怎么才能学好Java集合呢?个人认为关键是要理清楚思路,从上而下,建立一套完整的思维体系,这样才能更好的去认识事物的本质. 先确立一下学习Java集合 ...

  2. C语言基础五 数组的应用

    .根据用户输入的10人成绩并将其保存到数组中,求最高成绩,最低成绩和平均成绩 int scoure[10];//存储10个数据的数组 int i; int sum;//总成绩 int max,min, ...

  3. 全国省市,4个直辖市geoCoord数据,用于echart gl 3d地图

    var geoCoordMap = { '北京': [116.4551, 40.2539], '东城区':[116.418757,39.917544], '西城区':[116.366794,39.91 ...

  4. Apache Log4j 反序列化代码执行(CVE-2019-17571) 漏洞分析

    Apache Log4j 漏洞分析 仅用于研究漏洞原理,禁止用于非法用途,后果自负!!! CVE-2019-17571 漏洞描述 Log4j是美国阿帕奇(Apache)软件基金会的一款基于Java的开 ...

  5. 剑指offer-面试题59_1-滑动窗口的最大值-数组

    /* 题目: 链接:https://www.nowcoder.com/questionTerminal/1624bc35a45c42c0bc17d17fa0cba788 来源:牛客网 给定一个数组和滑 ...

  6. 清北学堂—2020.1提高储备营—Day 4 morning(数论)

    qbxt Day 4 morning --2020.1.20 济南 主讲:李奥 目录一览 1.一些符号与基本知识 2.拓展欧几里得,逆元与欧拉定理 3.线性筛法与积性函数(非重点) 总知识点:数论 一 ...

  7. Excel 2016双击文件打开后是空白,再次双击才能打开(或者通过文件,打开才能打开)

    问题描述: 直接双击excel文件打开后是空白的,几乎所有功能都无法使用.但是再次双击该文件能够打开,或者通过文件 --> 打开的方式才能打开. 虽说能够打开文件,但是对于咱们这种追求完美的人来 ...

  8. Vue(八)---组件(Component)

    组件(Component)是 Vue.js 最强大的功能之一.组件可以扩展 HTML 元素,封装可重用的代码. 注册一个全局组件语法格式如下: Vue.component(tagName, optio ...

  9. linux---基础学习

    学习使用linux 偶然间看到一篇介绍linux的使用,于是看了看,整体看完,虽然看的有些懵✒,但还是坚持看完了基础部分,并做了一些摘要. man页面所属的分类标识 常用的是分类1和分类3 (1).用 ...

  10. PTA 汉诺塔的非递归实现(C 语言)

    借助堆栈以非递归(循环)方式求解汉诺塔的问题(n, a, b, c), 即将N个盘子从起始柱(标记为“a”)通过借助柱(标记为“b”)移动到目标柱(标记为“c”), 并保证每个移动符合汉诺塔问题的要求 ...