自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 比较有用的函数(私用,持续更新)

1.unique(去重)函数现在总结一下unique,unique的作用是“去掉”容器中相邻元素的重复元素(不一定要求数组有序),它会把重复的元素添加到容器末尾(所以数组大小并没有改变),而返回值是去重之后的尾地址,下面举个例子。由于返回的是容器末尾,所以如果想得到去重后的size,需要减去初始地址; size = unique(b + 1,b + n + 1)-(b + 1); size = unique(a,a + n) - a;#include <iostream>#in

2022-01-06 22:10:17 565

原创 MySQL数据库从入门到入土(动力节点学习笔记)

文章目录一 查询1.1 select 基础语法1.1.2 select参与数学运算1.1.3 给查询结果的列重命名1.2 查询结构1.2.1 show查询1.2.2 desc查询1.2.3 use1.3 条件查询1.4 where1.4.1 查询工资等于5000的员工姓名?1.4.2 找出工资>(=)或<(=)3000的员工?1.4.3 找出工资不等于3000的?1.4.4 找出工资在1100和3000之间的员工,包括1100和3000?1.4.5 找出哪些人津贴为NULL?1.4.6 找出工作

2022-05-17 18:34:12 2280

原创 HDU-1207 汉诺塔II

HDU-1207 汉诺塔II基础汉诺塔思路acwing题解b站视频#include<iostream>#include<algorithm>#include<cstring>#define ull unsigned long longusing namespace std;const int N = 100;ull d[N],f[N];int main(){ d[1] = 1; for(int i=2;i<=N;i++) d[

2021-11-26 17:37:36 543

原创 HDU-2553 N皇后问题

HDU-2553 N皇后问题//打表/*#include<iostream>#include<cstring>using namespace std;const int N = 40;int dx[N],dy[N],dz[N];int n,ans;int cnt[N];void dfs(int r){ if(r>n) { ans++; return; } else { for(int i=1;i<=n;i++) {

2021-11-26 17:17:10 223

原创 zzuli-2853: 小A的游戏昵称

小A的游戏昵称公式推理:我们以3的倍数举例首先我们先得到从0到n有多少可以被3整除即n/d(向下取整),比如11/3=3,即3+3+3+x=11,故我们的到从0到11可以有3个3加上一个3表示,而且这3个3刚好可以表示3,6,9,这三个可以被3整除的整数,故n/d(向下取整)表示从0到n有多少可以被3整除的数的个数。其次,我们得到个数后利用等差数列公式(公差为3),然后推导#include<cstdio>#include<cstring>#include<al

2021-11-17 17:51:06 2936

原创 洛谷-P5019 [NOIP2018 提高组] 铺设道路

P5019 [NOIP2018 提高组] 铺设道路它就是一个贪心。题目里给的样例是4,3,2,5,3,5;可以选择一个区间进行“填坑”操作;所以我们的贪心策略是:若a[i]>a[i-1],计数器sum+=a[i]-a[i-1];那么为什么这样贪心是对的呢?贪心证明假设现在有一个坑,但旁边又有一个坑。你肯定会选择把两个同时减1;那么小的坑肯定会被大的坑“带着”填掉。大的坑也会减少a[i]-a[i-1]的深度,可以说是“免费的”;所以这样贪心是对的;注:由于第一个坑左边没有坑

2021-11-16 17:35:39 464

原创 洛谷-P1219 [USACO1.5]八皇后 Checker Challenge

题目链接#include<bits/stdc++.h>using namespace std;const int N = 40;int a[N],b[N],c[N],d[N];int n,flag;void dfs(int i){ if(i>n) { if(flag<=2) { for(int i=1;i<=n;i++) cout<<a[i]<<" "; cout<<endl; }

2021-11-16 17:26:09 241

原创 洛谷-P1332 血色先锋队(多元bfs)

题目链接在入队的时候,将所有的起点都入队然后统一搜索#include<iostream>#include<queue>#include<cstring>using namespace std;const int N = 510;int mapp[N][N],flag[N][N];int dx[] = {1,-1,0,0},dy[] = {0,0,1,-1} ;int cnt[100000][2];int n,m;struct node{ in

2021-11-16 17:19:46 518

原创 洛谷-P1443 马的遍历 P1434 [SHOI2002]滑雪(记忆化搜索)

题目链接本题关键字:记忆化搜索。首先,这题为什么会想到记忆化?在dfs每种情况是,可能这个点之前已经搜过了,没必要再去搜索了,因此不如存储记住,就没必要再去dfs了。我们可以利用一个数组存入从起点到每一个点所需的最短路径(mapp[next.x][next.y] = mapp[now.x][now.y] + 1;),如果直接用常规的bfs会TLE。#include<bits/stdc++.h>using namespace std;const int N = 400;int

