把博客园图标替换成自己的图标
把博客园图标替换成自己的图标end

01 2020 档案

P1880 [NOI1995]石子合并 区间dp
摘要:传送门 我发现上一阵子来我做事总是非常荒诞 我连一条链上的区间dp都没做 就去做环上的区间dp 唉 半小时才调过 那么这一题的大意就是 在一个环上有n个点 每一个点都对应有一个权值 每一次你可以把这个环上相邻的两个点合并起来 合并起来消耗的代价就是两个点的权值之和 两个点合并之后就变成了一个点 问把 阅读全文

posted @ 2020-01-20 20:16 空山新雨后blog 阅读(120) 评论(0) 推荐(0)

1896 [SCOI2005]互不侵犯 状压dp
摘要:传送门 这是一道状压dp的经典例题 题目让输出所有可能的方案数 很显然 这是一道动态规划了 由于国王放置的位置有一定的限制 所以我们要在状态转移的过程中增加一维来存储状态 我们这一道题假设f[i][j][k] 意思是在前i行一共放置了j个国王 第i行国王放置的状态是k 存储的值是方案数 首先 我们可 阅读全文

posted @ 2020-01-20 19:03 空山新雨后blog 阅读(121) 评论(0) 推荐(0)

如何写对拍?
摘要:一直以来就听到诸多orz谈论“对拍” 今天可算知道对拍是怎么一回事了 跟大家分享一下 对拍就是当你写完一个代码 你想要验证它是否是正确的 但是单单手造样例或者看题目上的样例往往不一定能发现错误 而且十分繁琐 所以我们可以依靠强大的计算机来帮助我们检验程序的正确性 接下来来讲一下对拍是如何实现的 我们 阅读全文

posted @ 2020-01-20 17:36 空山新雨后blog 阅读(1857) 评论(1) 推荐(4)

最短路 P1629 邮递员送信
摘要:传送门 其实这一道题还是比较不错的 这一道题的题意稍微转化一下就是邮递员要到一个节点 然后再返回 求最短路 这我们很显然是可以用dijkstra算法的 我们先按照题目中给的边(单向边) 跑一边最短路 接下来一步我们是要求从各个点出发到S的最短路 乍一看很复杂的样子 其实只需要把整张图的边全部倒过来存 阅读全文

posted @ 2020-01-19 20:55 空山新雨后blog 阅读(141) 评论(0) 推荐(0)

