自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(84)
  • 收藏
  • 关注

原创 凸包(2021.8.18-2021.8.19)

参考博客:点击Here步骤:1.先对坐标进行排序,找到最下面的点(y值最小的);如果有多个,选取横坐标最小的点,将其存入栈中(第一个点)2.对其他坐标按照极角从小到大进行排序,极角相同,只留下与P0最远的那个3.将按极角大小排序后的第一个点存入栈中,再依次遍历其他点,如果栈顶俩个元素P1,P2与该点C满足:P2P1 ✖ P2C > 0 ,说明左转,否则弹出栈顶(右转),C入栈4.再用栈顶前俩元素和下一点判断,直到判断完所有点5.最后计算凸包俩点之间距离求和输出练习:题目链接

2021-08-19 14:17:10 97

原创 快速幂-数字权重 (找规律)(2021-8-17))

数字权重题目小a有一个n位的数字,但是它忘了各个位上的数是什么,现在请你来确定各个位上的数字,满足以下条件:设第i位的数为ai,其中a1为最高位,an为最低位,K为给定的数字请你求出满足条件的方案数输入两个整数N, K若存在无解的情况,请输出0输出一个整数表示答案,对109 + 7取模示例1输入2 3输出6说明满足条件的数有:14, 25, 36, 47, 58, 69示例2输入2 -3输出7说明满足条件的数有:41, 52, 63, 74, 85, 96, 30

2021-08-18 00:06:54 255

原创 快速幂 -Yuanyuan Long and His Ballons -环形染色(2021-08-17)

Yuanyuan Long and His Ballons题目One day, Yuanyuan Long gets n white ballons and k kinds of pigment, and he thought a problem: Number these ballons b1, b2, … , bi, …, to bn. Link these ballons to a circle in order, and color these ballons. He

2021-08-17 23:36:26 179

原创 快速幂-Jxc军训 (费马小定理+求概率)(2021-08-17)

Jxc军训题目在文某路学车中学高一新生军训中,Jxc正站在太阳下站着军姿,对于这样的酷热的阳光,Jxc 表示非常不爽。Jxc将天空看做一个nn的矩阵,此时天上有m朵云,这些云会随机分布在m个不同的位置,同时太阳会随机出现在一个位置,Jxc想知道他被太阳晒到的概率是多少,由于他仍在站军姿,所以这个有趣的问题就交给了你。考虑到精度问题,Jxc只需要知道这个概率在对998244353取模意义下的值。Tips:一个分数p/q在模意义下的值即pq-1在模意义下的值,X^(p-1) ≡ 1 (mod p)输入

2021-08-17 23:07:10 253

原创 矩阵快速幂-又见斐波那契 (2021-8-17)

又见斐波那契题目这是一个加强版的斐波那契数列。给定递推式求F(n)的值,由于这个值可能太大,请对109+7取模。输入第一行是一个整数T(1 ≤ T ≤ 1000),表示样例的个数。以后每个样例一行,是一个整数n(1 ≤ n ≤ 1018)。输出每个样例输出一行,一个整数,表示F(n) mod 1000000007。示例1输入4123100输出11657558616258关于构造方阵的小技巧:(1)递推式有几项,矩阵有几行,但是对于中间缺项的,要补上。(2)配

2021-08-17 22:48:21 321

原创 好位置 (kmp)(确定主串是不是模式串的循环串)(2021-08-16)

好位置题目给出两个串s和x,定义s中的某一位i为好的位置,当且仅当存在s的子序列满足y=x且存在j使得i=kj成立。问s中是否所有的位置都是好的位置。输入一行两个字符串s,x,这两个串均由小写字母构成。1 <= |s|, |x| <= 200000输出Yes表示是。No表示不是。示例1输入ababab输出Yes示例2输入abacabaaba输出No示例3输入abcba输出No转载于:原版点击Here(1)首先,说说这个题吧,看起来短小简

2021-08-16 10:41:23 91

原创 子串 (kmp+十进制数转换为r进制数)(2021-08-15)

