自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Mininda

现阶段的诸多不顺大多只是出于自己的无知,而每个人在时间流逝面前是一样的,成功与否的差别在于对待时间的态度和精神。

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

原创 【Leetcode2196】从上到下打印二叉树 III

用BFS来从上到下从左到右的记录,一旦到达发现当前行数遍历完了就收手放到vector里用一个计数器cnt记录下 如果是单数行就用queue记录偶数行就用stack记录我这个算法有点慢了 因为搞进来搞回去常数有点大 我看也可以直接用vector的reverse或者就开一个双端队列节省空间class Solution {private:queue<TreeNode*> Q;queue<int> curQ;stack<int> S;int CurrentNo.

2021-12-22 10:18:55 143

原创 【Leetcode 70】爬楼梯 分治

显而易见的斐波那契数列,为了效率我们用O(logn)的矩阵快速幂来写。值得注意的是,如果是人可以从0爬到1~n任意一个楼梯,答案就是2^(i-1)可以归纳法证明。#define ll long long#define Mod 1000000007class Solution {private: ll M[2][2]={1,1,1,0}; ll F[2][2]={1,1,1,0};public: void Mutiply(ll F1[2][2],ll F2[2][2.

2021-06-04 10:04:24 276

原创 【RandixSort】基数排序实现

感觉网上一直没看到基数排序好的代码,就照着算法导论上的实现一遍。#include<vector>#include<cstring>using namespace std;class Solution{public: int GetMax(int n,int *a) { int ret=0; for (int i=0;i<n;i++) if (a[i]>ret) ret=a[i]; return ret; } void Randix

2021-06-04 09:56:58 146

原创 【Leetcode 240】搜索二维矩阵 ||

当我们要寻找一个数x,首先与最后一行的第一列的数比较。如果发现比这个数小,我们便可以知道这一行都比x大(因为每一列递增),这一行可以排除。这样不断排除直到x比最后一列的数大。同理,然后我们通过比较第一列的最后一行,如果x小,说明这一列都小,删除掉,直到找到正确答案using namespace std;class Solution {public: bool searchMatrix(vector<vector<int>>& matrix, int tar.

2021-06-01 17:42:09 103

原创 【Leetcode 105】从前序与中序遍历序列构造二叉树

了解书结构的基础题,此题的关键是在于找到根的位置。在前序遍历(根左右)中,根永远是第一个,通过确定了根,我们可以通过在后序遍历中找到根的位置来判断出左子树和右子树。通过递归解决问题/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left.

2021-06-01 17:33:48 97

原创 【poj3662】Telephone Lines 二分答案+spfa

题意给定一个无向图,求点1~n的一个路径,使路径上第k+1条路的边权尽量小。题解因为花费多的答案一定包括花费少的答案,具有单调性。所以我们可以用二分答案来求解。每次将小于等于mid的边设为0,大于mid的边设为1。spfa跑一下,如果dist[n]不大于k就满足。代码#include&lt;iostream&gt;#include&lt;queue&gt;#include&lt;cs...

2018-11-07 10:32:34 296

原创 【bzoj1053】[HAOI2007]反素数ant 搜索

Description  对于任何正整数x,其约数的个数记作g(x)。例如g(1)=1、g(6)=4。如果某个正整数x满足:g(x)&gt;g(i) 0&lt;i&lt;x,则称x为反质数。例如,整数1,2,4,6等都是反质数。现在给定一个数N,你能求出不超过N的最大的反质数么?Input  一个数N(1&lt;=N&lt;=2,000,000,000)。Output  不超过N的最大...

2018-11-04 16:45:07 263

原创 【hdu1423】Greatest Common Increasing Subsequence dp

题意给定两个序列,求其lcis题解我们用f[i][j]表示在a[1~i]中和b[1~j]中以b[j]结尾的lcis每次转移1 如果a[i]!=b[j] 那么就是这个更新的a[i]没啥子鸟用,f[i][j]=f[i-1][j]。2 如果a[i]==b[j],那么我就要从j之前的序列b中选一个比b[j]小的k,每次比较一下f[i][j]与f[i-1][k]+1进行替换但这样做的话我们发...

2018-10-24 07:48:27 254

原创 【poj2279】Mr. Young's Picture Permutations dp

DescriptionMr. Young wishes to take a picture of his class. The students will stand in rows with each row no longer than the row behind it and the left ends of the rows aligned. For instance, 12 stud...

2018-10-24 07:32:45 380

原创 【NOI2016】区间 线段树

题意求有公共点的m个区间的最长区间的长度与最短区间长度的最小值。题解先将区间以长度为关键字从小到大进行排序,易得最小值应该是排序后尽可能相近的两个区间。用头尾两个指针控制,每次更新利用线段树进行区间覆盖来判断是否符合有公共点的条件。代码//bzoj4653[Noi2016]区间#include&amp;amp;lt;iostream&amp;amp;gt;#include&amp;amp;lt;algorithm&amp;amp;gt;#inc...

2018-10-05 17:45:16 286

原创 【bzoj4300】绝世好题 dp

题意给定一个长度为n的数列ai,求ai的子序列bi的最长长度,满足bi&amp;bi-1!=0(2&lt;=i&lt;=len)。题解这个题目有点搞笑啊我们用f[i]记录当前第i位为1的最长长度为多少,每次更新一个新数判断它的第几位出现了1,然后再选最大的更新。代码#include&lt;iostream&gt;#include&lt;cstdio&gt;using namespa...

2018-10-05 17:38:47 358

原创 【cf914D】Bash and a Tough Math Puzzle 线段树

题目大意给出一个序列a,要求支持单点修改,以及询问如果允许修改区间内的一个元素,区间gcd是否为x(可以理解为允许你暂时去掉区间一个元素,使区间gcd为x)1 ≤ n ≤ 5*10^5 1 ≤ q ≤ 4·10^5题解一开始看题很萌比 后来看了题解发现自己是傻比系列我们开一个线段树 每个节点记录当前区间的gcd,每次询问只要查一下当前区间的gcd是否为x如果不是就继续往下找,记录一下需...

2018-10-03 18:47:18 298

原创 【hdu6315】Naive Operations 线段树

题目大意给定一个序列b,以及一个初值为0的序列a。要求支持a的区间+1以及区间询问a[i]/b[i]的和。题解我们考虑对开一个线段树,每个节点记录当前a区间最大的值maxa以及最小的值minb,区间当前情况下的a[i]/b[i]的和cnt,以及lazy标记修改a序列。每次修改的时候修改maxa。如果当前叶子结点a[i]&gt;=b[i]那么就将b[i]+=b[i],cnt+1。一直等到a...

2018-10-03 18:29:14 252

原创 【poj2155】Matrix 树状数组

题目大意给定一个N*N的矩阵a,a矩阵的初值设为0。T次操作,涉及区间翻转0和1以及单点查询。2 &lt;= N &lt;= 1000, 1 &lt;= T &lt;= 50000题解我的做法好像跟其他人不太一样qwq用二维树状数组维护差分,每次(x1,y1)+1,(x2+1,y1)-1,(x1,y2+1),因为右下部分多减了了一次,所以(x2+1,y2+1)+1,然后询问的时候只要加起...

2018-10-03 18:13:09 247

原创 【bzoj2208】[Jsoi2010]连通数 floyd传递闭包

题解一道bitset优化floyd传递闭包裸题!代码#include&lt;iostream&gt;#include&lt;bitset&gt;#include&lt;cstdio&gt;#include&lt;cctype&gt;#define N 2010using namespace std;bitset&lt;N&gt; lnk[N];int n,ans;...

2018-08-31 22:35:44 312

原创 【bzoj2122】[HNOI2006]花仙子的魔法 枚举

题解大力出奇迹,交了一发暴力没想到强行卡过去了qwq代码#include&lt;iostream&gt;#include&lt;algorithm&gt;#include&lt;cstdio&gt;#include&lt;cstring&gt;#include&lt;cctype&gt;#define inf 0x3f3f3f3f#define ll ...

2018-08-30 14:19:53 352

原创 【bzoj2465】[中山市选2009]小球 贪心

题解因为每个球所占的位置都是1,所以只要贪心就好了,分数最大的球能取就取。代码#include&amp;lt;iostream&amp;gt;#include&amp;lt;algorithm&amp;gt;#include&amp;lt;cstdio&amp;gt;#include&amp;lt;cstring&amp;gt;#include&amp;lt;cctype&amp;gt;using

2018-08-30 14:15:13 350

原创 【bzoj1022】[SHOI2008]小约翰的游戏John nim游戏

题解膜拜国家集训队论文代码#include&lt;iostream&gt;#include&lt;algorithm&gt;#include&lt;cstdio&gt;#include&lt;cstring&gt;#include&lt;cctype&gt;using namespace std;int n,sg,flag;inline int read(...

2018-08-30 14:11:44 319

原创 【bzoj1207】[HNOI2004]打鼹鼠 dp

题解f[i]表示从1到第i只鼹鼠出现的时间里并且打死第i只鼹鼠所能打死的最大鼹鼠数目。 (其实就相当于最长不上升子序列一样,只不过转移有一丢丢不一样就是啦。)代码#include&lt;iostream&gt;#include&lt;algorithm&gt;#include&lt;cstdio&gt;#include&lt;cmath&gt;#include&lt;...

2018-08-10 19:03:06 343

原创 【zroj249】占领地区 模拟

题解我们可以根据题意得到,一个炮会打x形的地方,所以我们分开处理将正负对角线,减去重合的格子即可。再用前缀和优化一下复杂度就降到了O(n+m)代码#include&lt;iostream&gt;#include&lt;algorithm&gt;#include&lt;cstdio&gt;#include&lt;cstring&gt;#include&lt;cctyp...

2018-08-08 08:02:29 353

原创 【bzoj1799】[Ahoi2009]self 同类分布 数位dp

(图片上传失败???不知道什么原因) 原题:https://www.lydsy.com/JudgeOnline/problem.php?id=1799题解因为是10^18所以各位数字加起来最大也不超过9*18所以我们就可以一次枚举啊 判断是否整除就在每次构造数字的时候mod一下各位数字加起来的数字,如果最后结果为0的话说明可以整除。代码#include&amp;lt;iostrea...

2018-08-06 16:43:11 279

原创 【bzoj1059】 [ZJOI2007]矩阵游戏 匈牙利算法

题解在同一行同一列的1无论怎么换来换去都会在同一行同一列, 如果想通过转换变到主对角线上必须满足有n个点不在同一行不在同一列,那么我们以i为一边以j为一边进行二分图匹配即可。代码#include&lt;iostream&gt;#include&lt;cstdio&gt;#include&lt;cstring&gt;#include&lt;cctype&gt;using...

2018-08-05 13:09:57 311

原创 【bzoj1270】雷涛的小猫 dp

看注释吧代码#include&lt;iostream&gt;#include&lt;algorithm&gt;#include&lt;cstdio&gt;#include&lt;cstring&gt;#include&lt;cctype&gt;using namespace std;//f1[]表示在当前高度下第i棵树的能吃到最大柿子,f2[]表示高度为i的情况下的能吃...

2018-08-04 08:13:51 280

原创 【bzoj1303】 [CQOI2009]中位数图 数学

题解首先将大于b的赋值为1,小于b的赋值为-1,pos记录b出现的位置,l[i]记录b左边的和为i的数的个数,r[i]记录b右边的和为i的个数。最后统计一下即可。代码#include&amp;amp;lt;iostream&amp;amp;gt;#include&amp;amp;lt;algorithm&amp;amp;gt;#include&amp;amp;lt;cstdio&amp;amp;gt;#include&amp;

2018-08-03 18:07:20 265

原创 【bzoj3555】[Ctsc2014]企鹅QQ hash

题解其实代码是看hzwer博客的qwq 我们枚举去掉某一位的字符串的情况进行比较。pre[i][j]表示第i个字符串的前j个的hash值, suf[i][j]表示第i个字符串后j个的hash值。我们计算第i个字符串去掉第j位的hash值就是pre[i][j-1]+suf[i][j+1]。再排序统计一下即可得到答案。代码#include&lt;iostream&gt;#in...

2018-08-03 14:43:43 409

原创 【bzoj1034】 [ZJOI2008]泡泡堂BNB 贪心

题解贪心策略:先从小到大排序,如果我方最弱的比敌方最弱的强分数+2,如果我方最强的比敌方最强的要强分数+2。否则既然都打不过,我就让什么用都不起的我方最弱跟敌方最强比。碰巧一样厉害分数+1。代码#include&lt;iostream&gt;#include&lt;algorithm&gt;#include&lt;cstdio&gt;#include&lt;cstring...

2018-08-03 11:21:48 222

原创 【bzoj1088】[SCOI2005]扫雷Mine 模拟

题解只要知道了第一行第一列或者最后一行第一列就能推断出整个第一列。而第一列由题目可得只能为1或者0。所以就可以构造出序列。因为构造出的序列必须满足第一列为0或者1并且满足给定的第二列,在构造第一列排除不合法情况即可。代码#include&lt;iostream&gt;#include&lt;cstdio&gt;#include&lt;cstring&gt;#inclu...

2018-08-03 10:09:15 207

原创 【bzoj1800】 [Ahoi2009]fly 飞行棋 模拟

代码#include&lt;iostream&gt;#include&lt;algorithm&gt;#include&lt;cstdio&gt;#include&lt;cstring&gt;#include&lt;cctype&gt;using namespace std;int dis[51],rec[51],n,ToT,ans;inline int read()...

2018-08-02 15:08:43 266

原创 【bzoj3670】【NOI2015】动物园 kmp

企鹅太可爱啦!题解我们先处理出num[i]表示既是它的后缀同时又是它的前缀,并且该后缀与该前缀不重叠,这种字符串的数量。每次num[i]=num[fail[i]]+1(因为本身也算一个后缀)。然后再将算出p &lt; i/2并且s[p]=s[i]这种情况,+1乘在答案中即可。详见代码。代码#include&lt;iostream&gt;#include&lt;cstd...

2018-08-01 20:01:48 694

原创 【bzoj1432】 [ZJOI2009]Function 数学

看题一小时代码五分钟题解我觉得写得很好的:https://blog.csdn.net/cabi_zgx/article/details/79208107 我一开始还考虑了半天旋转90度的情况,最后发现无论哪种情况这都不是最优的。代码#include&lt;iostream&gt;#include&lt;cstdio&gt;int n,k;int main(){s...

2018-08-01 18:30:59 301

原创 【bzoj1192】[HNOI2006]鬼谷子的钱袋 数学

题解输出其二进制位数即可代码#include&lt;cstdio&gt;long long a;int main(){scanf("%lld",&amp;a);int ans=0;for (;a;a&gt;&gt;=1) ans++;printf("%d\n",ans);}

2018-07-31 23:07:23 219

原创 【NOIP2016】蚯蚓 单调队列

一道水题调了一个小时。学个啥oi还是回家种田吧qwq题解开三个队列,将原序列由大到小排列好之后放进第一个队列,然后每次取出三个队列中队头进行比较再切掉分别放到第二个第三个队列尾部。代码#include&amp;lt;iostream&amp;gt;#include&amp;lt;algorithm&amp;gt;#include&amp;lt;queue&amp;gt;#include&amp;lt;cstdio&am

2018-07-31 22:32:41 284

原创 【bzoj1026】[SCOI2009]windy数 数位dp

题解一道数位dp入门题,预处理出f[i][j]表示第i位首位数字位j的方案数。代码#include&amp;amp;lt;iostream&amp;amp;gt;#include&amp;amp;lt;algorithm&amp;amp;gt;#include&amp;amp;lt;cstdio&amp;amp;gt;#include&amp;amp;lt;cstring&amp;amp;gt;#includ

2018-07-30 20:15:57 216

原创 【poj2689】Prime Distance 素数

题意:给出了T组询问,每次询问给出L,R,求出每次[L,R]间相差最大以及最小的相邻素数。题解:由于L,R都很大所以没法直接用欧拉筛筛到。但是我们注意到L,R的差为1e6,可以用数组存下。并且我们可以知道任意一个合数n都拥有一个不大于sqrt(n)的素因数,所以我们可以预处理出1~2^16的所有质数,每次用这些质数筛出来l,r区间的质数,并且存在数组[0,u-l]中即可。#inclu...

2018-07-30 19:01:28 332

原创 【luogu1093】奖学金 模拟

#include&lt;iostream&gt;#include&lt;algorithm&gt;#include&lt;cstring&gt;#include&lt;cstdio&gt;using namespace std;struct node{int id,x,ToT;}a[1010];int n,m;inline int read() { int ret=0;...

2018-07-29 22:14:34 307

原创 【luogu1051】谁拿了最多奖学金 模拟

#include&lt;iostream&gt;#include&lt;algorithm&gt;#include&lt;cstdio&gt;#include&lt;cstring&gt;using namespace std;struct node{string s;int mark,cls,p,v,id;char west,cadre;}a[1001];int n,m,ToT...

2018-07-29 22:05:27 220

原创 【luogu1583】魔法照片 模拟

#include&lt;iostream&gt;#include&lt;algorithm&gt;#include&lt;cctype&gt;#include&lt;cstdio&gt;#include&lt;cstring&gt;using namespace std;struct node{int w,id;}a[2000010];int e[2000010],n,m;i...

2018-07-29 22:00:38 188

原创 【bzoj1725】 [Usaco2006 Nov]Corn Fields牧场的安排 状压dp

状压基础题。#include&lt;iostream&gt;#include&lt;cstdio&gt;#include&lt;cstring&gt;#define p 100000000#define ll long longusing namespace std;int dp[13][1&lt;&lt;12],mp[13],a[1&lt;&lt;12],ToT,n,m;...

2018-07-23 11:32:44 230

原创 【luogu3353】在你窗外闪耀的星星 前缀和

坑点就是一个点上会有很多星星qwq#include&lt;iostream&gt;#include&lt;cstdio&gt;#include&lt;cctype&gt;using namespace std;int s[1010000],n,m,ToT,ans;inline int read() { int ret=0;int ch=getchar(); fo...

2018-07-23 11:30:51 235

原创 【poj1185】【NOI2001】炮兵阵地 状压dp

又是一道状压dp经典题!#include&lt;iostream&gt;#include&lt;cctype&gt;#include&lt;cstdio&gt;#include&lt;cstring&gt;#define M 1&lt;&lt;10#define N 105using namespace std;int dp[N][N][N],mp[N],a[N],b[...

2018-07-22 00:02:29 229

空空如也

空空如也

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

TA关注的人

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