自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【无标题】

最短路算法单源最短路所有边权都正数Dijstra时间复杂度:O(n^2)实现方法:从起点开始每次从未更新过的点中找到距离起点的距离最近的点用这个点更新起点到其余所有点的最短距离更新结束将这个点放入集合,保证集合中装的全部是已经完成最短距离统计的点重复上述操作,每次进入集合一个点,当n次全部结束之后,第n个点进入集合,那么dis[1~n]即为起点到各个点的最短距离代码实现#include<iostream>#include<algorithm

2021-12-23 16:15:48 340

原创 P1162 填涂颜色

题目描述由数字0组成的方阵中,有一任意形状闭合圈,闭合圈由数字1构成,围圈时只走上下左右4个方向。现要求把闭合圈内的所有空间都填写成2.例如:6×6的方阵(n=6),涂色前和涂色后的方阵如下:0 0 0 0 0 00 0 1 1 1 10 1 1 0 0 11 1 0 0 0 11 0 0 0 0 11 1 1 1 1 10 0 0 0 0 00 0 1 1 1 10 1 1 2 2 11 1 2 2 2 11 2 2 2 2 11 1 1 1 1 1输入格式

2021-09-25 10:14:08 153

原创 P3612 [USACO17JAN]Secret Cow Code S

题目描述奶牛正在试验秘密代码,并设计了一种方法来创建一个无限长的字符串作为其代码的一部分使用。给定一个字符串,让后面的字符旋转一次(每一次正确的旋转,最后一个字符都会成为新的第一个字符)。也就是说,给定一个初始字符串,之后的每一步都会增加当前字符串的长度。给定初始字符串和索引,请帮助奶牛计算无限字符串中位置N的字符。输入格式第一行输入一个字符串。该字符串包含最多30个大写字母,并N≤10^18。第二行输入N。请注意,数据可能很大,放进一个标准的32位整数可能不够,所以你可能要使用..

2021-09-22 17:51:59 410

原创 P1217 [USACO1.5]回文质数 Prime Palindromes

题目描述因为 151 既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 是回文质数。写一个程序来找出范围 [a,b](5≤a<b≤100,000,000)( 一亿)间的所有回文质数。输入格式第 1 行: 二个整数 a 和 b .输出格式输出一个回文质数的列表,一行一个。输入输出样例输入 #1复制5 500输出 #1复制5711101131151181191313353373383说明/提示Hint

2021-09-09 15:02:10 101

原创 P3654 First Step (ファーストステップ)

题目背景知らないことばかりなにもかもが(どうしたらいいの?)一切的一切 尽是充满了未知数(该如何是好)それでも期待で足が軽いよ(ジャンプだ!)但我仍因满怀期待而步伐轻盈(起跳吧!)温度差なんていつか消しちゃえってね冷若冰霜的态度 有朝一日将会消失得无影无踪元気だよ元気をだしていくよ拿出活力 打起精神向前迈进吧我们Aqours,要第一次举办演唱会啦!虽然学生会长看上去不怎么支持我们的样子,可是有了理事长的支持,我们还是被允许在校内的篮球场里歌唱!歌曲也好好地准备

2021-09-09 11:09:17 97

原创 P1591 阶乘数码

题目描述求n!中某个数码出现的次数。输入格式第一行为 t(t≤10),表示数据组数。接下来t行,每行一个正整数n(n≤1000)和数码a。输出格式对于每组数据,输出一个整数,表示 n!中a出现的次数。输入输出样例输入 #1复制25 27 0输出 #1复制12#include<bits/stdc++.h>using namespace std;struct bign{ int d[10000]; int len; ...

2021-09-08 15:52:52 680

原创 P1786 帮贡排序

题目背景在absi2011的帮派里,死号偏多。现在absi2011和帮主等人联合决定,要清除一些死号,加进一些新号,同时还要鼓励帮贡多的人,对帮派进行一番休整。题目描述目前帮派内共最多有一位帮主,两位副帮主,两位护法,四位长老,七位堂主,二十五名精英,帮众若干。现在absi2011要对帮派内几乎所有人的职位全部调整一番。他发现这是个很难的事情。于是要求你帮他调整。他给你每个人的以下数据:他的名字(长度不会超过30),他的原来职位,他的帮贡,他的等级。他要给帮贡最多的护法的职位,其

2021-09-08 15:27:34 142

原创 P1065 [NOIP2006 提高组] 作业调度方案

