自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(79)
  • 收藏
  • 关注

原创 如何避免360开机启动及自动弹窗

先说教程 下载软件:https://pan.baidu.com/s/1kWLREFP 密码:9yqv(程序员版)     :https://pan.baidu.com/s/1o9DEcno  密码:4b9h(普通版) 当然,害怕软件有病毒的可以自己去编译,源码在此: https://paste.ubuntu.com/26366578/  建议使用vc++2015及以上版本编

2018-01-12 17:34:54 3164

原创 博客搬家

有关神经网络和深度学习的文章会发布在 https://www.cnblogs.com/shensobaolibin/ csdn的博客可能只会更新一些有意思的acm题目了

2017-11-18 11:11:47 279

原创 数位dp模板

数位dp其实就是记忆化dfs也没什么好说的 现在看一个题,让你求出所有l到r的圆数,圆数就是这个数字转化成2进制后0的个数比1的个数多 开始写错了,就是没注意前导0的问题 dfs一般要传4个参数,一个是第几位,一个是状态,一个是需不需要上界,一个是有没有前导0 #include #include #include #include #include using namespac

2017-10-24 15:28:30 378

原创 Lis模板

#include #include #include #define maxn 1000 using namespace std; int ans[maxn],a[maxn],len; int Search(int data){//我们要找到的是最小的那个>=mid的ans的位置 int l=0,r=len,mid; while(l<r) {

2017-10-24 14:19:30 412

原创 差分约束模板

差分约束一般是用来求最大值最小值问题的 那么就分为两个问题 求最小值,把所有不等式化为>=然后求最长路 求最大值,把所有不等式化为 如果碰到 然后就是单纯的图论题了 现在来看poj1716 Description An integer interval [a,b], a Write a program that: find

2017-10-24 12:55:52 374

原创 莫队算法模板

codeforces 617E 题意:给你n个数,有m个询问,问[l,r]之间有多少对i和j满足a[i]^a[i+1]^...^a[j]=k; 这个题目就是我先求出前缀异或和 然后i到j的异或和就是a[j]^a[i-1] 假设我们已知st到en的答案(ans),然后我们开一个Map数组,Map[i]表示st到en中前缀异或和为i的个数,Map也是已知的 现在我们要加上一个点,st-1或者

2017-10-23 20:33:49 305

原创 线段树模板

#include #include #include #include #define maxn 1000 #define inf 1000000 using namespace std; class segtree { public: int val,addmark; }; segtree segt[maxn<<2]; int a[maxn]; void build(int

2017-10-22 12:54:39 274

原创 再看区间dp

区间dp就是我知道区间长度为len-1的所有状态,然后我可以通过小于len的的状态转移到区间长度为len的状态 一般是在外层循环遍历len,内层循环遍历起点来做的 但是这次做了一个很特别的题目 题目描述:   在x轴上有n个客人叫外卖,每个顾客因为追的番更新进度不同,所以在等外买的时间里每秒增加的愤怒值不同。给出客人和餐厅的位置,以及客人每分钟增加的愤怒值,还有快递小哥的行走一

2017-10-17 15:27:56 327

原创 凸包的判定及将凸包中的点逆时针存在数组中

