Hello World个人博客搭建完成! 123456789 ,---.,--. ,--. ,--.,--. ,--. ,--. ,--. ,--.| || '--' | ,---. 2021-08-05 测试 #测试
【题解】洛谷P1331 海战与其他题解不同的矩形判断方式: 1.在 dfs 出所有连通块时假定每个连通块都是矩形,保存其 xxx , yyy 的最大值。 2.遍历所有连通块(矩形),如果矩形的外圈有"#"或者内部有空位说明当前连通块不合法,直接退出。 3.否则输出连通块个数 代码: 12345678910111213141516171819202122232425262728293031323334353 2021-05-01 题解 #题解 #dfs
【题解】洛谷P1132 数字生成游戏裸的bfs。 别的题解大多用字符串,但也可以直接截取数字。 使用除法和取模可以分裂整数,乘法和加法可以合并。 举个栗子: 把 314159263141592631415926 这个8位整数从第四位(从左往右数)后面截成两个整数 先把这个数除以1000( 10(8−4−1)10^{(8-4-1)}10(8−4−1))得到前面那一个整数是 314131413141 再取模10000( 108−410^ 2021-02-26 题解 #题解
【题解】洛谷P1300 城市街道交通费系统爆搜+优化 注意:同一个地方只能转一次弯 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859#include <unordered_map>//C++11哈希表实现的map#include <algorithm&g 2021-01-28 题解 #题解 #dfs
【题解】UVA156 反片语奇妙的方法 使用一个map和一个multimap 先使用multimap存下所有排序后相同的字符串 遍历multimap,如果当前这个排序后序列只有一个对应的原字符串,将它的原序列加入另一个map桶排输出 12345678910111213141516171819202122232425262728#include <algorithm>#include <iostream> 2020-12-12 题解 #题解 #STL #map
【题解】UVA10118 免费糖果题意 4堆糖果,每堆 nnn 颗,每次拿最顶上的,篮子里能装5颗糖果,拿到两颗一样的就可以拿走,求最多能拿走多少颗。 解析 可用记忆化搜索。 用一个bitset(或bool数组)存储当前拿走的糖果颜色,如果拿糖果时已经拿过同颜色的可以将bitset相应位清零。 用一个数组(函数参数也行)存储当前第 iii 堆拿走的个数。 返回时将当前状态(每堆拿了几个)记录下来,再次搜索时直接返回。 别忘了每 2020-10-26 题解 #题解 #STL #dfs
二分二分法 二分查找(Binary Search),也叫折半查找,是用来在一个有序数组中查找某一元素的算法。 原理 以在一个升序数组中查找一个数为例。 它每次考察数组当前部分的中间元素,如果中间元素刚好是要找的,就结束搜索过程;如果中间元素小于所查找的值,那么左侧的只会更小,不会有所查找的元素,只需到右侧查找;如果中间元素大于所查找的值同理,只需到左侧查找。 性质 最优时间复杂度 O(1)O(1 2020-10-23 算法 #算法
内省排序前置知识 插入排序 插入排序(Insertion Sort)是一种简单直观的排序算法。它的工作原理为将待排列元素划分为“已排序”和“未排序”两部分,每次从“未排序的”元素中选择一个插入到“已排序的”元素中的正确位置。 插入排序在序列已部分有序的情况下效率很高。 插入排序的最优时间复杂度为 O(n)O(n)O(n) ,最差与平均时间复杂度为 O(n2)O(n^2)O(n2) 。 快速排序 快速 2020-10-17 算法 #算法 #排序
【题解】洛谷P1657 选书1234567891011121314151617181920212223242526272829303132333435#include <iostream>#include <vector>using namespace std;int n,ans;bool visb[30],viss[30];//visb:一本书(visb[x])是否已经被选择//viss:一个学生( 2020-08-12 题解 #题解 #dfs