题目描述我们现在要利用m台机器加工n个工件,每个工件都有m道工序,每道工序都在不同的指定的机器上完成。每个工件的每道工序都有指定的加工时间。每个工件的每个工序称为一个操作,我们用记号j-k表示一个操作,其中jj为1到n中的某个数字,为工件号;k为1到m中的某个数字,为工序号,例如2-4表示第2个工件第4道工序的这个操作。在本题中,我们还给定对于各操作的一个安排顺序。例如,当n=3,m=2时,1-1,1-2,2-1,3-1,3-2,2-2就是一个给定的安排顺序,即先安排第1个工件的第1个工序,再.

2021-09-07 10:16:16 111

原创 P1098 [NOIP2007 提高组] 字符串的展开

题目描述在初赛普及组的“阅读程序写结果”的问题中,我们曾给出一个字符串展开的例子:如果在输入的字符串中,含有类似于“d-h”或者“4-8”的字串,我们就把它当作一种简写,输出时,用连续递增的字母或数字串替代其中的减号,即,将上面两个子串分别输出为“defgh”和“45678"。在本题中,我们通过增加一些参数的设置,使字符串的展开更为灵活。具体约定如下:(1) 遇到下面的情况需要做字符串的展开:在输入的字符串中,出现了减号“-”,减号两侧同为小写字母或同为数字,且按照ASCII码的顺序,减号右边的字符

2021-09-06 11:30:00 458

原创 P1067 [NOIP2009 普及组] 多项式输出

题目描述一元nn次多项式可用如下的表达式表示:f(x)=a_nx^n+a_{n-1}x^{n-1}+\cdots +a_1x+a_0,a_n\ne 0f(x)=an​xn+an−1​xn−1+⋯+a1​x+a0​,an​=0其中,a_ix^iai​xi称为ii次项,a_iai​称为ii次项的系数。给出一个一元多项式各项的次数和系数,请按照如下规定的格式要求输出该多项式: 多项式中自变量为x,从左到右按照次数递减顺序给出多项式。 多项式中只包含系数不为0的项。 如.

2021-09-04 00:06:24 357

原创 P1518 [USACO2.4]两只塔姆沃斯牛 The Tamworth Two

题目描述两只牛逃跑到了森林里。Farmer John 开始用他的专家技术追捕这两头牛。你的任务是模拟他们的行为(牛和 John)。追击在10 \times 1010×10的平面网格内进行。一个格子可以是:一个障碍物,两头牛(它们总在一起),或者 Farmer John。两头牛和 Farmer John 可以在同一个格子内(当他们相遇时),但是他们都不能进入有障碍的格子。一个格子可以是:.空地; *障碍物; C两头牛; FFarmer John。这里有一个地图的例子:...

2021-09-03 16:58:05 83

原创 P1328 [NOIP2014 提高组] 生活大爆炸版石头剪刀布

题目描述石头剪刀布是常见的猜拳游戏:石头胜剪刀,剪刀胜布,布胜石头。如果两个人出拳一 样,则不分胜负。在《生活大爆炸》第二季第8集中出现了一种石头剪刀布的升级版游戏。升级版游戏在传统的石头剪刀布游戏的基础上,增加了两个新手势:斯波克:《星际迷航》主角之一。蜥蜴人:《星际迷航》中的反面角色。这五种手势的胜负关系如表一所示,表中列出的是甲对乙的游戏结果。现在,小 A和小 B尝试玩这种升级版的猜拳游戏。已知他们的出拳都是有周期性规律的,但周期长度不一定相等。例如:如果小A以“石头-..

2021-09-03 15:39:57 245

原创 三连击升级版

题目描述将1, 2,\ldots, 91,2,…,9共99个数分成三组,分别组成三个三位数,且使这三个三位数的比例是A:B:CA:B:C,试求出所有满足条件的三个三位数,若无解,输出No!!!。//感谢黄小U饮品完善题意输入格式三个数,A,B,CA,B,C。输出格式若干行,每行33个数字。按照每行第一个数字升序排列。输入输出样例输入 #1复制1 2 3输出 #1复制192 384 576219 438 657273 546 819327 ...

2021-09-03 15:08:17 389

原创 P2089烤鸡

题目背景猪猪 Hanke 得到了一只鸡。题目描述猪猪 Hanke 特别喜欢吃烤鸡(本是同畜牲,相煎何太急!)Hanke 吃鸡很特别,为什么特别呢?因为他有1010种配料(芥末、孜然等),每种配料可以放11到33克,任意烤鸡的美味程度为所有配料质量之和。现在, Hanke 想要知道,如果给你一个美味程度nn,请输出这1010种配料的所有搭配方案。输入格式一个正整数nn,表示美味程度。输出格式第一行,方案总数。第二行至结束,1010个数,表示每种配料所...

