
笔记
满目0620
这个作者很懒,什么都没留下…
展开
-
快速幂模板
#include<stdio.h>int quick(int a,int b,int c){ int ans=1; while(b) { if(b%2) ans=ans*a%c; a=a*a%c; b/=2; } return ans;}int main(){ int a,b,c; scanf("%d %d %d",&a,&b,&c); printf("%d\n",quick(a,b,c));}原创 2022-01-18 20:34:25 · 279 阅读 · 0 评论 -
校门外的树
校门外有很多树,学校决定在某个时刻在某一段种上一种树,保证任一时刻不会出现两段相同种类的树,现有两种操作:K=1,读入 l,r表示在 l 到 r之间种上一种树,每次操作种的树的种类都不同;K=2,读入 l,r表示询问 l 到 r 之间有多少种树。注意:每个位置都可以重复种树。输入格式第一行 n,m 表示道路总长为 n,共有 m 个操作;接下来 m 行为 m 个操作。输出格式对于每个 k=2 输出一个答案。样例Input5 41 1 32 2 51 2 42 3 5output原创 2022-01-05 20:45:19 · 403 阅读 · 0 评论 -
点的距离-LCA
给定一棵 n 个点的树,Q 个询问,每次询问点 x 到点y 两点之间的距离。输入格式第一行一个正整数 n,表示这棵树有 n 个节点;接下来 n−1 行,每行两个整数 x,y 表示 x,y 之间有一条连边;然后一个整数 Q,表示有 Q 个询问;接下来 QQ 行每行两个整数 x,y 表示询问 x 到 y 的距离。输出格式输出 Q 行,每行表示每个询问的答案。思路:LCA模板题代码:#include<stdio.h>#include<string.h>#includ原创 2022-01-04 19:19:36 · 576 阅读 · 0 评论 -
花神游历各国
花神喜欢步行游历各国,顺便虐爆各地竞赛。花神有一条游览路线,它是线型的,也就是说,所有游历国家呈一条线的形状排列,花神对每个国家都有一个喜欢程度(当然花神并不一定喜欢所有国家)。每一次旅行中,花神会选择一条旅游路线,它在那一串国家中是连续的一段,这次旅行带来的开心值是这些国家的喜欢度的总和,当然花神对这些国家的喜欢程序并不是恒定的,有时会突然对某些国家产生反感,使他对这些国家的喜欢度开根号(可能是花神虐爆了那些国家的 OI,从而感到乏味)。现在给出花神每次的旅行路线,以及开心度的变化,请求出花神每原创 2022-01-03 19:48:40 · 635 阅读 · 0 评论 -
蓝桥杯2018决赛调手表
**小明买了块高端大气上档次的电子手表,他正准备调时间呢。在 M78 星云,时间的计量单位和地球上不同,M78 星云的一个小时有 n 分钟。大家都知道,手表只有一个按钮可以把当前的数加一。在调分钟的时候,如果当前显示的数是 0 ,那么按一下按钮就会变成 1,再按一次变成 2 。如果当前的数是 n - 1,按一次后会变成 0 。作为强迫症患者,小明一定要把手表的时间调对。如果手表上的时间比当前时间多1,则要按 n - 1 次加一按钮才能调回正确时间。小明想,如果手表可以再添加一个按钮,表示把当前的数加原创 2021-06-02 20:38:13 · 80 阅读 · 0 评论 -
找一个数的约数-非暴力
#include<stdio.h>int book[10100],bk[101010],b[101010];int main(){ int i,j,n,k=0; scanf("%d",&n); for(i=2;i<=n;i++)//素数打表 { if(bk[i]==0) { book[k++]=i; for(j=i*2;j<=n;j=j+i) { bk[j]=1; } } } int cnt=0; for(i=0原创 2021-06-02 19:54:46 · 164 阅读 · 1 评论 -
2019蓝桥杯国赛-路径计数
从一个 5×5 的方格矩阵的左上角出发,沿着方格的边走,满足以下条件的路线有多少种?总长度不超过 12;最后回到左上角;路线不自交;不走出 5×5 的方格矩阵范围之外。代码#include<stdio.h>int next[4][2]={{0,1},{0,-1},{1,0},{-1,0}},ans=0,book[1010][1100];void dfs(int x,int y,int step){ int tx,ty,k; if(step>=4&&s原创 2021-06-01 19:47:01 · 190 阅读 · 0 评论 -
第十一届蓝桥杯c++B组国赛——玩具蛇
思路:这一题思路很简单就是一个普通的深搜,玩具蛇总共有十六节,所以可以遍历初始位置坐标如果能走16步#include<stdio.h>#include<string.h>int ans=0,book[1010][1010];int next[4][2]={{0,1},{1,0},{0,-1},{-1,0}};void dfs(int x,int y,int step){ int tx,ty,k; if(step==16) { ans++; return;原创 2021-05-28 21:26:52 · 131 阅读 · 0 评论 -
第十一届蓝桥杯c++B组国赛——扩散
思路:广搜提示:如果直接从给的四个初始坐标开始搜的话可能会得到负数所以我们把坐标都加上2020;#include<stdio.h>#include"string.h"#include<algorithm>#include<queue>using namespace std;struct l{ int x,y,s;}tail,head;int book[10000][10000];int main(){ memset(book,0,sizeof(原创 2021-05-28 21:15:03 · 430 阅读 · 0 评论 -
滑雪(动态规划)
Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael想知道载一个区域中最长底滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子 1 2 3 4 516 17 18 19 615 24 25 20 714 23 22 21 813 12 11 10 9一个人可以从某个点滑向上下左右相邻四个点之一,当且仅当高度减小。在上面的例子中,一条可滑行的滑原创 2021-05-14 20:29:11 · 147 阅读 · 0 评论 -
2018第九届蓝桥杯 明码(10进制转2进制)
对于10进制转二进制很多人都是采用直接转换的方法 但是对于某些题来说会非常麻烦但我们可以直接调用一个函数解决#include<bitset>using namespace std;使用时需要加上这个头文件bitset<8> t;//这个意思是把一个数t转化为长度为8的二进制不够的话补零 当然8也可以换成其他数;string y;//定义一个字符串y=t.to_string();//这个是让一个整数t里面得数存进一个字符串里下面我们就举一个例子汉字的字形存在于字库中原创 2021-04-09 21:15:43 · 170 阅读 · 0 评论 -
第六届蓝桥杯省赛题解
2015届蓝桥杯第八题移动距离**X星球居民小区的楼房全是一样的,并且按矩阵样式排列。其楼房的编号为1,2,3…当排满一行时,从下一行相邻的楼往反方向排号。比如:当小区排号宽度为6时,开始情形如下:1 2 3 4 5 612 11 10 9 8 713 14 15 …我们的问题是:已知了两个楼号m和n,需要求出它们之间的最短移动距离(不能斜线方向移动)输入输入为3个整数w m n,空格分开,都在1到10000范围内输出要求输出一个整数,表示m n 两楼间最短移动距离。样原创 2021-03-31 20:27:38 · 196 阅读 · 2 评论