自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Yishui_lovely

败犬~~

  • 博客(524)
  • 收藏
  • 关注

原创 浅谈如何写出一个正确的二分查找算法

前言二分在算法竞赛方面是一个非常重要的算法, 虽然算法思想与实现都是比较简单易懂的, 但是真正的代码实现,往往都是十分代码九份有BUG.博主在考研复习中又重新学习了这个两年前貌似都掌握的算法, 在这里写下这个文章作为学习笔记, 也希望可以帮助到更多的人写出可以在更多的场景下无BUG的二分.C++的内置函数-求下界lowerbound() 与 upperbound()这两个函数的返回值...

2019-03-23 14:05:22 555

原创 hihoCoder #1444 : Push Button II ( dp

题目链接:题意:很容易发现这个就是一个线性的dpdpdp考虑一下 dp[i][j]dp[i][j]dp[i][j]表示长度iii的分为jjj大小的块的大学长度明显我们可以发现 状态dp[i][j]dp[i][j]dp[i][j]的状态可以由dp[i][j−1]dp[i][j-1]dp[i][j−1]和dp[i−1][j−1]]dp[i-1][j-1]]dp[i−1][j−1]]推出来...

2018-10-18 13:23:21 266

原创 hihoCoder #1443 : Push Button I ( DFS

题目链接: https://hihocoder.com/problemset/problem/1443题意:直接暴力枚举即可, 因为要防止重复,所有我们需要搜索的时候 每个小块内 从小到大的进行搜索/***********************************************Author :YishuiCreated Time :2018年10...

2018-10-17 22:27:31 219