2021-09-03 09:30:17 194

原创 统计方形加强版

题目背景1997年普及组第一题题目描述有一个n \times mn×m方格的棋盘,求其方格包含多少正方形、长方形(不包含正方形)。输入格式一行,两个正整数n,mn,m(n \leq 5000,m \leq 5000n≤5000,m≤5000)。输出格式一行,两个正整数,分别表示方格包含多少正方形、长方形(不包含正方形)。输入输出样例输入 #1复制2 3输出 #1复制8 1030分做法#include<bits/stdc++.h&gt...

2021-09-02 22:43:08 360

原创 vector动态数组

定义顺序式容器,动态数组,从末尾能快速插入与删除,直接访问任何元素vetor容器是一个模板类,能存放任何类型的对象定义vector//定义int型数组1.vector<int >a;//定义了整数类型的数组a,默认初始化a为空2.vector<int >b(a);//用a数组去定义b数组3.vector<int >a(100);//定义了一个数组a,默认数组有100个值为0个元素4.vector<int >a(100 , 6).

2021-07-06 18:46:30 276

原创 字符串翻转(坑多题)

题目背景以下为原题面,仅供参考给定一个数,请将该数各个位上数字反转得到一个新数。这次与NOIp2011普及组第一题不同的是:这个数可以是小数,分数,百分数,整数。整数反转是将所有数位对调;小数反转是把整数部分的数反转,再将小数部分的数反转,不交换整数部分与小数部分;分数反转是把分母的数反转,再把分子的数反转,不交换分子与分母;百分数的分子一定是整数,百分数只改变数字部分。整数新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零;小数新数的末尾不为0(除非小数

2021-03-31 00:09:43 116

原创 P1765 手机(输入一行的坑‘\r’)

题目描述一般的手机的键盘是这样的:要按出英文字母就必须要按数字键多下。例如要按出x就得按 9 两下,第一下会出w,而第二下会把w变成x。0 键按一下会出一个空格。你的任务是读取若干句只包含英文小写字母和空格的句子,求出要在手机上打出这个句子至少需要按多少下键盘。输入格式一行句子,只包含英文小写字母和空格,且不超过 200 个字符。输出格式一行一个整数,表示按键盘的总次数。输入输出样例输入i have a dream输出23说明/提示...

2021-03-29 23:02:54 190

原创 P1205 [USACO1.2]方块转换 Transformations

题目描述一块 n×n正方形的黑白瓦片的图案要被转换成新的正方形图案。写一个程序来找出将原始图案按照以下列转换方法转换成新图案的最小方式: 转 90°:图案按顺时针转 90°。 转 180°:图案按顺时针转180°。 转 270°:图案按顺时针转 270°。 反射:图案在水平方向翻转(以中央铅垂线为中心形成原图案的镜像)。 组合:图案在水平方向翻转,然后再按照1 \sim 31∼3之间的一种再次转换。 不改变:原图案不改变。 无效...

2021-03-29 13:56:40 427

原创 未知几行几列的二维数组问题

题目描述设某汉字由N × N的0和1的点阵图案组成。我们依照以下规则生成压缩码。连续一组数值:从汉字点阵图案的第一行第一个符号开始计算,按书写顺序从左到右,由上至下。第一个数表示连续有几个0,第二个数表示接下来连续有几个1,第三个数再接下来连续有几个0,第四个数接着连续几个1,以此类推……例如: 以下汉字点阵图案:0001000000100000011110001000000100000010001111111对应的压缩码是: 7 3 1 6 1 6 4 3 1 6 1 6 1.

2021-03-29 12:19:31 980

原创 Dijkstra算法处理单源最短路径问题

#include<iostream>using namespace std;/*Dijkstra算法处理单源最短路径问题1.用邻接表去存储图的点以及边的关系 2.用一个标记数组来将所有点分成两个部分,一部分为肯定的最短路径点,一部分为预估最短路径点3.首先将源点1到各个点的路径初始化到一个数组内,然后找出最小的点,那么就可以肯定的是源点1到这个点的直线距离一定是最短的,不可能出现中介点,使的源点1到这个点的距离更短然后按照这个思路依次向下推4.将处理好的点用标记数组标记,继续处.

2021-03-25 18:42:07 353

原创 最少转机——图的广度优先遍历

5 71 21 32 32 43 43 54 5#include<iostream>using namespace std;/*1 21 32 32 43 43 54 5*/const int maxn=1000;int arr[maxn][maxn];int mark[maxn]={0};int n,m,a,b,head,tail;struct Queue{ int x; int sum;};int main(){ Queue q.

2021-03-24 23:25:48 51

原创 城市地图——图的深度遍历

5 81 2 21 5 102 3 32 5 73 1 43 4 44 5 55 3 3#include<iostream>using namespace std;/*1 2 21 5 102 3 32 5 73 1 43 4 44 5 55 3 3*/const int maxn=1000;int arr[maxn][maxn];int mark[maxn]={0};int n,m,a,b,c,sum,minn=10000;void df.

2021-03-24 17:58:08 247

原创 图的邻接矩阵存储无向图以及深度遍历和广度遍历模板

5 51 21 31 52 43 5广搜#include<iostream>using namespace std;const int maxn=1000;int mark[maxn]={0}; int arr[maxn][maxn];int n,m,a,b,head,tail;int queue[100];int main(){ //初始化邻接矩阵 cin>>n>>m; for(int i=1;i<=n;i++) {.

2021-03-24 17:22:59 361

原创 深搜水管工

5 4 1 1 15 3 5 31 5 3 02 3 5 16 1 1 51 5 5 4#include<iostream>using namespace std;/*5 3 5 31 5 3 02 3 5 16 1 1 51 5 5 4*/const int maxn=1000;int arr[maxn][maxn];int num[100][2];int mark[maxn][maxn]={0};int n,m,startx,starty,q,.

2021-03-23 17:30:34 55

原创 深广搜宝岛探险

0表示海洋,1-9表示陆地,小哼降落在(6,8),计算出小哼降落的小岛的面积1 2 1 0 0 0 0 0 2 33 0 2 0 1 2 1 0 1 24 0 1 0 1 2 3 2 0 13 2 0 0 0 1 2 4 0 00 0 0 0 0 0 1 5 3 00 1 2 1 0 1 5 4 3 00 1 2 3 1 3 6 2 1 00 0 3 4 8 9 7 5 0 00 0 0 3 7 8 6 0 1 20 0 0 0 0 0 0 0 1 0#include<i

2021-03-23 11:09:21 47

原创 深搜广搜炸弹人

现有一个地图。#:表示墙,.:表示空地,G:表示敌人,现在在空地安放炸弹,求可能炸到敌人的数量最多为?##############GG.GGG#GGG.####.#G#G#G#G##.......#..G##G#.###.#G#G##GG.GGG.#.GG##G#.#G#.#.#.###G...G.....##G#.#G###.#G##...G#GGG.GG##G#.#G#G#.#G##GG.GGG#G.GG##############深搜实现#include<

2021-03-22 21:12:01 93

原创 广度搜索求最短路径练习

0表示空地,1表示障碍物,n行m列的迷宫,最后一行为初始坐标和找寻终点坐标,求最短路径5 40 0 1 00 0 0 00 0 1 00 1 0 00 0 0 11 1 4 3#include<iostream>using namespace std;const int maxn=1000;int arr[maxn][maxn];//初始化地图 int mark[maxn][maxn]={0};//用来记录已经走过的地方 struct Queue{ int x

2021-03-22 17:43:14 128

原创 最短路径深搜,4个方向可走

#include<iostream>using namespace std;/*0 0 1 00 0 0 00 0 1 00 1 0 00 0 0 11 1 4 3*/const int maxn=1000;int p,q,n,m,w=0;int a[100];int arr[maxn][maxn];int mark[maxn][maxn]={0};void dfs(int x,int y,int step){ int next[4][2]={0,1,0,-1.

2021-03-22 12:52:12 377

原创 深搜解决坑爹的奥数全排列

将1-9个数字,填入9个空格中,形如173+286=459是一个合理的组合,注意数字不能重复使用,求合理的组合有多少种#include<iostream>#include<cmath>using namespace std;int mark[10]={0};int a[10];int n;void dfs(int step){ if(step==n+1) { int num1=0,num2=0,num3=0,x=0; for(int i=1;i<

2021-03-22 00:49:40 79

原创 深搜模板全排列

#include<iostream>using namespace std;int n;int mark[11]={0};int a[11];void dfs(int step){ //判断边界 if(step==n+1) { for(int i=1;i<=n;i++) { cout<<a[i]<<" "; } cout<<endl; return; } //循环每一种可能 for(in.

2021-03-22 00:24:33 89

原创 火柴棍等式枚举练习

有n根火柴,希望拼出形如A+B=C的等式,等式中的A.B.C均是用火柴棍拼出来的整数(若该数非零,则最高位不能是0),例如有14根火柴棍,则可以拼出两个不同的等式0+1=1和1+0=1;注意:1.加号和等号各自需要两根火柴棍2.如果A!=B,则A+B=C与B+A=C视为不同的等式(A.B.C都大于0)3.所有根火柴棍必须全部用上假如现在有m根火柴棍(m<=24),那么究竟可以频出多少个不同的等式思考点:A.B.C所能到达的最大数值是多少,既然要最大,那么就要找到0-9中用火柴最

2021-03-21 23:51:32 143

原创 暴力枚举练习:炸弹人

现有一个地图。#:表示墙,.:表示空地,G:表示敌人,现在在空地安放炸弹,求可能炸到敌人的数量最多为?##############GG.GGG#GGG.####.#G#G#G#G##.......#..G##G#.###.#G#G##GG.GGG.#.GG##G#.#G#.#.#####G...G.....##G#.#G###.#G##...G#GGG.GG##G#.#G#G#.#G##GG.GGG#G.GG###############include<iostre

2021-03-21 22:32:18 91

原创 队列扑克游戏队列栈简单应用

#include<iostream>using namespace std;//分别建立队列和栈的结构体 struct queue{ int data[1000]; int head; int tail;};struct stack{ int data[1000]; int top;};//241256//313564int main(){ int mark[10]={0}; int a[6]={2,4,1,2,5,6}; int b[6]={3,1,3,5,6.

2021-03-20 16:13:07 112

原创 栈判断字符串回文

手写栈:​#include<iostream>#include<cstring>using namespace std;//搞一个栈结构体 struct stack{ int data[1000]; int top;};int main(){ //定义栈,初始化栈顶 stack s; s.top=0; //定义并初始化需要判断的字符串 char str[1000]; cin>>str; //拿到字符串长度,并找到字符串中点

2021-03-20 12:17:35 256

原创 洛谷模拟练习魔法少女

题目描述Scarlet最近学会了一个数组魔法,她会在n*nn∗n二维数组上将一个奇数阶方阵按照顺时针或者逆时针旋转90°,首先,Scarlet会把11到n^2n2的正整数按照从左往右,从上至下的顺序填入初始的二维数组中,然后她会施放一些简易的魔法。Scarlet既不会什么分块特技,也不会什么Splay套Splay,她现在提供给你她的魔法执行顺序,想让你来告诉她魔法按次执行完毕后的二维数组。输入格式第一行两个整数n,mn,m,表示方阵大小和魔法施放次数。接下来mm行,每行44个整数x,

2021-03-19 17:06:42 243

原创 复制随机链表

用哈希表的解法详解看笔记node copylistwithrand1(node head){ HashMap<node,node>map=new HashMap<node,node>(); node cur=head; while(cur!=head) { map.put(cur,new node(cur->value)); cur=cur->next; } cur=head; while(cur!=null) { //cur老节点

2021-03-11 14:45:53 113

原创 2021-03-11

内存中的null是计算内存中单独的一块区域A->B->C->NULL如果只给C无法将其变成A->B->NULL(C++中的析构也无法实现)必须用B->next==NULLA->B->C->D->NULL如果对于地址的返回无要求,那么只给当前节点C,可以在链表中去掉,原理并不是真的去掉,而是将这个节点后面的值替换这个节点。然后将其后面的节点删掉node *a=new node;node *b=new node;..

2021-03-11 10:43:32 37

原创 单链表划分值区域

题目:将单向链表按某值划分称左边小,中间相等,右边大的形式给定一个单链表的头节点head,节点的值类型是整型,再给定一个整数pivot,实现一个调整链表的函数,将链表调整为左部分小于pivot的节点,中间部分等于pivot的节点,右部分都是大于pivot的节点数组解法:Node listpartition1(Node head,int pivot){ if(head==null) { return head; } Node cur=head; int i=0; while(c

2021-03-11 10:04:10 304

原创 结构化程序设计与面向对象程序设计

结构化程序设计的基本思想是“自顶向下”,“逐步细化”的设计方法和单入单出的控制结构,将一个大的程序分解成一个个便于管理的小程序模块,但是所有小的模块还是属于整个程序的,因而整个程序设计思想还是需要有很多的变量的,如果在某个地方对其进行更改,则会产生难以预料的影响,并且如果一个问题过于复杂,结构化程序设计的步骤已经超过一个程序员能理清的各个调用关系的数量时,结构化的自顶向下的设计思想就无法使用。(以

2018-01-10 11:19:44 3880

空空如也

空空如也

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

TA关注的人

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