2021-11-16 17:16:44 309

原创 洛谷-P2372 yyy2015c01挑战算周长

题目链接t题目是一个简单的DFS,但是他让计算的是周长,而不是面积,所以我们在找到#include<bits/stdc++.h>using namespace std;const int N = 30;char mapp[N][N];int flag[N][N];int n,m;int dx[8]={-1,0,0,1,-1,-1,1,1},dy[8]={0,-1,1,0,-1,1,-1,1}; int step;int move(int x1,int y1){ i

2021-11-16 16:47:36 807

原创 洛谷-P1162 填涂颜色

题目链接题目大意:给定地图,然后把地图中被1围起来的0变为2解题思路:给点的地图为n * n,我们先将地图四周扩大为n+1*n+1填充0,然后我们从(1,1)出发用dfs遇见1停止,遇见0标记,地图中被1围起来的0我们用dfs进不去所以未标记,最后如果!flag[i][j]&&mapp[i][j]==0 我们输出2,否者就输出mapp[i][j]注:将地图四周扩大为n+1*n+1填充0,是为了防止边缘都是1的情况。#include<iostream>#include&l

2021-11-14 13:05:46 345 1

原创 洛谷-01迷宫

题目链接题目大意:有一个迷宫他只有0 和 1,你每次只可以从0走到1或者1走到0,不能走0 0 或者 1 1,给定地图和某点坐标求最多可以走多少个格子。只需要用DFS找到所有的联通块,联通块内所有的格子的答案都是这个联通块的格子数目。题目中n≤1000,m≤100000如果每个一个点的坐标就遍历一次会TLE,由于是求联通块的格子数目,所以在一个联通块内的可以走过的格子数目应该是一样的,所以我们可以开一个cnt[200010]数组来记录。我们将同一连通块内的flag数组定义为t,下一个连通块t++,最后

2021-11-14 12:47:13 358

原创 洛谷——P1451 求细胞数量

题目链接求联通块有多少个由于题目的输入是一串字符,用scanf读入整数的时候可以控制读入的位数,比如scanf("%1d",&mapp[i][j]);#include<iostream>using namespace std;const int N = 110;int mapp[N][N],flag[N][N];int n,m,cnt;int dx[] = {1,-1,0,0};int dy[] = {0,0,1,-1};void dfs(int x,int

2021-11-14 12:10:45 311

原创 初识STL之map容器

文章目录1.map基本概念2.map构造和赋值3.map大小和交换4.set的插入和删除5.map查找和统计6.map容器排序1.map基本概念简介:map中的所有元素都是pairpair中的第一个元素为key,起到索引作用,第二代元素为value所有元素会根据元素的key自动排序本质:map/multimap属于关联式容器,底层结构式用二叉树实现的.map和multimap区别:map不允许容器里面有重复的key元素multimap允许容器里面有重复的key元素2.map构造

2021-08-22 22:21:24 208

原创 初识STL之set容器

文章目录1.set基本概念2.set构造和赋值1.set基本概念简介:所有的元素都会在插入时自动排序本质:set/multiset属于关联式容器,底层结构式用二叉树实现的.set和multiset区别:set不允许容器里面有重复的元素multiset允许容器里面有重复的元素2.set构造和赋值构造:set<T> st;set<const set& st>;赋值:set& operator=(const set& st);在

2021-08-22 20:47:51 437

原创 初识STL之vector容器

1.vector()基本概念功能:vector数据结构跟数组非常相似,也称为单端数组.vector与普通数组的区别:不同之处在于数组是静态空间,而vector可以动态扩展2.vector构造函数创建vector容器函数原型:vector<T> v;vector(v.begin(),v.end());vector(n,elem);vector(const vector &vec);#include<vector>#include<ios

2021-08-22 16:15:59 242

原创 初识STL之string容器

1.string基本概念本质:string是c++风格的字符串,而string本质上是一个类string和char*区别:char是一个指针string是一个类,类内封装了char,管理这个字符串,是一个char*型的容器.2.string构造函数构造函数原型string(); //创建一个空的字符串string(const char*s); //使用字符串s初始化string(const string& str); //使用一个string

2021-08-20 22:16:42 200

原创 c++的类

1.基础语法class 类名{访问权限:属性/行为};访问权限有三种:1.public 公共权限(类内可以访问,类外也可以访问)2.protected 保护权限(类内可以访问,类外不可以访问)3.private 私有权限(类内可以访问,类外不可以访问)注:protected 保护权限和private 私有权限的区别在如果有父类的话:子类可以访问父类中protected的内容,但不可以访问父类中private的内容例:#include<iostream>#

