自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 蓝桥杯备赛--二分查找

算法训练:二分查找

2022-05-21 14:45:49 482

原创 蓝桥杯必会数据结构-栈、队列与优先队列

一、stack栈栈的规则就是先进后出FILO(First In Last Out),即先入栈的元素最后一个出栈,比如子弹的弹夹,先压到底的子弹最后打出。#include<iostream>#include<stack>using namespace std;int main() { stack<int> s; //使用push()向栈中压入元素 for(int i = 0; i < 5; i++) s.push(i); while(!

2022-03-17 00:47:04 1536

原创 蓝桥杯备赛-常用数据结构vector、set和map

一、vector不定长数组vector,相比c语言原生的数组,可以作为函数参数或返回值,可以任意修改大小。使用方法如下:#include<iostream>#include<vector>using namespace std;//参数是一个vector的引用,实际上vec的地址就是v的地址void addNum(vector<int>& vec) { for(int i = 0; i < 5; i++) { vec.push_back

2022-03-14 21:14:39 2290

原创 蓝桥杯省赛备战-常用函数

蓝桥杯必会常用知识

2022-03-10 22:21:11 721

原创 前后端分离 Spring Security 对登出.logout()的处理

前端axios发出的post请求如下 logout() { this.axios.post(this.tools.serverAddr+'/logout') .then(function () { this.$message({ message: "注销成功", type: 'success', duration: 1000 });

2022-02-18 14:24:17 2108 1

原创 PageRank算法的MapReduce实现(输入有向图,迭代收敛)

输入为网页有向图的邻接表:通过统计输入文件的行数,即可得之网页总数为4每个网页的初值为1/N,即0.25第一行输入经过map处理后,得到如下结果:B 0.0833C 0.0833D 0.0833同理,第二三四行经过map处理后,得到:A 0.125D 0.125C 0.25B 0.125C 0.125系统会自动对map的输出进行shuflle处理,即对key进行排序,将相同key的value合并成一个列表。即A 0.125B 0.0833 0.125C 0.083

2021-12-26 16:12:34 1967 1

原创 【JAVA全栈】定义EL函数处理字符串中的回车换行符和空格符

由于学校的教程过于古老,现在的eclipse已经不能创建当时的.tld文件了,自己手敲很难跑通,故附上代码以供大家参考。项目结构如图所示。直接粘代码了最难找的.tld文件<?xml version="1.0" encoding="UTF-8" ?><taglib xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schema

2021-12-09 20:39:06 833

原创 习题6-8 空间结构(Spatial Structures, ACM/ICPC World Finals 1998, UVa806)

输出格式上需要注意细节#include<cstdio>#include<cstring>#include<vector>#include<algorithm>using namespace std;int n;char buf[100][100];int s[100];int v[10000];vector<int> ans;//十进制数转成翻转的五进制 void ten_to_five(int x) { int cn

2021-08-08 11:50:57 125

原创 习题6-7 Petri网模拟 (Petri Net Simulation, ACM/ICPC World Finals 1998, UVa804)

理解题意后不难#include<cstdio>#include<cstring>#include<vector>#include<algorithm>using namespace std;int NP, NT, n;int tokens[110];char s[1000];vector<int> from[110];vector<int> to[110];int main() { #ifdef LOCA

2021-08-02 16:42:07 222

原创 习题6-6 修改天平 (Equilibrium Mobile, NWERC 2008, UVa12166)

思路:        平衡的天平每层的结点质量相等,若第n层的一个结点质量为k,则第n-1层的结点质量为2k, 第n+1层的结点质量为k/2。所以知道一个已平衡的天平任意一层的一个结点,则可以得出此天平的任意一个结点的质量,也可以得出整个天平的质量。        若要使变换的次数最少,找出与与所给天平最接近的平衡天平即可。题目给出了一个天平的所

2021-08-02 14:16:43 159

原创 习题6_5 巡逻机器人(Patrol Robot, ACM/ICPC Hanoi 2006, UVa1600)

越障可以拐弯,一个障碍可能被不同路线所经过,所以普通的dfs不行,再加一个维度step,表示走到此结点越过的障碍数#include<cstdio>#include<cstring>#include<queue>using namespace std;struct Node { int r, c, step; // step为连续走过的障碍数,不能超过k Node(int r=0, int c=0, int step=0):r(r),c(c),step(s

2021-06-30 21:22:51 174 1

原创 2021蓝桥杯国赛B组C/C++个人记录

以下为个人场上所提交答案,欢迎大家指出错误,后续会更正正确题解。个人提交:25说明: Mbps是M bit per second, MB是 M Byte,bit是比特,Byte是字节,1Byte=8bit, 200/8=25个人提交:21844 (有误)改正:1903说明:只有每个位都为1、3、5、7之一才是题目所说的纯质数。还有一个条件当时没注意到,这个数本身也要是素数,应该先用埃氏筛法。代码:#include<cstdio>#include<cstring>

2021-06-06 22:43:54 7724 56

原创 习题6-4 骑士的移动(Knight Moves,UVa 439)

题目描述:        输入标准8*8国际象棋上的两个格子(列用a ~ h表示,行用1 ~ 8表示),求马最少需要多少步从起点跳到终点。AC代码:#include<cstdio>#include<cstring>#include<queue>using namespace std;struct Node { int r; char c; Node(int r=0, ch

2021-05-13 21:02:10 229 1

原创 习题6_2 S树(S-Trees, UVa712)

AC代码:#include<cstdio>#include<cstring>int n, m;char x[7][4];char s[1<<7], s2[1<<7];int main() { #ifdef LOCAL freopen("input.txt", "r", stdin); freopen("output.txt", "w", stdout); #endif int kase = 0; while(scanf("%d",

2021-05-13 16:48:18 224

原创 习题6_3 二叉树重建(Tree Recovery, ULM 1997, UVa536)

题目描述:输入一棵树的先序遍历和中序遍历序列,输出后序遍历序列AC代码:#include<cstdio>#include<cstring>const int MAX_N = 30;char pre_order[MAX_N], in_order[MAX_N];int lch[MAX_N], rch[MAX_N];char root;//根据前序 L1~R1, 中序 L2~R2构造二叉树 int build(int L1, int R1, int L2, int

2021-05-13 16:05:59 170

原创 习题6_1 平衡的括号(Parentheses Balance, UVa 673)

题目描述:输入一个包含"()“和”[]"的括号序列,判断是否合法。具体规则如下:        空串合法。        如果A和B都合法,则AB合法。        如果A合法,则(A)和[A]都合法。AC代码:#include<cstdio>#include<stack>#include<cstring>using

2021-05-12 09:35:59 349

原创 算法竞赛入门经典 数组实现树的层序遍历的一个小错误

p154 紫书原文:纠正一下这里的newnode()函数中,have_value[root] = false 应该是 have_value[u] = false附上代码,不知道原题的可以上网搜一下 例题6_7 Uva122树的层序遍历数组(静态链表)实现:#include<cstdio>#include<cstring>#include<vector>#include<queue>using namespace std;const int

2021-04-25 15:17:49 155

原创 C++编译错误reference to ‘‘ is ambigious

在写二叉树的层次遍历时遇到这个问题原来是left和iostrem库里的left重复了,给这个变量改个名字,或者不用iostream就好了删掉iostream就好了原来名字定义有冲突就会报这个错,记录一下

2021-04-25 14:07:09 719 3

原创 习题5_9 找bug(Bug Hunt, ACM/ICPC Tokyo 2007, UVa1596)

题目描述:        输入并模拟执行一段程序,输出第一个bug所在的行。每行程序有两种可能:        1.数组定义,格式为arr[size]。例如a[10]或者b[5],数组名是单个字母,可用下标分别是 0 ~ 9 和 0 ~ 4 。定义之后所有元素均为未初始化状态。     &nbs

2021-04-13 16:17:47 338

原创 习题5_8 图书管理系统(Borrowers, ACM/ICPC World Finals 1994, UVa230)

题目描述:        你的任务是模拟一个图书管理系统。首先输入若干图书的标题和作者(标题各不相同,以END结束),然后是若干指令:BORROW指令表示借书,RETURN指令表示还书,SHELVE指令表示把所有已归还但还未上架的图书排序后一次插入书架并输出图书标题和插入位置(可能是第一本书或者某本书的后面,也可能是最前面)。        图书

2021-04-12 22:16:27 230

原创 习题5_7 打印队列(Printer Queue, ACM/ICPC NWERC 2006, UVa12100)

题目描述:       学生会里只有一台打印机,但是有很多文件需要打印,因此打印任务不可避免地需要等待。有些打印任务比较急,有些不那么急,所以每个任务都有一个1~9间的优先级,优先级越高表示任务越急。       打印机的运作方式如下:首先从打印队列里取出一个任务J,如果队列里有比J更急的任务,则直接把J放到打印队列尾部,否则打印任务J(此时不会把它放回打印队列)。

2021-04-12 19:46:03 435 3

原创 习题5_6 对称轴(Symmetry, ACM/ICPC Seoul, UVa1595)

题目描述:        给出平面上N(1<=1000)个点,(-10000 <= x, y <= 10000),问是否可以找到一条竖线,使得所有点左右对称。如图,左边的有对称轴,右边的没有。思路:        如果对称轴存在,那么位置一定在中间,那么就好办了,判断(min_x + max_x)/2是不是对称轴就好了#i

2021-04-12 19:04:07 198

原创 习题5_5 复合词(Compund Words, UVa 10391)

题目描述:        给出一个词典,找出所有复合词,即恰好有两个单词连接而成的单词。输入每行都是一个由小写字母组成的单词。输入已按照字典序列从小到大排序。且不超过120000个单词。输出所有复合词,按照字典序从小到大排序。#include<cstdio>#include<iostream>#include<cstring>#include<string>#incl

2021-04-12 15:14:47 298

原创 pair, vector, map的巧用练习

习题5_4 交换学生(Foreign Exchange, UVa 10763)题目描述:        有n(1 <= n <= 500000)个学生想交换到其他学校学习。为了简单起见,规定每个想从A学校换到B学校的学生必须找一个想从B换到A的“搭档”。如果每个人都能找到搭档(一个人不能当多个人的搭档),学校就会同意他们交换。每个学生用两个整数A、B表示,你的任务是判断交换是否可以进行#include&lt

2021-04-11 21:03:38 139

原创 queue练习

习题5_3 卡片游戏(Throwing cards away I, UVa 10935)题目描述:        桌上有n(n <= 50)张牌,从第一张牌(即位于顶面的牌)开始,从上往下依次编号为1~n。当至少还剩下两张牌时进行以下操作:把第一张牌扔掉,然后把新的第一张牌放到整叠牌的最后。输入每行包含一个n,输出每次扔掉的牌以及最后剩下的牌。#include<iostream>#include&lt

2021-04-11 20:54:53 144

原创 set和vector容器巧用练习

习题5_2 Ducci序列(Ducci Sequence, ACM/ICPC Seoul 2009, UVa1594)题目描述:        对于一个元组(a1,a2…,an),可以堆每个数求出它和下一个数的差的绝对值,得到一个新的n元组(|a1-a2|, |a2-a3|, …, |an-a1|)。重复这个过程,得到的序列称为Ducci序列,例如(8, 11, 2, 7) -> (3, 9, 5, 1) ->

2021-04-11 20:39:01 155

原创 vector练习 / 流式读写字符串

习题5_1 代码对齐(Alignment of Code, ACM/ICPC NEERC 2010, UVa1593)题目描述:        输入若干行代码,要求各列单词的左边界对齐并且尽量靠左。单词之间至少要空一格。每个单词不超过80个字符,每行不超过180个字符,一共最多1000行。样例输入与输出如图所示:#include<cstdio>#include<iostream>#inclu

2021-04-11 20:27:24 207

原创 jQuery实现鼠标拖动div改变位置、大小

实现类似windows窗体的效果,在中间拖动改变div位置,在边缘拖动改变div大小,鼠标在相应的位置改变成相应的形状 $(".test1").mousemove(function(e){ $(".test1").unbind("mousedown"); $(".test1").css("cursor","default"); //$("span > b").text(parseInt($("div"

2021-04-08 20:18:46 3473 14

原创 例题 5-9 数据库(Database, ACM/ICPC NEERC 2009, UVa1592)

题目描述:       输入一个n行m列的数据库(1<=n<=10000, 1<=m<=10),是否存在两个不同行和两个不同列c1,c2,使得这两行和这两列相同(即(r1,c1)和(r2,c1)相同,(r1,c2)和(r2,c2)相同)。例如,对于如图所示的数据库,第2、3行和第2、3列满足要求思路:       用四重循环枚举会超时,解

2021-04-08 10:00:46 232

原创 习题 4-10 洪水! (Flooded! ACM/ICPC World Finals 1999, UVa815)

题目描述:       有一个n*m(1<=m, n<=30)的网格,每个格子是边长10米的正方形,网格四周是无限大的墙壁。输入每个格子的海拔高度,以及网格内雨水的总体积,输出水位的海拔高度以及有多少百分比的区域有水(即高度严格小于水平面)...

2021-04-04 21:02:15 274

原创 习题 4-9 数据挖掘(Data Mining, ACM/ICPC NEERC 2003, UVa1591)

题目描述:       有两个n元素P和Q。P数组每个元素占Sp个字节,Q数组每个元素占Sq个字节。有时需找到Q数组中与P(i)对应的元素,由P(i) = Spi, Q(i) = Sq * i, 得到Q(i)=P(i) / SpSq,但因为乘法除法对于数据挖掘(大数据)来说太慢了,所以要进行改进。我们把式子改写成Q(i) = (P(i) + P(i) << A) >> B。但这个式子不一定成立,为了使之成立,我们

2021-04-03 22:19:29 200

原创 习题4-7 RAID技术 (RAID!, ACM/ICPC World Finals 1997, UVa509)

首先要明白RAID技术的原理RAID原理:把数据分成多个数据块,分别存储到d个磁盘中,一个数据块的数据对应s个比特,一个磁盘存储b个数据块。在一个磁盘中数,每隔d-1个数据块有一个校验块,校验块存储的是校验数据,使得每d个数据块(在磁盘间数)的异或结果为全0(偶校验)或全1(奇校验)举个例子:d=5, s=2, b=76C7A79EDFC6C7A(0110 1100 0111 1010 0111 1001 1110 1101 1111 1100 0110 1100 0111 1010) 的存储方

2021-04-02 17:11:38 337 2

原创 例题4-1 古老的密码(Ancient Cipher, NEERC 2004, UVa1339)

#include<stdio.h>#include<stdlib.h>#include<string.h>using namespace std;const int MAX_N = 101;char s1[MAX_N];char s2[MAX_N];int cnt1[26]; // 统计两个字符串中每个字母出现的次数 int cnt2[26];int cmp(const void *a, const void *b){ return *(int

2021-03-27 23:01:03 175 2

原创 习题 3-12 浮点数(Floating-Point Numbers,UVa11809)

思路如图所示:一开始是直接计算出来最大值大小进行比较的,后来发现太大的数存不下,改为取对数后再判断,此外,还需要用long double进行存取,否则还可能出现精度问题#include<stdio.h>#include<stdlib.h>#include<math.h>#include<string.h>using namespace std;char s[40];char A[20];char B[20];long double ME[

2021-03-23 22:08:33 236

原创 习题 3-11 换抵挡装置(Kickdown,ACM/ICPC NEERC 2006, UVa1588)

题目描述:给出两个长度分别为n1, n2(n1,n2<=100)且每列高度只为1或2的长条。需要讲它们放入一个高度为3的容器,问能够容纳它们的最短容器长度。代码如下:#include<stdio.h>#include<string.h>using namespace std;char bottom[101];char top[101];char container1[202]; // bottom不动,top向右移动得到的容器 char containe

2021-03-21 15:31:14 300

原创 习题 3-10 盒子(Box, ACM/ICPC NEERC 2004, UVa1587)

习题 3-10 盒子(Box, ACM/ICPC NEERC 2004, UVa1587)题目描述:给定6个矩形的长和宽wi和hi (1<=wi,hi<=10000),判断它们能否构成长方体的6个面。难就难在明白构成长方体的充要条件,想明白这个,此题就解决了。我的思路是6个矩形两两相等(前后、上下、左右),然后去掉重复的矩形,剩下的正好可以拼合代码如下:#include<stdio.h>#include<algorithm>using namespace

2021-03-20 18:26:36 335 3

原创 习题 3-9 子序列(All in All, UVa 10340)

习题 3-9 子序列(All in All, UVa 10340)题目描述:输入两个字符串s和t,判断是否可以从t中删除0个或多个字符(其他字符顺序不变),得到字符串s。例如,abcde可以得到bce,但无法得到dc。代码如下:#include<stdio.h>#include<string.h>using namespace std;const int MAX_N = 100000;char s[MAX_N];char t[MAX_N];int main(

2021-03-20 10:18:45 175

原创 习题 3-8 循环小数(Repeating Decimals, ACM/ICPC World Finals 1990, UVa202)

习题 3-8 循环小数(Repeating Decimals, ACM/ICPC World Finals 1990, UVa202)题目描述:输入整数a和b (0<=a<=3000, 1<=b<=3000),输出a/b的循环小数表示以及循环节长度。例如a=5, b=43,小数表示为0.(116279069767441860465),循环节长度为21第一想法就是字符串匹配,虽然走了弯路,好在最后AC了,比较了一下,还是判断被除数是否相同的方法好,可惜我没想到。#inclu

2021-03-18 14:44:20 223

原创 习题3-7 DNA序列(DNA Consensus String, ACM/ICPC Seoul 2006, UVa1368)

习题3-7 DNA序列(DNA Consensus String, ACM/ICPC Seoul 2006, UVa1368)题目描述:输入m个长度均为n的DNA序列,求一个DNA序列,到所有序列的总和Hamming距离尽量小。两个等长字符串的Hamming距离等于字符不同的位置个数,例如,ACGT和GCGA的Hammingg距离为2(左数第1,4个字符不同)输入整数m和n(4<=m<=50, 4<=n<=1000),以及m个长度为n的DNA序列(只包含字母A,C,G,T),输

2021-03-16 22:17:30 190 1

原创 习题3_6 纵横字谜的答案(Crossword Answers, AMC/ICPC World Finals 1994,UVa232)

习题3_6 纵横字谜的答案(Crossword Answers, AMC/ICPC World Finals 1994,UVa232)题目描述:输入一个r行c列(1<=r,c<=10)的网格,黑格用*表示,每个白格都填有一个字母。如果一个白格的左边相邻位置或者上边相邻位置没有白格(可能是黑格,也可能出了网格边界),则称这个白格是一个起始格。首先把所有起始格从上到下、从左到右的顺序编号为1,2,3,…,如图接下来找出所有横向单词(Across)。这些单词必须从一个起始格开始,向右延申到一个

2021-03-16 21:00:36 350

空空如也

空空如也

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

TA关注的人

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