线段树 P2253 好一个一中腰鼓!
摘要:传送门 不得不说 这真是一道不错的线段树的题目 这一道题的大意就是说 一开始所有的状态均为0 会有m次指令 每一次可以把一个点的状态进行更改 原来是0就变成1 原来是1就变成0 为了锻炼代码能力 我决定还是中规中矩地写线段树 这一道题还规定了一种串 就是0和1间隔交替 (比如010101 101 0 阅读全文

posted @ 2020-01-19 18:38 空山新雨后blog 阅读(141) 评论(0) 推荐(0)

Dijkstra Floyed SPFA 辨析
摘要:一、Dijkstra O(nlogn) 单源最短路径 这个算法加上堆优化之后还是非常推荐的 但是dijkstra有一些不足的地方 边权不能为负数 不能判断负环 二、SPFA 最大是O(mn) 单源最短路径 这个算法其实还是非常玄学的 要是运气不好的话会到达O(mn) 所以不好掌控时间复杂度 但是它也 阅读全文

posted @ 2020-01-19 15:36 空山新雨后blog 阅读(140) 评论(0) 推荐(0)

【模板】SPFA最短路
摘要:#include<bits/stdc++.h> #define maxn 10005 using namespace std; int n,m,s; vector<int> v[maxn],w[maxn]; int dis[maxn]; bool vis[maxn]; void SPFA() { m 阅读全文

posted @ 2020-01-19 15:11 空山新雨后blog 阅读(88) 评论(0) 推荐(0)

【模板】二分图匹配-匈牙利算法
摘要: 阅读全文

posted @ 2020-01-19 11:00 空山新雨后blog 阅读(107) 评论(0) 推荐(0)

【模板】倍增LCA
摘要: 阅读全文

posted @ 2020-01-18 14:31 空山新雨后blog 阅读(104) 评论(0) 推荐(0)

关于时间复杂度的一点需要注意的地方
摘要:1.当时间复杂度达到千万级 就要注意会不会超时了 理论上来讲是10^8,但是总会遇到常数大或者其他情况 2.模运算可能会比较慢 比理论上花费的时间要长 阅读全文

posted @ 2020-01-17 19:58 空山新雨后blog 阅读(193) 评论(0) 推荐(0)

费马小定理 求乘法逆元
摘要://P3811 【模板】乘法逆元 #include<bits/stdc++.h> using namespace std; inline void write(long long X) { if(X<0) {X=~(X-1); putchar('-');} if(X>9) write(X/10); 阅读全文

posted @ 2020-01-17 19:41 空山新雨后blog 阅读(314) 评论(0) 推荐(0)

P3383 【模板】线性筛素数
摘要://P3383 【模板】线性筛素数 #include<bits/stdc++.h> using namespace std; int is_prime[10000005]; void Find_prime(int n) { memset(is_prime,1,sizeof(is_prime)); i 阅读全文

posted @ 2020-01-17 19:18 空山新雨后blog 阅读(133) 评论(0) 推荐(0)

【模板】矩阵乘法快速幂
摘要:struct matrix{ int n,m,a[N][N]; void init(int x) { n=m=x; for(int j=1;j<=n;j++)//单位帧初始化 a[i][j]=(i==j); } }; matrix operator*(matrix x,matrix y) { mat 阅读全文

posted @ 2020-01-17 18:52 空山新雨后blog 阅读(115) 评论(0) 推荐(0)

【模板】线性筛素数
摘要:memset(check,false,sizeof check); int tot = 0; for(int i = 2;i<=N;++i) { if(!check[i]) prime[tot++] = i; for(int j = 0;j<tot;++j) { if( i * prime[j] > 阅读全文

posted @ 2020-01-17 18:20 空山新雨后blog 阅读(90) 评论(0) 推荐(0)

【模板】快速幂
摘要:// 快速幂 int a[N]; int tmp[N]; int qpow(int n,int m)//递归版本 { if(m==0) return 1; if(m%2==0)return qpow(n*n%mod,m/2,mod); return n*qpow(n,m-1,mod)%mod; } 阅读全文

posted @ 2020-01-17 10:19 空山新雨后blog 阅读(97) 评论(0) 推荐(0)

博客搬家啦~
摘要:欢迎来我原博客玩~ 阅读全文

posted @ 2020-01-17 10:08 空山新雨后blog 阅读(83) 评论(0) 推荐(0)

【模板】归并排序求逆序对
摘要://P1908 逆序对 #include<bits/stdc++.h> using namespace std; int a[500005]; int tmp[500005]; long long ans=0; void mergesort(int l,int r) { if(l==r) retur 阅读全文

posted @ 2020-01-17 10:04 空山新雨后blog 阅读(139) 评论(0) 推荐(0)

主定理
摘要: 阅读全文

posted @ 2020-01-17 09:52 空山新雨后blog 阅读(95) 评论(0) 推荐(0)

【模板】归并排序模板
摘要:#include<bits/stdc++.h> #define N 1000 using namespace std; int a[N]; int tmp[N]; void mergesort(int l,int r) { if(l==r) return; int mid=l+r>>1; merge 阅读全文

posted @ 2020-01-17 09:48 空山新雨后blog 阅读(121) 评论(0) 推荐(0)

序列积第m小元素 二分答案优化
摘要:给出两个长度为n的数组A和B, 在A和B中各任取一个, 可以得到n×n个积. 求第m小的元素。 n<=100000 这一道题的意思就是 a1 a2 a3 a4.. b1 b2 b3 b4 n^2个乘积 我们只需要求第m小的乘积 简单粗暴的办法就是用二分答案 我们知道 这m个乘积 肯定是a前面的一段 阅读全文

posted @ 2020-01-17 09:25 空山新雨后blog 阅读(174) 评论(0) 推荐(0)

贪心 park
摘要:来总结一道非常经典的好题 这一道题是通过贪心实现的 首先看到这一题的时间复杂度 n<=100000 需要一个比较玄学的做法 我们先假设把题干改成这个样子 一圈n个车位 停在每个车位都有一定的代价 停m个车 可以相邻 求最小代价 那么这就是非常简单的贪心 可以每一次都取当前最小的车位来停 那么这个题只 阅读全文

posted @ 2020-01-16 20:12 空山新雨后blog 阅读(161) 评论(0) 推荐(0)

struct结构体 重载运算符
摘要:struct node{ int x,y,z; }; bool operator<(node a,node b) { if(a.x!=b.x) return a.x<b.x; if(a.y!=b.y) return a.y<b.y; return a.z<b.z; } 阅读全文

posted @ 2020-01-16 10:45 空山新雨后blog 阅读(554) 评论(0) 推荐(0)

最小生成树kruskal 知识点讲解+模板
摘要:0.前言 因为本人太蒟了 我现在连NOIP的初赛都在胆战心惊 并且我甚至连最小生成树都没有学过 所以这一篇博客一定是最详细的QAQ 哈哈 请您认真看完如果有疏漏之处敬请留言指正 感谢! Thanks♪(・ω・)ノ 1.最小生成树概念 最小生成树到底是什么呢?满脸疑惑 一个有 n 个结点的连通图的生成 阅读全文

posted @ 2020-01-10 22:47 空山新雨后blog 阅读(218) 评论(0) 推荐(0)

c++快读与快输模板
摘要:快读 inline int read() { int X=0; bool flag=1; char ch=getchar(); while(ch<'0'||ch>'9') {if(ch=='-') flag=0; ch=getchar();} while(ch>='0'&&ch<='9') {X=( 阅读全文

posted @ 2020-01-10 10:42 空山新雨后blog 阅读(445) 评论(0) 推荐(0)

浏览器标题切换
浏览器标题切换end