2021-08-20 11:04:52 170

原创 Constructing Roads

hdu1102将已经有路的城市初始化为0#include<iostream>#include<cstring>#define N 110#define INF 0x3f3f3f3fusing namespace std;int n;int e[N][N],dis[N],flag[N];int main(){ while(cin>>n) { if(n==0)break; for(int i=1;i<=n;i++) for(i

2021-07-28 09:54:59 91

原创 Fence Repair(优先队列)

poj3253priority_queue<int,vector, less > q; //按照元素从大到小的顺序出队priority_queue<int,vector, greater > q; //按照元素从小到大的顺序出队#include<iostream>#include<queue>#define ll long longusing namespace std;priority_queue <ll,vector<ll&g

2021-07-28 09:52:05 156

原创 prim和kruskal模板

poj1258prim和kruskal算法讲解prim#include<iostream>#include<cstring>#define N 110#define INF 0x3f3f3f3f;using namespace std;int n,sum;int e[N][N],dis[N],flag[N];void Prim(){ for(int i=1;i<n;i++) { int minn = INF; int u; for(int

2021-07-28 09:50:03 63

原创 Highways(prim和Kruskal)

poj1751本题的意思是找出生成树中两个城镇直接最短路径的最大值KruskalAC代码先把已经连接的城市用并查集(merge)并到一起,然后根据Kruskal算法输出其他未连通的最短路径即可注意:本题数据过大用kruskal容易超时,注意调整存储#include<iostream>#include<algorithm>#define N 750using namespace std;int f[N];int n;struct node{ int x,y;

2021-07-28 09:46:19 100

原创 Heavy Transportation(最大路径问题)

题目链接poj1797我们可以用dilkstra算法,由于是求最大的货物重量,我们将dis[N]数组的最小min,改为求最大,然后比较max(dis[i],min(dis[v],e[v][i])),根据上式求出来的结果,即为我们所求答案.#include<algorithm>#include<cstring>#include<iostream>#include<cstdio>#define N 1100#define INF 0x3f3f3f3f

2021-07-24 15:53:40 258

原创 求最短路径的模板(Floyd,Dijkstar,Bellman-ford)

