首页 > 其他分享 >8.18集训笔记

8.18集训笔记

时间:2023-08-18 14:01:50浏览次数:47  
标签:return 笔记 int LL namespace long 8.18 ans 集训

上午递归,文件

点击查看代码
#include<bits/stdc++.h>
using namespace std;
//#define T long long
typedef long long LL; // 取别名,以后使用 LL 就是 long long
const int N=5e3+10;
LL fib[N];
LL f(int n){  // 递归
    if(n<=2) return 1;
    return f(n-1) + f(n-2);
}
int main(){
    fib[0]=fib[1]=1;  // 递推
    for(int i=2; i<N; i++) {
        fib[i] = fib[i-1] + fib[i-2];
//        cout<<i<<" : "<< fib[i]<<endl;
    }
    int n;cin>>n;
//    cout<<f(n)<<endl;
    cout<<fib[n]<<endl;
    return 0;
}
  • 汉诺塔
    【例】Hanoi(汉诺)塔问题。
    古代有一个梵塔,塔内有3个座A,B,C。开始时A座上有64个盘子,盘子大小不等,大的在下,小的在上。有一个老和尚想把这64个盘子从A座移到C座,但规定每次只允许移动一个盘,且在移动过程中在3个座上都始终保持大盘在下,小盘在上。在移动过程中可以利用B座。要求编程序输出移动盘子的步骤。
点击查看代码
#include<bits/stdc++.h>
using namespace std;
const int N=110;
void hanoi(int n,char a,char b,char c){
    if(n==1){
        // printf("%c->%c\n",a,c);
        cout<<a<<" "<<c<<endl;
        return;
    }
    hanoi(n-1, a,c,b);
    hanoi(1, a,b,c);
    hanoi(n-1, b,a,c);
}
int main(){
    int n;  cin>>n; // scanf("%d", &n);
    hanoi(n,'A','B','C');
    return 0;
}
点击查看代码
#include<iostream>
using namespace std;
const int N=1e6+10, INF=0x3f3f3f3f;
typedef long long LL;

int p;
LL halfpow(int a,int n){
    if(n==1) return a;
    LL ans = halfpow(a, n/2);
    ans = ans*ans%p;
    if(n&1) ans=ans*a%p;
    return ans;
}
int main(){
    int a,b; scanf("%d%d%d",&a,&b,&p);
    LL s = halfpow(a, b);
    printf("%d^%d mod %d=%lld\n",a,b,p,s);
    return 0;
}

下午测试讲评

标签:return,笔记,int,LL,namespace,long,8.18,ans,集训
From: https://www.cnblogs.com/hellohebin/p/17640293.html

相关文章

  • 10.4K Star!程序员为程序员针对性优化的开源免费笔记
    平时我一直用Notion来记录内容为主,但也一直关注着其他开源产品。上周正好看到一款非常受欢迎的开源免费笔记,今天就推荐给大家:VNote。VNote一个由程序员为程序员打造的开源笔记应用,基于Qt开发,专注于使用Markdown来写作的群体。它提供完美的编辑体验和强大的笔记管理功能,使得使......
  • 2023年 8月15日普及组南外集训题解
    A查找最大元素扫一遍确定最大值,如果是最大值输出字符和"(max)",不是的话只输出字符#include<iostream>#include<cstring>usingnamespacestd;charmaxx;strings;intmain(){cin>>s;for(inti=0;i<s.size();i++)if(s[i]>=maxx)......
  • 集训总结
    Day1题单栈单调栈单调队列并查集带权并查集Day2题单树状数组单点加、区间查区间加、单点查区间加、区间查(推导)二维树状数组(推导)树状数组求逆序对WrittenwithStackEdit.......
  • 笔记整理--C语言--失落的C语言结构体封装艺术 - 博客 - 伯乐在线——转载
    失落的C语言结构体封装艺术-博客-伯乐在线转载1.谁该阅读这篇文章本文是关于削减C语言程序内存占用空间的一项技术——为了减小内存大小而手工重新封装C结构体声明。你需要基本的C语言的基本知识来读懂本文。如果你要为内存有限制的嵌入式系统、或者操作系统内核写代码,那......
  • SpringSecurity实战笔记之Security
    =================================SpringSecurity========================================一、默认配置1、默认会对所有请求都需要进行认证与授权;2、默认使用httpBasic方式进行登录3、默认的用户名为user,密码在启动应用时在console中有打印......
  • 笔记整理--C语言--数组指针和指针数组的区别 - hongcha_717 - 博客园——转载
    【转载】:原文http://www.cnblogs.com/hongcha717/archive/2010/10/24/1859780.html数组指针和指针数组的区别数组指针(也称行指针)定义int(*p)[n];()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长。也就是说执行p+1时,p要跨过n个......
  • SpringSecurity实战笔记之RESTful
    =================================RESTful========================================一、JsonPath1、github:https://github.com/json-path/JsonPath二、@JsonView使用步骤(用于解决同一个对象在不同的接口返回的字段不同的场景)1、使用接口来声明多个视图2、在值对象的get方法上指......
  • [Tarjan] 学习笔记
    原理强连通分量讲得超级屌,这次比董晓好得多voidtarjan(intx){ dfn[x]=low[x]=t++; s.push(x); in[x]=true; for(inti=h[x];i;i=e[i].next) { inty=e[i].to; if(!dfn[y]) { tarjan(y); low[x]=min(low[x],low[y]); } elseif(i......
  • 基于Spring Boot手把手博客系统企业级前后端实战-学习笔记
     一、springboot初始化工程1、网址:https://start.spring.io二、Gradle安装(绿色版)1、windows下-下载:http://downloads.gradle.org/distributions/gradle-3.5-bin.zip-解压:-配置环境变量:新建环境变......
  • Java学习笔记(十三)
    7.6 枚举类1、什么是枚举类?枚举类是指一种特殊的类,这种类的对象只有有限的固定的几个常量对象。2、什么情况会用枚举类呢?例如:Month类,Week类等等,他们的对象应该是固定的有限的几个。Month类:12个对象Week类:7个对象Season(季节)类:4个对象3、如何声明枚举类呢?在JDK1.5之前:(1......