原创 wannaly挑战赛1 A Treepath(树形dp/dfs

题目连接:题意:直接无脑树形dp即可 dp[u][0]表示u的子树内的节点到u一共有几个奇数路径 dp[u][1]表示状态u的子树内到u一共有几个偶数路径或者直接dfs, 将间隔的点染成黑白色,那么相隔的点 连起来 一定就是偶数路径了树形dp// Created by Yishui// Time on 2018/10/// E-mail: Yishui_w...

2018-10-13 17:37:00 239

原创 CodeForces - 832D Misha, Grisha and Underground ( 树链剖分/LCA

题意:给三个点,一棵树, 将其中的两个点直接的路径+1 问第三个点和这其中的两个点之一的一个点直接的路径上面1最多有几个非常暴力的树链剖分可以过,复杂度也够, 正解是LCA的方法 很巧妙,,,,树链剖分// Created by Yishui// Time on 2018/10/// E-mail: Yishui_wyb@outlook/*---------...

2018-10-13 17:26:07 198

原创 CodeForces242E XOR on Segment (线段树+二进制拆位

题目链接: http://codeforces.com/problemset/problem/242/E题意:给出n个点,m次操作,1 x y:查询区间x-y的和,2l r x,区间l-r每个数都异或x;思考: 我们可以很容易的想到,异或是在二进制上面进行的, 然后我们每次异或 其实就是反向的更改这一区间上面的数字, 数据的范围大概是在2^20内 所有我们可以直接建20颗线段树, ...

2018-10-12 11:35:22 178

原创 紫书例题 9-1 UVA1025 A Spy in the Metro (

题目链接 https://www.luogu.org/problemnew/show/UVA437题意:见紫书时间是一直向前的, 那么我们以时间为序进行dpdpdp状态dp[i][j]dp[i][j]dp[i][j] 表示在第iii分钟的时候,在第jjj个车站最小需要等待多长时间状态的转移有且只有可能从上一次的车站转移过来的 决策时起点为dp[T][n]=0dp[T][n]=0dp...

2018-10-11 21:44:28 178

原创 HDU - 6024 Building Shops ( dp

题目链接题意水题// Created by Yishui// Time on 2018/10/// E-mail: Yishui_wyb@outlook/*---------------------------------*/#include <bits/stdc++.h>using namespace std;#define cpp_...

2018-10-10 23:54:18 211

原创 洛谷 P1508 Likecloud-吃、吃、吃 (记忆搜/dp

题目链接https://www.luogu.org/problemnew/show/P1508题意:很裸的dp思想, 这里用记忆化搜索从上向下的搜索储存 递推的写法更加方便记忆化搜索#include <bits/stdc++.h>using namespace std;#define cpp_io() {ios::sync_with_stdio(false); ...

2018-10-09 21:56:19 182

原创 P1855 榨取kkksc03 (多维背包

题目链接https://www.luogu.org/problemnew/show/P1855题意:二维背包的模板, 两个容量 将01背包数组再开一一维记录值就可以了#include <bits/stdc++.h>using namespace std;#define cpp_io() {ios::sync_with_stdio(false); cin.tie(N...

2018-10-09 20:26:34 198

原创 洛谷 P1417 烹调方案 (01背包+贪心

题意:明显的一个背包问题,题写的太少了,唉, 但是它的价值是与ttt有关的,然后 ttt又是不断变化的,在看了题解以后 我们对相邻的两个任务进行化简会发现价值的变化只和 bbb,ccc相乘的关系有关, 相乘即可xc∗yb<yc∗xbx_c*y_b<y_c*x_bxc​∗yb​<yc​∗xb​我们还可以发现一个小小的问题, 时间虽然越靠后 做得的0...

2018-10-09 17:23:31 154

原创 HDU - 6409 没有兄弟的舞会 ( STL

题意:考虑对每个节点维护一个set 标记 然后就是维护最大最小值 xjb搞搞#include <bits/stdc++.h>using namespace std;#define cpp_io() {ios::sync_with_stdio(false); cin.tie(NULL);}#define rep(i,a,n) for (int i=a;i<n;i++)...

2018-10-08 22:06:00 686

原创 ZOJ 3772 Calculate the Function(线段树+矩阵

题意:求一个区间内的的递推公式的值 递推的区间为[l,r][l,r][l,r], 这样因为递推式和矩阵的性质是相同的, 我们可以考虑使用线段树维护矩阵的相乘 这样复杂度就可以做到O(nlogn)O(nlogn)O(nlogn)]特别需要注意的事情是 因为这个原因wa了无数次 我们在线段树中的成分 一定要遵循矩阵相乘的顺序,因为矩阵我们维护的相乘顺序是从rrr −>-&amp...

2018-10-08 21:18:20 160

原创 HDU - 6228 Tree ( DFS

题意:给k个颜色 将树进行染色, 染色后相同的两个点的之间的边的交集最大, 当然了 有的点不用的话 那么就是空集了, 这肯定是不行的qwqqwqqwq考虑枚举每一条边, 也就是 一个点的左右子树,如果两个子树的szszsz都大于kkk的话,那当然就是可以的啦#include <bits/stdc++.h>using namespace std;#define cpp_...

2018-09-27 19:01:31 286

原创 ACM/ICPC2018北京网赛-hihocoder #1831 80 Days(暴力/尺取

题意:一个环 每次到一个点会得到一个值,和失去一个值 期间的值不能为小于0直接暴力线段树为何差值的前缀和即可尺取两个对着扫#include <bits/stdc++.h>using namespace std;#define cpp_io() {ios::sync_with_stdio(false); cin.tie(NULL);}#define rep(i,a,n...

2018-09-27 16:40:17 208

原创 ACM/ICPC2018北京网赛-hihocoder#1828 : Saving Tang Monk II(BFS

题意:没有什么坑点,直接搜索即可,水题,#include <bits/stdc++.h>using namespace std;#define cpp_io() {ios::sync_with_stdio(false); cin.tie(NULL);}#define rep(i,a,n) for (int i=a;i<n;i++)#define repp(i,a...

2018-09-27 02:44:46 232

原创 洛谷P1967 货车运输 (最大生成树+LCA

题意:求最多最短路径路径的最大权值中的最小值,明显 我们可以建立一颗最大的生成树, 然后在这颗生成树里面求LCALCALCA中的最小值就好了树上倍增的方法求LCALCALCA 当然也可以直接树剖求AC代码#include <bits/stdc++.h>using namespace std;#define cpp_io() {ios::sync_with_stdio(...

2018-09-27 00:54:26 162

原创 P2146 [NOI2015]软件包管理器 ( 树链剖分

题意:树剖水题:操作1. 将一个点到根节点之间的序列, 统计操作2.将一颗子树的内部节点, 统计//// Created by Yishui on 2018/9/15.//#include <bits/stdc++.h>using namespace std;#define cpp_io() {ios::sync_with_stdio(false); cin.t...

2018-09-25 21:29:12 180

原创 P3384 【模板】树链剖分

树剖模板数组含义f[u]f[u]f[u] 保存结点uuu的父亲节点d[u]d[u]d[u] 保存结点uuu的深度值sz[u]sz[u]sz[u] 保存以uuu为根的子树节点个数son[u]son[u]son[u] 保存重儿子rk[u]rk[u]rk[u] 保存当前dfsdfsdfs标号在树中所对应的节点或者值top[u]top[u]top[u] 保存当前节点所在链的顶端节点id[u...

2018-09-25 19:58:49 145

原创 ICPC2018徐州网络赛 H.Ryuji doesn't want to study ( 树状数组

题意: 求 ∑ri=lai∗(r−i+1)∑i=lrai∗(r−i+1)\begin{equation*} \sum_{i=l}^ra_i*(r-i+1) \end{equation*} 考虑化简公式 利用前缀和 化简为∑ri=lai∗(n−i+1)∑i=lrai∗(n−i+1)\begin{equation*} \sum_{i=l}^ra_i*(n-i+1) \end{equ...

2018-09-13 22:36:03 150

原创 51Nod 1416 两点 (DFS

题意: 寻找图里面成环切大于等于444 直接对每个没有搜索过的点进行爆搜,并且记录每次搜索的步数#include <bits/stdc++.h>using namespace std;#define cpp_io() {ios::sync_with_stdio(false); cin.tie(NULL);}#define rep(i,a,n) for (...

2018-09-06 02:20:53 113

原创 51Nod 1305 Pairwise Sum and Divide

这个水题很有意思,明显我们发现所求的值,只和1,2的存在有关 统计一下 推出公式就行Orz#include <bits/stdc++.h>using namespace std;#define ls st<<1#define rs st<<1|1#define LL long longconst int MAXN= (int) 1e6+...

2018-09-06 02:02:51 114

原创 GCPC2013 D. Kastenlauf (BFS

题意:从0点到n+1点 之间的距离不能大于20*50 BFS水题#include <bits/stdc++.h>using namespace std;#define cpp_io() {ios::sync_with_stdio(false); cin.tie(NULL);}#define rep(i,a,n) for (int i=a;i<n;i++...

2018-09-06 01:49:53 190

原创 GCPC2013 B. Booking (贪心

题意: 区间覆盖的裸题,结构体排个序即可。//// Created by Yishui on 18-9-4.//#include <bits/stdc++.h>using namespace std;#define cpp_io() {ios::sync_with_stdio(flase); cin.tie(NULL);}#define rep(i,a,...

2018-09-04 21:50:59 200

原创 Codeforces Round #504 A.B.C.D( 模拟&&思维&&模拟&&线段树

A. Single Wildcard Pattern Matching题意:判断字符串的小问题,trick点比较多,FST无数,最后过的C还少,, 多亏了写的时候仔细想了两遍,,,//// Created by team02 on 18-8-17.//#include <bits/stdc++.h>using namespace std;#define...

2018-08-19 14:48:32 141

原创 LOJ #6278. 数列分块入门 2 (分块/树状数组

题意:给出一个长为 nnn的数列,以及 nnn 个操作,操作涉及区间加法,询问区间内小于某个值 xxx 的元素个数。 分块, 直接维护每个块二分即可, 树状数组, 代码写起来比分块还简单,,,,分块//// Created by team02 on 18-8-17.//#include <bits/stdc++.h>using namespac...

2018-08-17 21:47:19 252

原创 LOJ 6277 数列分块入门 1 (分块/树状数组

题意:给出一个长为 nnn 的数列,以及 nnn 个操作,操作涉及区间加法,单点查值。题解: 1.将mmm个元素分为一块,那么数列中至多也就只有n/mn/mn/m块, 每次操作也就是至多涉及到n/mn/mn/m个整块以及其附近的不完整的块中至多的2∗m2∗m2*m个元素 2.给每个块设置一个加法tag, 这样的话我们每次标记的复杂度就是O(1)O(1)O(1), 附近...

2018-08-17 16:26:58 161

原创 Codeforces Round #502 A,B,C,D (排序&&规律&&构造&&状压预处理

A. The Rank题意:简单的排序,寻找特定的那个人的名次,,,#include <bits/stdc++.h>using namespace std;#define ll long long #define pb push_back#define ls o<<1#define rs o<<1|1#define fi firs...

2018-08-17 02:29:07 154

原创 BZOJ 3211 花神游历各国 ( 线段树区间开根号

题意:两个操作 1 区间取模 2 区间求和题解:考虑到取模的性质,一个数 顶多被操作不超过101010次就会变成111 标记一下 即可 保证复杂度为O(nlogn)O(nlogn)O(nlogn)#include <bits/stdc++.h>using namespace std;#define ll long long #define ...

2018-08-16 21:02:50 220

原创 Codeforces 438 D. The Child and Sequence (线段树

题意: 三种操作 1.区间求和 3.区间取模 2.单点更新题解:直接单点更新暴力维护, 取模的均摊复杂度为O(nlogn)O(nlogn)O(nlogn)#include <bits/stdc++.h>using namespace std;#define ll long long #define pb push_back#define...

2018-08-16 14:59:36 211

原创 HDU - 4300 Clairewd’s message ( HASH/ex_kmp

题意:一道hash水题 给出两端序列,其中第一段为hash序列, 第二段前面为对应的密码值,后面为真值但是可能不全,需要我们补全题解:直接暴力HASH, 将所有的密文都翻译为明文, 比较原来的字符串的后缀和翻译后的前缀的最长匹配长度 #include <bits/stdc++.h>using namespace std;#define CLR(a,b) mems...

2018-08-14 16:20:17 152

原创 HDU 4349 Xiao Ming's Hope ( Lucas

 题意:求 nnn个组合数的奇数有几个 组合数的一个性质 (n&m)==n(n&m)==n(n&m)==n的话 这个数就是奇数, 这个性质在这个题里面不可写 我们需要利用Lucas 定理 发现规律 就是统计nnn里面一共有几个数即可#include <bits/stdc++.h>using namespace std;#define ll lon...

2018-08-14 13:02:44 136

原创 ZOJ - 3557 How Many Sets II (Lucas+插板法

题意:一共n个元素,从中选取m个元素,满足选出的元素中没有相邻的元素,一共有多少种选法题解:插板法: 从n个数中选择m个数,剩下的数为n-m,可以产生n−m+1n−m+1n-m+1个空,这道题就变成了把m个数插到这n−m+1n−m+1n-m+1个空中有多少种方法,即Cmn−m+1Cn−m+1mC_{n-m+1}^{m}#include <bits/stdc++.h&gt...

2018-08-14 00:04:15 181

原创 HDU 3944 DP? ( lucas+预处理

题意:求从(0,0)(0,0)(0, 0)开始计算的杨辉三角到给定的点(a,b)(a,b)(a,b)路径上最小的权值mod(p)mod(p)mod(p) 要求只能斜着或者竖着走题意:观察一下 我们发现 我们需要尽可能多的走边上 也就是111这样 就会只有两种情况可以考虑了 case1: 从斜边上下去 然后竖着到达终点  ans=0ans=0ans = 0 ans+=m+1ans+...

2018-08-13 22:06:37 169

原创 FZU - 2020 组合 (组合数模板

1&lt;=n&lt;=1091&lt;=n&lt;=10911&lt;=m&lt;=1041&lt;=m&lt;=1041m&lt;p&lt;109m&lt;p&lt;109m < p < 10^9p&gt;106p&gt;106p > 10^6 直接上朴素的模板即可, 不能无脑上LucasLucasLucas#include &lt;iostream&am

2018-08-13 15:37:17 250

原创 Codeforces Round #503 (by SIS, Div. 2) A, B, C(判断&&搜索&&STL乱搞

A - New Building for SIS题意:一排房子1−n1−n1-n,问从第xxx个结点到第yyy个结点 需要的最少步数 (只能在特定的楼层内转移)题解判断几个就可以了 trick点 : 注意特定的楼层内部也是需要计算步数#include &lt;bits/stdc++.h&gt;using namespace std;const int MAXN ...

2018-08-13 00:49:12 164

原创 洛谷 P1736 创意吃鱼法 ( dp

题意: 一个010101矩阵中 求解最大的正方形:正方形形状为对角线为111,其他位置为000状态dp[i][j]dp[i][j]dp[i][j] 表示从以坐标(i,j)(i,j)(i, j)为右下角的正方形的大小, 然后我们预处理一下坐标内为000的上下和左右的前缀和f1[],f2[]f1[],f2[]f1[], f2[], 这样我们就可以得到状态转移方程: dp[i][j]=min(...

2018-08-11 12:57:24 212

原创 洛谷 P1387 最大正方形 ( dp

题意:在一个n*m的只包含0和1的矩阵里找出一个不包含0的最大正方形,输出边长。 前缀和思想 维护一个dp[i][j]dp[i][j]dp[i][j] 表示的是矩阵内以i,ji,ji,j为右下角的最大的正方形大小#include &amp;lt;bits/stdc++.h&amp;gt;using namespace std;#define ll long long #define pb ...

2018-08-11 10:42:43 199

原创 HDU - 5652 India and China Origins (二分+BFS

题意: 二分时间 枚举最小的填充时间#include &lt;bits/stdc++.h&gt;using namespace std;const int MAXN = (int)5e2+10;int n, m;char mps[MAXN][MAXN];bool vis[MAXN][MAXN];int cnt[MAXN][MAXN];int dx[] = {0, 0,...

2018-08-09 22:17:11 140

原创 LightOJ - 1006 Hex-a-bonacci

数据量很小 随便写都行 递推:#include &lt;iostream&gt;#include &lt;cstring&gt;#include &lt;cstdio&gt;using namespace std;#define se second#define fi first#define ll long long#define pb push_back#defi...

2018-08-08 19:54:19 159

空空如也

空空如也

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

TA关注的人

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