ACM算法
YakuzzZ
这个作者很懒,什么都没留下…
展开
-
P1002 过河卒
P1002 过河卒题目地址:https://www.luogu.com.cn/problem/P1002题目描述棋盘上 AA 点有一个过河卒,需要走到目标 BB 点。卒行走的规则:可以向下、或者向右。同时在棋盘上 CC 点有一个对方的马,该马所在的点和所有跳跃一步可达的点称为对方马的控制点。因此称之为“马拦过河卒”。棋盘用坐标表示,AA 点 (0, 0)(0,0)、BB 点 (n, m)(n,m),同样马的位置坐标是需要给出的。#include<stdio.h>#include<原创 2021-05-19 18:09:41 · 44 阅读 · 0 评论 -
ACM-辗转相除法
#include<iostream>#include<cmath>using namespace std;int fun(int i,int j);int main(){ int i,j,x,y; cout<<"请输入一个正整数:"<<endl; cin>>i; cout<<"请输入另一个正整数:"<<endl; cin>>j; x = fun(i,j); y = i*j/x; co原创 2020-11-06 21:20:07 · 98 阅读 · 0 评论 -
ACM算法-并查集(路径压缩)
#include<iostream>#include<cmath>#include<cstring>using namespace std;int s[100]; int gen(int x){// if(s[x] == x)// return x;// else{// s[x] = gen(s[x]);// return s[x];// } return s[x]==x?x:gen(s[x]);}void mer(int a,int b原创 2020-11-01 15:56:03 · 147 阅读 · 0 评论 -
ACM算法-快速幂
#include<iostream>using namespace std;/**temp为基数,n为底数,m为指数,基数初始值为1,当指数最后一位为1是,基数乘上指数,指数减 *1后,指数的最后一会为0,然后把底数进行平方指数右移一位,指数因为最后指数会变成1,所以把 *最后的底数和基数成在一起就是结果 */ int quick_power (int n,int m){ long long temp = 1; while (m) { if (m & 1) {//如原创 2021-09-15 11:02:27 · 110 阅读 · 0 评论 -
ACM算法—Dijstra算法(啊哈!算法)
该算法为单源最短路算法#include<iostream>#include<cstring>using namespace std;const int inf = 0x3f3f3f3f;int main(){ int n,m,minn,index; int mat[55][55],book[55],dis[55]; //mat数组用来存储地图信息i到j的距离 //book数组用来标记当前点是否走过 //dis单源点到其他所有点的最短距离 scanf("%d%d原创 2020-10-18 21:26:54 · 164 阅读 · 1 评论 -
ACM算法-基础dp落谷 P1002 过河卒
P1002 过河卒题目地址:https://www.luogu.com.cn/problem/P1002题目描述棋盘上 AA 点有一个过河卒,需要走到目标 BB 点。卒行走的规则:可以向下、或者向右。同时在棋盘上 CC 点有一个对方的马,该马所在的点和所有跳跃一步可达的点称为对方马的控制点。因此称之为“马拦过河卒”。棋盘用坐标表示,AA 点 (0, 0)(0,0)、BB 点 (n, m)(n,m),同样马的位置坐标是需要给出的。现在要求你计算出卒从 AA 点能够到达 BB 点的路径的条数,假设马原创 2020-10-16 17:09:51 · 411 阅读 · 0 评论 -
ACM算法-逃离机场
逃离机场题目描述小明听说机场是一个很肥的地方,所以想跳一波机场,看看到底有多肥。不过机场虽然肥,但是跳的 人也多。小明第一次跳机场,刚跳下来就到处都是枪声,小明吓得快要哭出来了,想逃离机场,emmm, 还是打野比较适合他。现在把机场看作一个二维平面,’.’ 代表可以走的空地,’@’ 代表小明当前的位置,’x’ 代表这里是个 障碍物,’o’ 代表这里有个敌人,并且手里有枪,敌人可以攻击上下左右四个方向,小明只要走到或者一 开始就在敌人可以攻击的位置,就会死亡(机场个个都是 98K 爆头 dalao),子原创 2020-10-07 16:40:41 · 255 阅读 · 0 评论 -
ACM算法-八数码问题
描述在九宫格里放在1到8共8个数字还有一个是空格,与空格相邻的数字可以移动到空格的位置,问给定的状态最少需要几步能到达目标状态(用0表示空格):1 2 34 5 67 8 0输入输入一个给定的状态。输出输出到达目标状态的最小步数。不能到达时输出-1。输入样例1 2 34 0 67 5 8输出样例2题解首先看题是一道搜索题目,输入一个33的数组,找到目标状态,首先需要找到起点,也就是0点,然后按照上下左右四个方向移动0点,也就是和0点旁边的四个点交换位置,当然是在条件允许的情况转载 2020-10-03 15:05:01 · 241 阅读 · 0 评论 -
ACM算法-筛选法求素数
筛选法求素数,从2开始,开一个数组,下标座位数的大小,值作为判断是否是素数的标志。如果是素数prime[idnex] = true 反之prime[index] = false 。从下标为2开始判断,如果这个数是素数,prime[i] = true,问题的关键就是怎么样判断一个书是素数,如果直接使用两层的for循环,时间复杂度太大,我们假设这个数是素数,然后把素数的倍数标志为prime[i] = true,因为素数的起始顺序为1,2,3,5,7,11,以3为例,把要求区间所有3的倍数全部标志为prime原创 2020-09-23 07:47:27 · 196 阅读 · 0 评论