子串题目给出一个正整数n,我们把1…n在k进制下的表示连起来记为s(n,k),例如s(16,16)=123456789ABCDEF10, s(5,2)=11011100101。现在对于给定的n和字符串t,我们想知道是否存在一个k(2 ≤ k ≤ 16),使得t是s(n,k)的子串。输入:第一行一个整数n(1 ≤ n ≤ 50,000)。第二行一个字符串t(长度 ≤ 1,000,000)输出:“yes"表示存在满足条件的k,否则输出"no”示例1输入801112输出yeskmp:推

2021-08-16 00:17:19 134

原创 字符串的问题 (kmp的next数组)(2021-08-15)

字符串的问题题目有一个字符串 让你找到这个字符串 S 里面的子串T 这个子串 T 必须满足即使这个串的前缀 也是这个串的后缀 并且 在字符串中也出现过一次的(提示:要求满足前后缀的同时也要在字符串中出现一次 只是前后缀可不行 输出最长满足要求字符串)输入:给出一个字符串 长度 1 到 1e6 全部是小写字母输出:如果找的到就输出这个子串T 如果不行就输出 Just a legend示例1输入fixprefixsuffix输出fix示例2输入abcdabc输出Just a l

2021-08-16 00:03:39 156

原创 欧拉图 + 并查集 (虚虚实实)(2021-8-13)

虚虚实实题意:算卦先生来问你,对于每个他给出的无向图,是否存在一条路径能够经过所有边恰好一次,并且经过所有点?不需要满足最后回到起点。 (欧拉通路+欧拉图)输入:第一行一个数 T,表示有 T 组数据。对与每组数据,第一行有两个数 n,m,接下去 m 行每行两个数 u,v 描述一条无向边 (u,v)。图不保证联通。输出:对于每组数据,如果存在,输出"Zhen" ,否则输出 “Xun” 。示例1输入22 21 12 14 61 31 41 23 24 24 3输出Zhe

2021-08-14 16:04:51 164

原创 BF字符串 (201.8.14)

步骤:s主串 t模式串j指向主串 k指向模式串如果此时俩个串中位置上的字符相同 j++,k++如果不同j返回到此轮下标的下一个,k返回到起点(j=j-k+1,k代表此轮查找匹配了的长度,也是j在此轮向后移动的距离)k==t.length()说明找到了,反之没找到返回的是模式串在主串中第一次出现的下标#include<iostream>using namespace std;int main(){ string s,t; // s 主串 下标j // t 模式串

2021-08-14 15:43:32 75

原创 并查集+01背包(经商)(2021-8-14)

经商题意:小d是一个搞房地产的土豪。每个人经商都有每个人经商的手段,当然人际关系是需要放在首位的。小d每一个月都需要列出来一个人际关系表,表示他们搞房地产的人的一个人际关系网,但是他的精力有限,对应他只能和能够接触到的人交际。比如1认识2,2认识3,那么1就可以接触3进行交际,当然1和2也可以交际。(并查集:可交际的朋友)小d还很精明,他知道他和谁交际的深获得的利益大,接下来他根据自己的想法又列出来一个利益表,表示他和这些人交际需要耗用多少精力,能够获得的利益值为多少。小d想知道,他在精力范围内,

2021-08-14 15:31:23 95

原创 toposort 并查集 优先队列 (Hash Function)(2021-08-12)

题目Chiaki has just learned hash in today’s lesson. A hash function is any function that can be used to map data of arbitrary size to data of fixed size. As a beginner, Chiaki simply chooses a hash table of size n with hash function h(x) = x \bmod nh(x)=xmo

2021-08-13 00:42:24 92

原创 bitset+ Toposort (可达性统计) (2021.8.12)

