05 2019 档案

摘要:一开始竟然妄想用$n^2$的算法过这题,然而这是不可能的 所以只好写归并排序来求逆序対惹 比如将下面两个区间排序 首先将右区间的$1$取出,放到$r_k$中,此时 1 是比每个$a_i$中的元素都小,也就是说此时$i$的指针指向$a_1$的位置,此刻得到的逆序对的数量为$4$;$r_k$= 1; 以 阅读全文
posted @ 2019-05-30 22:02 hulean 阅读(402) 评论(0) 推荐(0)
摘要:二分+DFS 看到这么多大佬写了并查集,BFS的,还没有人写DFS版的,那么肯定是要来水水积分的啦~~毕竟这可是道伪紫题呢~~! 做法楼上楼下也讲得很清楚了吧,详见代码的注释 cpp include using namespace std; bool taofen_boys[510][510];// 阅读全文
posted @ 2019-05-21 21:48 hulean 阅读(301) 评论(0) 推荐(0)
摘要:看还没有人发记搜的题解,赶紧来~~水~~发一篇 我们定义 为区间 内最少添加几个括号才能把这个串变成正规括号序列。 考虑四种情况 1. 不存在这种子串,返回 2. 子串长度为 无论是 都是要消耗1的,返回 3. 那么返回的是DP(i+1,j 1) 4. 其他情况,枚举断点,详见代码 至于输出嘛... 阅读全文
posted @ 2019-05-21 21:47 hulean 阅读(307) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2019-05-17 22:00 hulean 阅读(6) 评论(0) 推荐(0)
摘要:一、tarjan求强连通分量 1. 什么是强连通分量? 引用来自度娘的一句话: “有向图强连通分量:在有向图G中,如果两个顶点vi,vj间(vi vj)有一条从vi到vj的有向路径,同时还有一条从vj到vi的有向路径,则称两个顶点强连通(strongly connected)。 如果有向图G的每两个 阅读全文
posted @ 2019-05-13 12:55 hulean 阅读(633) 评论(0) 推荐(0)
摘要:一般问题模型: 在一张图上,有k次机会可以通过一条边而不需要计算权值或权值是一个特殊值,求从起点到终点的最短路。 变形问法: 在一张图上,有k次机会可以逆向行驶,求从起点到终点的最短路或最短路。 这种问题可以用两种方式解决。 第一种思想:动态规划(这里不详细解析,主要是介绍分层图) 第二种思想:分层 阅读全文
posted @ 2019-05-10 14:15 hulean 阅读(2133) 评论(0) 推荐(1)
摘要:并查集大难题。 看了题解之后才有思路,调了很久很久才AC,当然要写一篇题解来纪念一下。 先来分析一下这些指令的特点,很容易发现对于每个M指令,只可能一次移动整个队列,并且是把两个队列首尾相接合并成一个队列,不会出现把一个队列分开的情况,因此,我们必须要找到一个可以一次操作合并两个队列的方法。 再来看 阅读全文
posted @ 2019-05-08 21:45 hulean 阅读(346) 评论(0) 推荐(0)
摘要:搜索 传参 开始搜索 初始参数 完整代码: cpp include using namespace std; int n,c; int w[60],m[60]; int tot,ans=0x3f3f3f3f; inline int read() { int tot=0; char c=getchar 阅读全文
posted @ 2019-05-08 11:01 hulean 阅读(234) 评论(0) 推荐(0)
摘要:树形DP的一道较为基础的模板题 状态 转移 初始 答案 完整代码: cpp include using namespace std; const int N=6000+10; int n,m; int r[N]; bool v[N]; vectorson[N]; int dp[N][2]; inli 阅读全文
posted @ 2019-05-07 21:52 hulean 阅读(211) 评论(0) 推荐(0)
摘要:我们讲一下什么是 二维前缀和 ,建立在 一维前缀和 之上,我们要求一个矩阵内一个任意的子矩阵的数的和,我们就可以用二维前缀和,我们还是用DP来预处理,状态和一维前缀和差不多,只不过我们多加了一维, 表示 这个点与 这个点两个点分别为左上角和右下角所组成的矩阵内的数的和,好好想一下状态转移方程, ,怎 阅读全文
posted @ 2019-05-07 12:46 hulean 阅读(8095) 评论(1) 推荐(11)
摘要:动态规划 状态 初始 转移 答案 完整代码: cpp include using namespace std; const int MAXN=10000+10; const int MAXM=500+10; int n,m; int d[MAXN]; int dp[MAXN][MAXM]; inli 阅读全文
posted @ 2019-05-07 12:19 hulean 阅读(206) 评论(0) 推荐(0)
摘要:详细解析解题过程 设计状态 初始数组 cpp for(int i=0;i using namespace std; typedef long long ll; int n,m; ll a[30],b[30]; ll dp[30][250]; inline int read() { int tot=0 阅读全文
posted @ 2019-05-07 09:33 hulean 阅读(245) 评论(0) 推荐(0)
摘要:$n 特别地,第1个位置的树与第n个位置的树相邻。 这个~~好像~~没有考虑过 所以要把位置为1的特殊处理 那么答案就应该是这个: 完整代码: cpp include using namespace std; const int MAXN=100000+10; int n; int a[MAXN], 阅读全文
posted @ 2019-05-06 13:06 hulean 阅读(249) 评论(0) 推荐(0)
摘要:状态: 转移 判断 计算面积 $S=\sqrt{p (p a) (p b) (p c)}$ $p$为半周长:$(a+b+c)/2$ 献上完整代码: cpp include using namespace std; int n,c; int l[50]; int wood[4]; bool dp[80 阅读全文
posted @ 2019-05-06 11:23 hulean 阅读(329) 评论(0) 推荐(0)
摘要:一道很好的二维前缀和模板题。 什么是二维前缀和? 从这张图可以看出前缀和的求法: 这道题的代码: cpp include using namespace std; const int MAXN=5000+10; int n,r; int Map[MAXN][MAXN];//数组开的下 inline 阅读全文
posted @ 2019-05-05 15:45 hulean 阅读(297) 评论(0) 推荐(1)
摘要:很好的一道数学推导题 45分做法 $O(N^4)$ 暴力枚举四个材料 55分做法 从第一个约束条件可得到所有可行答案都是单调递增的,所以可以排序一遍,减少枚举量,可以拿到55分 100分做法 首先可以发现每个x都小于n,而n最大值只是15000,所以可以开一个桶来存每个魔法值出现的次数 回忆一下3个 阅读全文
posted @ 2019-05-04 14:23 hulean 阅读(454) 评论(0) 推荐(0)
摘要:看到这题,一下就想到了爆搜。(不过这题输入也是够坑的) 单纯的搜索肯定是会超时的,所以这里需要考虑一些剪枝。 我们令 为在第i行j列时,方向为k的最小镜子数,若当时的镜子数已大于或等于此记录,那么就不必要更新了 否则往该点的四个方向进行更新: 方向相同 没必要放镜子了 方向相反 不存在这种可能,忽略 阅读全文
posted @ 2019-05-02 08:20 hulean 阅读(260) 评论(0) 推荐(0)
摘要:状态: : 1. 到达第i行时, 2. 到达第j列时, 3. 刷到第k次时, 4. 这一格有没有刷对 转移 1. 换一块木板时肯定要多刷一次 2. 当前格子与上一个格子颜色相同时 3. 当前格子与上一个格子颜色不相同时 代码: cpp include using namespace std; int 阅读全文
posted @ 2019-05-01 13:11 hulean 阅读(249) 评论(0) 推荐(0)
摘要:素数简介 素数(prime number)又称质数,有无限个。 素数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数。 接下来介绍几种判断素数的方法: 问法1:给定一个数n,判断n是不是素数 一、暴力枚举 枚举 分别当做除数,判断是否能整除,如果某个数能把 整除,那么就说明 不是素数,如果 阅读全文
posted @ 2019-05-01 10:20 hulean 阅读(314) 评论(0) 推荐(0)
摘要:```cpp 什么是高精度数? 在一般的科学计算中,会经常算到小数点后几百位或者更多,当然也可能是几千亿几百亿的大数字。一般这类数字我们统称为高精度数,高精度算法是用计算机对于超大数据的一种模拟加,减,乘,除,乘方,阶乘,开放等运算。 对于一个很大的数字N >= 10^ 100, 很显然这样的数字无法在计算机中正常存储。于是, 我们想到了办法,将这个数字拆开,拆成一位一位的 或者是四位四位的存储到... 阅读全文
posted @ 2019-05-01 10:19 hulean 阅读(6326) 评论(0) 推荐(7)
摘要:``` include 1.isalnum() 检查字符c是十进制数还是大写还是小写字母。如果是,则返回true;如果不是,则返回false。 2.isalpha() 检查字符c是否是字母。如果是,则返回true;如果不是,则返回false。 3.isblank() 检查字符c是否为空白字符。空白字 阅读全文
posted @ 2019-05-01 10:19 hulean 阅读(1833) 评论(3) 推荐(0)
摘要:"比赛" 题目还是~~比较简单~~的,T3 T4都没要求输出步骤 T1 [CF6C]Alice, Bob and Chocolate "题目传送门" 一开始看到这题总想写个多线程,但肯定是行不通的。(比赛时还写得十分复杂,不过竟然可以过诶)不能同时执行两个人,那么就交替着执行。 注意:处理好两个人在 阅读全文
posted @ 2019-05-01 10:18 hulean 阅读(267) 评论(0) 推荐(0)
摘要:由于此题边数比较小,所以可以先给边排个序,然后跑m遍最小生成树,每跑一次删除一条边,找最优解。 防TLE技巧 把边按从小到大的顺序排好,那么只要当前无法联通,那么后面也无法联通 最优解找法 cpp double tmp=(1.0 e[i].w)/(1.0 e[j].w); //因为边是有序的,所以当 阅读全文
posted @ 2019-05-01 10:17 hulean 阅读(374) 评论(0) 推荐(0)
摘要:本题算法:贪心+排序+搜索+并查集+图论 输入中的t可以不用管,毕竟这只是特殊情况的标志 题目中虽然没有很明确地说明这是一棵树,但是题目中说有n个点,但是只有n 1条边,想用这n 1条边把整个图连通起来,那么只有可能是棵树。(不信可以自己画画看) 竟然是一棵树了,那么就可以用找到每个节点唯一的父亲、 阅读全文
posted @ 2019-05-01 10:17 hulean 阅读(172) 评论(0) 推荐(0)
摘要:思路:DFS+剪枝 本题可以用一个字符二维数组来存整个地图,然后在往四个方向进行搜索。 注意:当走到家门前要先判断血量! ~~(本人就被坑了)~~ 代码: cpp include using namespace std; const int N=110; int n,m; int Begin_x,B 阅读全文
posted @ 2019-05-01 10:16 hulean 阅读(650) 评论(0) 推荐(0)
摘要:当时看到这题一脸懵逼,莫名想到了复杂度为O(10000000000 n)的算法,然而肯定会超时~~(废话)~~ 算法楼上楼下都说的很清楚了 很明显这题是要用每个字母的权值进行排序。然后依次进行赋值。 $\color{red}\text{注意:不能有前导零,所以要进行特判}$ 看代码吧: cpp in 阅读全文
posted @ 2019-05-01 10:16 hulean 阅读(226) 评论(0) 推荐(0)
摘要:因为有8个字符,所以可得出每一年只有一个回文日期。 因此只要判断每一年就行了。 做法: 我们先把年倒过来,例如2018年就倒为8102,就得出8102就是回文日期的后四个字符,我们只要判断一下有没有这个月份和这个日期。 具体做法看AC代码 cpp include using namespace st 阅读全文
posted @ 2019-05-01 10:14 hulean 阅读(391) 评论(0) 推荐(0)
摘要:先用一个字符数组存每行的座位情况(字符变量也可以) 接下来用另一个数组存最后的座位情况 好了,看代码 cpp include using namespace std; bool t=false;//是否存在这种座位 int main() { int n; char c[6]; char cc[101 阅读全文
posted @ 2019-05-01 10:14 hulean 阅读(168) 评论(0) 推荐(0)
摘要:题解 P2676 【超级书架】 这题就只是一个从大到小的排序而已,用"sort"函数 再用"while"判断奶牛塔的高度是否比书架高度要高 送上代码: cpp include using namespace std; int cmp(int a,int b) { return a b; } int 阅读全文
posted @ 2019-05-01 10:13 hulean 阅读(802) 评论(0) 推荐(0)
摘要:如果它在接下来一回合能一下就将你KO了,那么,你就十分需要回血(一直回到它一下敲不死你),否则你就一直打它就好了。 阅读全文
posted @ 2019-05-01 10:13 hulean 阅读(199) 评论(0) 推荐(0)