一丶Floyd算法思想:在e[i][j]之间加入1个或者多个中间点(中转站)来观察,时候使得e[i][j]的值变小即e[i][j]=e[i][k]+e[k][j].核心代码void Floyd(){ for(int k=1;k<=n;k++) for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) if(e[i][k]<INF&&e[k][j]<INF&&e[i][k]+e[k][j]<e

2021-07-24 15:37:41 71

原创 用两种方法求阶乘的累加和(1050: 阶乘的累加和)

题目描述求1! + 2! + ……n!输入输入一个整数n,你可以假定n不大于10。输出输出一个整数,即阶乘累加的结果,单独占一行。样例输入4样例输出33方法一:用for的循环两次。#include<stdio.h>int main(){ int i,j,n; int sum=0,number; scanf("%d",&n); for(i=1;i<=n;i++) { number=1; for(j=1;j<=i;j++) {

2021-07-20 15:47:31 3456

原创 避免用pow类型导致数据不准确。(1090 整数幂(多实例测试))

题目描述求A^B的最后三位数表示的整数(1<=A,B<=1000)输入n个测试实例,每个实例给出两个正整数A,B输出输出A^B的最后三位(没有前导0)样例输入22 312 6样例输出8984#include <stdio.h>int main(){ int n,a,b,res=1; //n组数据 a是底数 b是指数. scanf("%d",&n); while (n--) { scanf("%d %d",&a,&b

2021-07-20 15:43:38 184

原创 Cyclic Nacklace(最小循环节问题)

题目链接hud3746kmp求最小循环节定理:假设S的长度为len,则S存在最小循环节,循环节的长度L为len-next[len],子串为S[0…len-next[len]-1]。(1)如果len可以被len - next[len]整除,则表明字符串S可以完全由循环节循环组成,循环周期T=len/L。(2)如果不能,说明还需要再添加几个字母才能补全。需要补的个数是循环个数 res = cnt - slen%cnt;int k = Next[slen];int cnt = slen - Next

2021-07-20 15:21:39 102

原创 Simpsons’ Hidden Talents(求两个字符串的公共前后缀)

题目链接hud2594Homer: Marge, I just figured out a way to discover some of the talents we weren’t aware we had.Marge: Yeah, what is it?Homer: Take me for example. I want to find out if I have a talent in politics, OK?Marge: OK.Homer: So I take some politi

2021-07-20 15:17:55 73

原创 Period(求最小循环节进阶)

题目衔接hud1358For each prefix of a given string S with N characters (each character has an ASCII code between 97 and 126, inclusive), we want to know whether the prefix is a periodic string. That is, for each i (2 <= i <= N) we want to know the larges

2021-07-20 15:12:39 100

原创 Power Strings(求最小循环节)

题目链接poj2406Given two strings a and b we define ab to be their concatenation. For example, if a = “abc” and b = “def” then ab = “abcdef”. If we think of concatenation as multiplication, exponentiation by a non-negative integer is defined in the normal way

2021-07-20 15:05:47 109

原创 Seek the Name, Seek the Fame(求一个字符串拥有所有相等的前后缀)

The little cat is so famous, that many couples tramp over hill and dale to Byteland, and asked the little cat to give names to their newly-born babies. They seek the name, and at the same time seek the fame. In order to escape from such boring job, the in.

2021-07-20 15:01:11 246

原创 kmp算法模板题

剪花布条一块花布条,里面有些图案,另有一块直接可用的小饰条,里面也有一些图案。对于给定的花布条和小饰条,计算一下能从花布条中尽可能剪出几块小饰条来呢?Input输入中含有一些数据,分别是成对出现的花布条和小饰条,其布条都是用可见ASCII字符表示的,可见的ASCII字符有多少个,布条的花纹也有多少种花样。花纹条和小饰条不会超过1000个字符长。如果遇见#字符,则不再进行工作。Output输出能从花纹布中剪出的最多小饰条个数,如果一块都没有,那就老老实实输出0,每个结果之间应换行。Sa

2021-07-20 14:41:04 157

原创 bfs专题

一丶Knight MovesA friend of you is doing research on the Traveling Knight Problem (TKP) where you are to find the shortest closed tour of knight moves that visits each square of a given set of n squares on a chessboard exactly once. He thinks that the most

2021-07-16 18:45:15 192

原创 dfs专题

一丶 Oil DepositsThe GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. GeoSurvComp works with one large rectangular region of land at a time, and creates a grid that divides the land into numerous square plots. It t

2021-07-16 18:37:47 182

原创 City Game(单调堆)

City GameBob is a strategy game programming specialist. In his new city building game the gaming environment is as follows: a city is built up by areas, in which there are streets, trees,factories and buildings. There is still some space in the area that

2021-07-13 22:54:02 180

原创 士兵队列训练问题(队列)

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

2021-07-13 22:37:53 1486

原创 Sliding Window(单调队列)

Sliding WindowAn array of size n ≤ 106 is given to you. There is a sliding window of size k which is moving from the very left of the array to the very right. You can only see the k numbers in the window. Each time the sliding window moves rightwards by

2021-07-13 22:31:59 116

原创 Bad Hair Day(单调栈)

Bad Hair DaySome of Farmer John’s N cows (1 ≤ N ≤ 80,000) are having a bad hair day! Since each cow is self-conscious about her messy hairstyle, FJ wants to count the number of other cows that can see the top of other cows’ heads.Each cow i has a specif

2021-07-13 22:23:47 86

原创 愚人节的礼物(栈的简单应用)

愚人节的礼物四月一日快到了,Vayko想了个愚人的好办法——送礼物。嘿嘿,不要想的太好,这礼物可没那么简单,Vayko为了愚人,准备了一堆盒子,其中有一个盒子里面装了礼物。盒子里面可以再放零个或者多个盒子。假设放礼物的盒子里不再放其他盒子。用()表示一个盒子,B表示礼物,Vayko想让你帮她算出愚人指数,即最少需要拆多少个盒子才能拿到礼物。Input本题目包含多组测试,请处理到文件结束。每组测试包含一个长度不大于1000,只包含’(’,’)'和’B’三种字符的字符串,代表Vayko设计的礼物

2021-07-13 21:54:59 215

原创 看病要排队(优先队列)

看病要排队看病要排队这个是地球人都知道的常识。不过经过细心的0068的观察,他发现了医院里排队还是有讲究的。0068所去的医院有三个医生(汗,这么少)同时看病。而看病的人病情有轻重,所以不能根据简单的先来先服务的原则。所以医院对每种病情规定了10种不同的优先级。级别为10的优先权最高,级别为1的优先权最低。医生在看病时,则会在他的队伍里面选择一个优先权最高的人进行诊治。如果遇到两个优先权一样的病人的话,则选择最早来排队的病人。现在就请你帮助医院模拟这个看病过程。Input输入数据包含多组测试

2021-07-13 21:47:48 319

空空如也

空空如也

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

TA关注的人

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