可达性统计题目给定一张N个点M条边的有向无环图,分别统计从每个点出发能够到达的点的数量。N,M≤30000。输入:第一行两个整数N,M,接下来M行每行两个整数x,y,表示从x到y的一条有向边。输出:共N行,表示每个点能够到达的点的数量。示例1输入10 103 82 32 55 95 92 33 94 82 104 9输出1633211111思路: 该点可达点个数=该点直接到达点的个数+他到达点可到达点的个数+1(自己)(有点像递归)方法:(1

2021-08-13 00:32:23 86

原创 Dizzy Cows (理解有向无环图)(2021-08-12)

Dizzy Cows题目The cows have taken to racing (have taken to doing sth 做某事很费劲) each other around the farm but they get very dizzy(头晕目眩的) when running in circles, and everyone knows that dizzy cows don’t produce any milk. Farmer John wants to convert(改变) all

2021-08-13 00:17:10 161

原创 (Cow Contest)Floyd 求俩点是否可达 (2021-8-12)

Cow Contest题意:N (1 ≤ N ≤ 100) cows, conveniently(便利地) numbered 1…N, are participating in a programming contest. As we all know, some cows code better than others. Each cow has a certain constant(连续不断的) skill rating that is unique among the competitors.T

2021-08-12 23:31:04 95

原创 Toposort模板 + 食物链例题(2021.8.11)

Toposort(邻接表实现)(一)步骤:(1)找入度为0的点加入队列(2)删点和它连接着的边(3)重复(1)(2)直到队列为空(4)得到拓扑序列(eg:学数据结构发生在学C语言之后,得到的是先后关系,不唯一ao)(二)模板:#include<iostream>#include<vector>#include<queue>using namespace std;const int maxn=1e5+5;struct Edge{ int to;

2021-08-11 20:34:52 309

原创 并查集 板子题 思维 & dfs(2021-8-10)(2021-8-11)

Call to your teacher题意:从实验室出来后,你忽然发现你居然把自己的电脑落在了实验室里,但是实验室的老师已经把大门锁上了。更糟的是,你没有那个老师的电话号码。你开始给你知道的所有人打电话,询问他们有没有老师的电话,如果没有,他们也会问自己的同学来询问电话号码。那么,你能联系到老师并且拿到电脑吗?输入:存在多组测试样例每组样例的第一行分别是两个整数n(1<n<=50),m(1<m<=2000),n是在题目当中出现的人数,其中你的序号是1号,实验室老师的序号是

2021-08-11 01:05:27 190 1

原创 最小生成树- Prim & Kruskal(并查集) (2021-8-10)

回顾最短路径:Dijkstra, Floyd, Bellman-ford强连通分量:kosaraju图的遍历:bfs,dfs最小生成树:prim, kruskal最小生成树重要前提:从全局考虑,相当于修路,路径要短且要每个点都连通(直接或间接可达)prim:从点出发(1)给定一个起点,先纳入点域(2)把和点域相邻的最短边连接的点纳入点域(3)重复(2)(4)直到所有点纳入点域(有点像dijkstra,松弛操作不同,集合到点最短距离)kruskal:从边出发(邻接表 边集 k

2021-08-10 23:38:26 84

原创 最优乘车 (dijkstra+邻接矩阵) (2021-8-10)

最优乘车题意H城是一个旅游胜地,每年都有成千上万的人前来观光。为方便游客,巴士公司在各个旅游景点及宾馆,饭店等地都设置了巴士站并开通了一些单程巴上线路。每条单程巴士线路从某个巴士站出发,依次途经若干个巴士站,最终到达终点巴士站。一名旅客最近到H城旅游,他很想去S公园游玩,但如果从他所在的饭店没有一路已士可以直接到达S公园,则他可能要先乘某一路巴士坐几站,再下来换乘同一站台的另一路巴士, 这样换乘几次后到达S公园。现在用整数1,2,…N 给H城的所有的巴士站编号,约定这名旅客所在饭店的巴士站编号为1…

2021-08-10 14:38:40 208

原创 bfs(图的最短路径)+优先队列 (2021-8-9)

刺客信条题意小A就将操控艾吉奥从佛罗伦萨庄园出发,前往梵蒂冈,夺取教皇权杖。在整个过程中,每经过一个建筑,都需要花费一定的时间,需要特别注意的是,由于圣母百花大教堂、圣马可大教堂、乔托钟楼都有众多圣殿骑士守护,经过这三个地方时,你需要花费100的时间 ,小A已经急不可耐地想要通关了,所以希望花费最少的时间到达梵蒂冈,请你帮他计算一下,从佛罗伦萨庄园到梵蒂冈,最快需要多少时间?(注:最短路径不一定耗时最小)输入第一行有两个整数,表示地图的行数n和列数m,地图为一个n×m的矩阵接下来有n行,每行m

2021-08-10 00:18:29 260

原创 Floyd & Bellman-ford (2021-8-8)

Floyd1.求 多源最短路径2.不含有“负权环”步骤:k 中介点 [1,n]i 起点 [1,n]j 终点 [1,n]n 总结点数从起点到终点有没有一条路是经过:1.从起点i到中介点k2.从中介点k到终点j且距离比之前自己的从起点i到终点j的最短路径还小,如果有的话,找到更新(从起点i到终点j的最短路)即可中介点所在的行列以及矩阵的主对角线不会更新模板:(缺点:二维数组注意内存超限)#include<iostream>using namespace std;

2021-08-09 00:27:40 44

原创 dijkstra+小根堆优化 (2021-8-8)(2021-8-9)

Dijkstra1.求解单源最短路径2.针对 “点”3.不能计算负权值4.每次选权值最小的进行松弛操作超时优化:1.小根堆2.重载运算符例1小木乃伊到我家链接:https://ac.nowcoder.com/acm/problem/15549来源:牛客网题目描述快递姐姐到AA家的最短距离输入描述第一行输入两个整数n和m(2<=n<=m<=200000),分别表示有n座城市和m条路,城市编号为1~n(快递姐姐所在城市为1,AA所在城市为n)。接下来m行,每行输

2021-08-08 23:05:29 161

原创 图的储存方式(邻接矩阵+邻接表)(2021-8-3补)

(一)邻接矩阵例1:Input多组输入,到文件结尾。每一组第一行有两个数n、m表示n个点,m条有向边。接下来有m行,每行两个数u、v代表u到v有一条有向边。第m+2行有一个数q代表询问次数,接下来q行每行有一个询问,输入两个数为a,b。注意:点的编号为0~n-1,2<=n<=5000 ,n*(n-1)/2<=m<=n*(n-1),0<=q<=1000000,a!=b,输入保证没有自环和重边Output对于每一条询问,输出一行。若a到b可以直接连通输出Yes,

2021-08-08 10:57:57 96

原创 dijkstra+下标为字符串(map转换编号)(2021-08-07)

HDU Today题意:徐总对当地的交通还是不太了解。想去一个地方又不知道应该乘什么公交车,在什么地方转车,在什么地方下车。请帮助他用最短的时间到达目的地(假设每一路公交车都只在起点站和终点站停,而且随时都会开)。Input:输入数据有多组,每组的第一行是公交车的总数N(0<=N<=10000);第二行有徐总的所在地start,他的目的地end;接着有n行,每行有站名s,站名e,以及从s到e的时间整数t(0<t<100)(每个地名是一个长度不超过30的字符串)。note

2021-08-07 22:32:38 97

原创 dijkstra+矩阵逆转+vector邻接表(2021-8-6)

Silver Cow Party题意One cow from each of N farms (1 ≤ N ≤ 1000) conveniently numbered 1…N is going to attend the big cow party to be held at farm #X (1 ≤ X ≤ N). A total of M (1 ≤ M ≤ 100,000) unidirectional(单向的) (one-way roads connects pairs of farms; roa

2021-08-07 15:44:06 86

原创 dijkstra变形(vector邻接表)(求最大载重量)(2021-8-6)

Heavy Transportation题意:You are given the plan of the city, described by the streets (with weight limits) between the crossings, which are numbered from 1 to n. Your task is to find the maximum weight that can be transported from crossing 1 (Hugo’s place)

2021-08-07 13:00:30 125

原创 Dijkstra+vector实现邻接表+优化(相邻村val=0并连接)(2021-8-6)

一个人的旅行题意:草儿决定在要在最短的时间去一个自己想去的地方!因为草儿的家在一个小镇上,没有火车经过,所以她只能去邻近的城市坐火车。输入:输入数据有多组,每组的第一行是三个整数T,S和D,表示有T条路,和草儿家相邻的城市的有S个,草儿想去的地方有D个;接着有T行,每行有三个整数a,b,time,表示a,b城市之间的车程是time小时;(1=<(a,b)<=1000;a,b 之间可能有多条路)接着的第T+1行有S个数,表示和草儿家相连的城市;接着的第T+2行有D个数,表示草儿想去地

2021-08-07 10:38:31 420

原创 vector+kosaraju点对u<==>v (2021-8-5)

题目描述小猫在研究有向图。小猫在研究联通性。给定一张N个点,M条边的有向图,问有多少点对(u,v)(u<v),满足u能到达v且v也能到达u。输入描述第一行两个正整数N,M,表示点数与边数。接下来M行,第i行两个正整数ui,vi,表示一条从ui到vi的边,保证ui≠vi。输出描述一行一个整数,表示点对数量。示例输入:3 31 22 33 2输出:1思路:(1)Kosaraju:1.对原图进行dfs,后序记录顶点2.每次选择栈顶的元素出栈,对反图进行dfs,标记能够遍历

2021-08-05 17:09:55 130

原创 Kosaraju(科萨拉朱)求强连通分量 (2021-8-5)

kosaraju 强连通分量强连通图:任意俩点之间均可达以下总结均为视频笔记:视频地址结论:(1)无向图:共执行几次dfs遍历完全图,就是几个连通分量(2)有向图:1.对原图G1进行dfs,记录顶点2.每次选择栈顶的顶点(出栈),对反图G2进行dfs,标记能够遍历的顶点,这些顶点构成一个强连通分量3.如果还有顶点没有标记,继续step2,否则算法结束原理:1.反图与原图的强连通分量是相同的2.若原图能从分量1走到分量2,则反图不能从分量1走到分量2图:(1)原图 (2)反图(

2021-08-05 10:29:50 119

原创 图的dfs+bfs (2021-8-4)

C - A Knight’s Journey题意:Whenever a knight moves, it is two squares(正方形) in one direction and one square perpendicular(直立的) to this. (一个方向上的俩个正方形即“日”)Find a path such that the knight visits every square once. (一条路可以走过方格里所有的点dfs)输入:The input begins wit

2021-08-04 18:51:03 49

原创 图的dfs+bfs (2021-8-4)

D - Catch That Cow**题意:**He starts at a point N (0 ≤ N ≤ 100,000) on a number line and the cow is at a point K (0 ≤ K ≤ 100,000) on the same number line. Farmer John has two modes of transportation: walking and teleporting(传送).Walking: FJ can move from

2021-08-04 16:34:44 30

原创 图的dfs+bfs (2021-8-4)

E - 迷宫问题题意:定义一个二维数组:int maze[5][5] = {0, 1, 0, 0, 0,0, 1, 0, 1, 0,0, 0, 0, 0, 0,0, 1, 1, 1, 0,0, 0, 0, 1, 0,};它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短路线。输入:一个5 × 5的二维数组,表示一个迷宫。数据保证有唯一解。输出:左上角到右下角的最短路径,格式如样例所示。样例:输入:

2021-08-04 15:41:43 48

原创 图的dfs+bfs(2021-08-04)

A-Oil Deposits题意:If two pockets are adjacent(相邻的), then they are part of the same oil deposit. Oil deposits can be quite large and may contain numerous pockets. Your job is to determine how many different oil deposits are contained in a grid.输入:The input

2021-08-04 15:10:40 97

原创 广度优先搜索+队列 - Knight Moves(2021-7-23))

Knight (骑士)Moves题目链接BackgroundMr Somurolov, fabulous chess-gamer indeed, asserts(断言) that no one else but him can move knights from one position to another so fast. Can you beat him?The ProblemYour task is to write a program to calculate the minimum n

2021-07-24 01:22:44 229 2

原创 模拟队列-士兵队列训练问题(2021-7-23)

士兵队列训练问题题目链接某部队进行新兵队列训练,将新兵从一开始按顺序依次编号,并排成一行横队,训练的规则如下:从头开始一至二报数,凡报到二的出列,剩下的向小序号方向靠拢,再从头开始进行一至三报数,凡报到三的出列,剩下的向小序号方向靠拢,继续从头开始进行一至二报数。。。,以后从头开始轮流进行一至二报数、一至三报数直到剩下的人数不超过三人为止。Input本题有多个测试数据组,第一行为组数N,接着为N行新兵人数,新兵人数不超过5000。Output共有N行,分别对应输入的新兵人数,每行输出剩下的新兵最

2021-07-23 23:41:02 222

原创 递推-骨牌铺方格 II (2021-07-23)

T - Tiling_easy version有一个大小是 2 x n 的网格,现在需要用2种规格的骨牌铺满,骨牌规格分别是 2 x 1 和 2 x 2,请计算一共有多少种铺设的方法。Input输入的第一行包含一个正整数T(T<=20),表示一共有 T组数据,接着是T行数据,每行包含一个正整数N(N<=30),表示网格的大小是2行N列。Output输出一共有多少种铺设的方法,每组数据的输出占一行。Sample Input32812Sample Output317127

2021-07-23 00:53:55 189

原创 递推-骨牌铺方格 (2021-07-22)

骨牌铺方格题目链接在2×n的一个长方形方格中,用一个1× 2的骨牌铺满方格,输入n ,输出铺放方案的总数.例如n=3时,为2× 3方格,骨牌的铺放方案有三种,如下图: Input输入数据由多行组成,每行包含一个整数n,表示该测试实例的长方形方格的规格是2×n (0<n<=50)。Output对于每个测试实例,请输出铺放方案的总数,每个实例的输出占一行。Sample Input132Sample Output132提交次数:3次(超时,数组错误)坑点:(1)f(n

2021-07-23 00:49:48 110

原创 又见GCD(2021-07-22)

又见GCD有三个正整数a,b,c(0<a,b,c<10^6),其中c不等于b。若a和c的最大公约数为b,现已知a和b,求满足条件的最小的c。Input第一行输入一个n,表示有n组测试数据,接下来的n行,每行输入两个正整数a,b。Output输出对应的c,每组测试数据占一行。Sample Input26 212 4Sample Output48提交次数:10次坑点:(1)当a是c的倍数时,2b可能不是最大公约数(2)每次循环注意赋初值,不要在求最大公约数时,改变输入值

2021-07-23 00:38:15 135

原创 新生晚会(2021-7-22)

新生晚会题目链接开学了,杭电又迎来了好多新生。ACMer想为新生准备一个节目。来报名要表演节目的人很多,多达N个,但是只需要从这N个人中选M个就够了,一共有多少种选择方法?Input数据的第一行包括一个正整数T,接下来有T组数据,每组数据占一行。每组数据包含两个整数N(来报名的人数,1<=N<=30),M(节目需要的人数0<=M<=30)Output每组数据输出一个整数,每个输出占一行Sample Input53 25 34 43 68 0Sample

2021-07-23 00:30:30 91

原创 求n个数的最小公倍数(2021-07-22)

Lowest Common Multiple Plus题目链接Input输入包含多个测试实例,每个测试实例的开始是一个正整数n,然后是n个正整数。Output为每组测试数据输出它们的最小公倍数,每个测试实例的输出占一行。你可以假设最后的输出是一个32位的整数。Sample Input2 4 63 2 5 7Sample Output1270提交次数:4次坑点:计算最小公倍数时,要其中一个数先除以最大公因数,然后再乘以另一个数,否则超限,导致错误#include<iostre

2021-07-23 00:12:06 143

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除