数据结构: struct Point { double x; double y; Point(double a = 0, double b = 0) : x(a), y(b) {} friend bool operator < (const Point &l, const Point &r) {//以y为第一优先级,x为第二优先级

2017-10-15 18:57:44 359

原创 再看斜率优化打牌

emmmm,马上要比赛了,最近正在复习打牌 又看了遍斜率优化dp,感觉对他的理解上了一个新的高度呐 斜率优化dp可以优化掉一个n 一般来说,如果要求一个状态时要遍历前面已经求过的所有状态的话,就可以考虑使用斜率优化 再求第k个状态时对于前面的所有状态如果k2比k1更优就有 Y(k2)-Y(k1)X(k2)-X(k1)f(k) 我们就可以使用斜率优化 这里我们要保证

2017-10-10 20:26:41 336

原创 KMP模板

本来想直接copy匡斌的模板来着的 但是匡斌的模板会RE,next的原因,现在就稍微改了改拿过来了 #include #include using namespace std; const int N = 1000002; int Next[N]; char S[N], T[N]; int slen, tlen; void getNext() { int j, k; j

2017-10-02 09:47:35 327

原创 最小费用最大流模板

#include using namespace std; #define INF 0x3f3f3f3f typedef long long LL; const int M=2010;//边数注意啦,我们这东西是有逆向边的,所以边数要×2哦 const int N=510;//点数 struct edge { int to; int next; int cap;

2017-09-30 20:37:15 202

原创 Tarjan强连通分量模板

#include #include #include #include #include #define maxn 100100 #define maxm 500100 #define inf 0x3f3f3f3f using namespace std; struct Edge { int next,en; } ; Edge edge[maxm]; int head[ma

2017-09-27 20:46:59 379

原创 单纯最大流(两个给定节点的最小割)问题的最优解法

运用了各种不明所以的优化 反正我们会板子就行啦 然后再说几点最大流的用处 点i和点j的最大流其实是等于把点i和点j分开的最小割的 你想啊,从i到j有那么多流量对吧 如果我想要让i一滴水都留不到j 那么我至少要割掉最大流那么多的流量吧,具体证明。。。。我忘了,反正我等弱鸡队伍用个板子就行 还有一个用处是在忘了那一场的网络赛上看到的 就是求两个点的最小割的最小要割的边的

2017-09-20 18:50:30 456

原创 HDU6203 补题LCA复习+dfs序

这个题目其实算是贪心吧,感觉自己贪心有点菜,这几天要把贪心练一下了 建树,dfs什么的就不说了,这里主要讲下思路 就是建完树后,给你两个点 然后求出他们的lca,将这两个点u,v和lca,dlca(lca点的深度)存在一个结构体数组中 然后将这个数组按深度从大到小排序 接着遍历这个数组 每次看u,v有没有访问过,如果有就不管,如果没有,就将他们的lca点拿掉并将lca点的所有子节点记为

2017-09-14 20:33:31 470

原创 HDU 6199(DP)补题+一个超级有用的滚动数组思想

恩,这个题目开始想着应该不能用dp来写,因为后面的状态对前面的状态有影响 然后emmmm,只有后面的状态对前面的状态有影响,这个。。。有点背锅了 现在说正解 dp[p][i][k]就是人p,在第i个宝石(这个宝石未取到)至少要取k个的差值 那么我们的状态转移方程就出来了 假设p=1代表Alice        p=0代表Bob dp[1][i][k]=max(dp[0][i+

2017-09-12 17:12:30 330

原创 我对不起党,对不起国家,对不起人民HDU6201 补题(disj)

这个题目其实特别傻逼 但是因为数组开小了一直T mmp! 其实就是建一个超级源点 对于每个点我们建一条有向边连接超级源点源点和这个点边权为a【k】 然后该怎么建图就怎么建图 跑一个最短路,求出超级源点到每个点的最短路,那么这个就是我从别的地方买,到这个点卖,买入价格+路费的最小值 然后emmmmm。。。。。再不会就别丢人了,退群吧 下面附上自己的1sAC代码,这个。。。。听说还有大

2017-09-11 14:07:05 1012

转载 大家一起来数二叉树把

长沙理工大学第十二届ACM大赛 K.大家一起来数二叉树吧【Dp】 标签: 长沙理工大学第十二届ACM大赛 2017-09-03 19:52 27人阅读 评论(0) 收藏 举报  分类: 思维(599)  dp(323)  版权声明:0.0小白有写的不好不对的地方请指出~ 目录(?)[+] 题目描述

2017-09-05 19:59:07 395

原创 对DFS序的理解

其实dfs序这个东西就是可以把找一个节点的所有子节点的问题转换为一段区间中的问题的一种方法 而区间中的问题,啧啧,线段树,主席树什么的搞一搞就好了哇 我们dfs的时候,开一个全局变量cnt,然后每做一次dfs,cnt++ 那么这个节点的dfs序就是第一次经过这个节点的cnt 对于每个节点,他都有两个东西,一个是第一次访问的cnt,因为dfs会回溯嘛,那另一个就是回溯时的cnt 那么dfs

2017-09-03 19:00:08 272

转载 动态建线段树,hdu6183,参考杰少的博客

我的代码不知为什么t掉了,这个等杰少回来再去问问他 先把我t掉的代码放在这里,主要是学一下动态建树的思想 这个是非常省空间的 这题目主要思路就是对每个颜色建一颗线段树,保存其y1,y2,范围内的点到y轴的最小距离 #include #include #include #include #define inf 0x3f3f3f3f using namespace std; st

2017-09-02 18:09:05 506

原创 广西邀请赛PD(dp+矩阵加速)

这个题目也是很不容易啊,一直坚持不懈的推了一天,终于自己写出来了 题意很简单这里就不说了 其实我们发现对于每个n只有5种结尾的情况,所以开始就想从这5个情况中找突破口 结果发现要么会算重要么会算少 然后就找了16种状态,就是最后一列的状态,结果16个dp方程把我推得晕头转向的 最后想到,我们关心的就是把最后那五种情况的和而已 而这五种情况可以由那16种情况中的五种推出来,然后慢慢推,发

2017-09-01 12:29:31 352

原创 玲珑杯Round20PE

#include #include #include #include #include #include #define maxn 400100 using namespace std; struct Data { int val,id; }; struct Tree { int l,r,sum; }; Data a[maxn]; Tree t[maxn*10

2017-08-29 15:00:25 226

原创 主席树静态查找区间第k小模板(并没有杰少详细)即讲解

#include #include #include #include #include #include #define maxn 400100 using namespace std; struct Data { int val,id; }; struct Tree { int l,r,sum; }; Data a[maxn]; Tree t[maxn*10

2017-08-29 14:55:00 360

转载 A*求单元第k短路的模板

#include #include #include #include #include #include #include #include #include #include #include #include #define PI acos(-1.0) #define mem(a,b) memset(a,b,size

2017-08-25 16:51:09 201

原创 求最短路即次短路模板,一条边可以重复走的HDU6181

#include #include #include #include #include #include #include #include #define MAXSIZE 100010 #define INF 1e18 #define LL long long using namespace std; //int ans,n,k,a[MAXSIZE],dist1[MAXSIZE],dist

2017-08-25 13:56:10 515

转载 卡特兰数及其应用

4对括号有多少种可能的合法匹配方式?n对括号呢? 此题是卡特兰数的一个通常应用,相似的还有出栈顺序等。关于卡特兰数的具体内容,请参阅百度百科或Wiki. http://baike.baidu.com/view/2499752.htm   网络上可以搜到很多相关的题目和解答,但是鲜有易懂的推导过程。这里记录一种推导过程如下:   结论:对于n对括号,合法的排列共有C(n,2n) -

2017-08-21 19:37:45 385

原创 数位dp 求l-r(10进制) 在k进制中有多少个回文数的模板

#include #include #include #include using namespace std; #define LL long long LL l, r; int a[66]; LL dp[66][66][40]; LL dfs(int len, int l, int r, bool lim, bool ok,int k)//ok表示是回文串,k表示k进制 {

2017-08-20 14:43:01 1095

转载 第一类,第二类Stirling数,Bell数模板 来自(http://blog.csdn.net/sr_19930829/article/details/40888349)

[组合数学] 第一类,第二类Stirling数,Bell数 标签: ACM算法组合数学Stiring数 2014-11-07 10:32 2176人阅读 评论(0) 收藏 举报 版权声明:本文为博主原创文章,未经博主允许不得转载。 一.第二类Stirling数         定理:第二类Stirling数S(p,k)计数的是把p元素集合划分到k个不可

2017-08-17 20:45:07 214

原创 斯大林数,k个物品,分到m种不同的盒子里,有几种分法(保证没有空盒子)

long long s[maxn][maxn],c[maxn];//存放要求的Stirling数 const long long mod=1e9+7;//取模 void init()//预处理 { memset(s,0,sizeof(s)); s[1][1]=1; for(int i=2;i<=maxn-1;i++) for(int j=1;j<=i;j+

2017-08-17 20:39:44 754 2

原创 最小割模板

其实最小割就是把一个图分为两部分的最小花费 然后,因为时间复杂度是o(n^3) 所以用邻接表存就好了 #include #include #include using namespace std; #define mem(a) memset(a, 0, sizeof(a)) const int maxv = 500; const int inf = 0x3f3f3f3f; int

2017-08-14 16:05:02 486

原创 最小费用最大流模板

#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define N 1000 #define INF 1000000

2017-08-14 15:16:18 293

原创 最大流,kuangbin的最牛逼的模板

const int MAXN=20010;//点数的最大值 const int MAXM=880010;//边数的最大值 const int INF=0x3f3f3f3f; struct Node { int from,to,next; int cap; }edge[MAXM]; int tol; int head[MAXN]; int dep[MAXN]; int gap[MA

2017-08-14 14:53:03 1876 1

原创 最大流DFS(EK)算法模板

#include #include #include #include #include #include #define maxn 1000 #define inf 0x3f3f3f3f using namespace std; struct edge//数据结构 { int en,flow,rev; }; vector v[maxn]; int vis[maxn];

2017-08-14 13:45:13 674

原创 codeforces Round428PC

题意就是给你一棵树,算他从根走到叶子的期望 这个题目给了我一个很重的教训,就是我在写这道题的时候把求期望算成了求平均值 然后就没写出来,接着就心态爆炸了 #include #include #include #include #include #include #define maxn 100100 using namespace std; struct EDGE {

2017-08-13 13:28:53 258

原创 HDU6015(思维题)

题目意思就是给你一颗树, Bob可以在树上染色,就是选择一个点,并且将其周围的点涂黑 Alice可以将树上的一个点涂白 Bob还可以做一个操作,就是剪枝,剪枝之后影响的只是涂黑的操作,就是比如我涂一个点本来可以把周围的点全部染黑的,现在就是减掉的部分就不能染黑了 最后,当树全部都被涂完的话,我们就找树上有没有白点,如果有那么Alice赢了,否则就是Bob赢 那么题解就是判断,分m

2017-08-11 16:46:36 396

原创 Mark一下读入一行的代码

getchar();         c=getchar();         while(c!='\n')         {             if(c==' ')                 {Max=max(Max,p);p=0;}             else             if(c>='A'&&c             c=getcha

2017-08-09 13:06:14 250

原创 HDU6092(动态规划思想)

其实咱们都做过给你k个数然后求这k个数有多少个子集的和等于k的题 那么现在就是反过来了 那么做法也是很神奇的 对于序列a,我的1的个数就是a[1]的个数 那么如果我去掉所有的1,并且维护a序列的性质不变,那么2的个数就是a[2] 那么问题来了,如何去掉所有的数k后维护a的性质不变呢 解决方法就是我们一个一个的去掉k 现在我去掉一个k后 由于我知道1-k-1的数全部都被去掉了 那么

2017-08-08 19:59:03 466

原创 EK(BFS)求最大流的算法模板(邻接表)

#include #include #include #include #include #include #define inf 0x3f3f3f3f using namespace std; int Map[300][300],path[300]; int bfs(int st,int en) { queue q; int flow[300]; mems

2017-08-07 15:36:30 412

原创 第三场多校 03 HDU6058

这个题目主要的思路是对的 就是计算每个数字出现的次数 然后我发现我们可以对每个数字,往左找k个比他大的,往右找k个比他大的 然后他们的位置之差乘起来就是出现的次数 等下会补个图详细解释下 然而如果我们找k个比他大的话,线性找的话,时间复杂度会爆炸 所以我们就想从最小的开始找,然后找一个就把他从数组中删去 那么对于下一个数,他的左右k个就是k个比他大的数了 所以我们要保存每个

2017-08-02 14:36:38 260

原创 zoj3537 凸包,最优三角形,区间dp

昨天本来只是想刷个区间dp而以,然后碰到了这题 然后就用一下午学了凸包的判定和最优三角形 然后今天花了三个小时把这题AC了,也强化了自己对凸包,最优三角形和区间dp的理解 题意就是给你一个点集,如果这个点集中的点不能全部构成一个凸包的话,就直接输出一句话 否则就输出能把这个凸包切成三角形的最小花费,算花费的公式已经给出来了 #include #include #include #i

2017-07-31 16:08:44 268

空空如也

空空如也

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

TA关注的人

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