自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

单木的专栏

没事瞎写

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

原创 画一个优美的树

画一个优美的树OGDF代码树结构TreeChart其它我的目的是想画一个结构紧凑、没有冲突、节点分布均匀的树。pymag-trees是一种画树算法的python实现。这是这种算法的介绍和具体分析。OGDFOGDF,Open Graph Drawing Framework,是一个强大的,独立的c++类库,用于图表的自动布局。她不能直接画图但可以输出svg等格式的文件。代码用于布局的代码是...

2019-04-15 10:12:56 940

原创 大数

#include<cstdio>#include<string>#include<iostream>#include<cstring>using namespace std;const int maxl=1000;const int ten[4]={1,10,100,1000};int sizee(int a){ int res...

2018-12-27 18:39:22 189

原创 并查集

1.通俗易懂,适合初学者。http://blog.csdn.net/dellaserss/article/details/77244012.讲解详细,有更多思考。http://blog.csdn.net/dm_vincent/article/details/7655764struct DisjointSet{ vector<int> father,rank; D...

2018-12-23 21:02:13 288

原创 二分图

二分图又称作二部图,是图论中的一种特殊模型。 设G=(V,E)是一个无向图,如果顶点V可分割为两个互不相交的子集(A,B),并且图中的每条边(i,j)所关联的两个顶点i和j分别属于这两个不同的顶点集(i in A,j in B),则称图G为一个二分图。最大匹配未完待续...

2018-11-25 18:43:28 167

原创 hdu 4857 逃生和hdu 1285 确定比赛名次

拓扑排序搞起。两题题意比较相似,但是实际两题不同。4857.所以他要让1号尽量靠前,如果此时还有多种情况,就再让2号尽量靠前,如果还有多种情况,就让3号尽量靠前,以此类推。(考虑顺序有优先级)1285.此时要求输出时编号小的队伍在前;输入数据保证是正确的,即输入数据确保一定能有一个符合要求的排名。...

2018-10-07 18:07:21 146

原创 hdu 1024 Max Sum Plus Plus

题意n个数取m个不重合的部分使和最大,求这个最大值。思路枚举比大小的思路肯定不可取,尝试动态规划。动态规划最自然的想法是:求n个数取若干部分和的最大值,子问题就是对n-1个数取若干部分的最大值。设a[n]为n个数的序列,dpp[n][m]为n个数取m部分的最大值,可以有两种决策达到dp[n][m]的状态:第n个数构成第m部分第n个数不构成第m部分所以状态转移方程,1≤x≤n−m...

2018-10-07 16:59:04 181

原创 51nod-17-10-29

51nod 1183 编辑距离解题思路开始想的用两个字符串的最大长度减去两个字符串的最长公共子串,想当然了。这就要求我们做题的时候一定要考虑全面,不放过一个细节。 再说做法,跟最长公共子串的做法相似,动态规划。代码#include<cstdio>#include<cstring>#include<algorithm>using namespace std;char str1[1010],

2017-10-29 14:56:40 220

原创 c语言各种类型常量表示方式

xxxU : unsigned int xxxL : long int xxxLL : long long xxxF : float

2017-08-18 09:18:23 5400

原创 牛客 猜数游戏

题意:给定一个只包含Y,N的字符串,第i个位置上为Y代表某个数能被i整除,N代表不能,如果存在满足每个字符上的条件的数,则称这个字符串是合法的。 已知字符串长度求合法的字符串的个数,答案模1e9+7。思路:如果一个数的质因子超过一个则它位置上的字符是被唯一确定的。 如6 如果2,3为NY,YN,NN,则6上的字符为N 如果2,3位YY,则6上的字符为Y

2017-07-26 19:20:57 516

原创 牛客 彩色瓷砖

题意:给一个字符串每个字符可以是’R’, ‘G’, ‘B’或者’Y’,让字符中没有相邻的两个字符相同,要对原字符串最少的修改次数。思路:相邻且相同的子串长度为len,len为奇数,则只需修改第奇数个的位置,所以修改的数量是len/2(整除),len为偶数,也只修改偶数个位置,即可满足情况。代码:#include <bits/stdc++.h>#define pi acos(-1)#define

2017-07-26 15:13:44 352

原创 hdu 5144 Frogs 数论

这题的思路还是比较神奇的。 虽然ai的取值范围比较大但与m取gcd之后取值范围就缩小到m的因子范围内。 然后在把0到m-1的数,按与m的最大公约数分类 如果存在ai(与m取最大公约数之后的ai),ai|ba_i|b,则与m的公约数是b的数都能取到。#include <bits/stdc++.h>#define pi acos(-1)#define pb push_back#define

2017-07-16 15:14:58 231

原创 2017-06-05

因为我们的服务器暂时不能用了,所以这周大家现在这看,等好了我在放过去。 题目链接A从题目中给出的条件可以猜出是用最大公约数,做题的时候要注意自己一星一点的想法,答案往往就藏在这里面。那为什么是用最大公约数呢?我们知道最大公约数的求法仔细分下来主要有连个步骤:gcd(a,b)=>gcd(a%b,b)gcd(a,b) => gcd(a\% b, b)gcd(a%b,b)=>gcd(b,a%b)gc

2017-06-13 10:55:12 211

原创 每周训练 题解

A从题目的第一行中可以很容易看出,这题用的是扩展欧几里得算法i∗a+j∗b=n+1i*a+j*b=n+1,因为要保证i∗ai*a,j∗bj*b为正整数,所以i,j必须为正整数。所以这题就求i,j的解为正整数的解的个数。没有看着来说明你对这个算法还不够了解。 求正整数解的个数的时候我是求出i的最小正整数解,再用i求出对应的j,接下来假设我们让i增加(i必然满足情况),那么j必然减小,所以让j除以j的

2017-06-05 11:12:52 293

转载 O(n)回文子串(Manacher)算法

资料来源网络 参见:http://www.felix021.com/blog/read.php?2040问题描述:输入一个字符串,求出其中最大的回文子串。子串的含义是:在原串中连续出现的字符串片段。回文的含义是:正着看和倒着看相同,如abba和yyxyy。 解析:这里介绍O(n)回文子串(Manacher)算法算法基本要点:首先用一个非常巧妙的方式,将所有可能的奇数/偶数长

2017-05-03 17:07:51 261

转载 MySQL索引使用的数据结构:B-Tree和B+Tree

MyISAM是MySQL 5.5之前版本默认的存储引擎,从5.5之后,InnoDB开始成为MySQL默认的存储引擎。MyISAM使用B-Tree实现主键索引、唯一索引和非主键索引。InnoDB中非主键索引使用的是B-Tree数据结构,而主键索引使用的是B+Tree。本文就是对这两种数据结构做简单的介绍。1. B-TreeB-Tree不是“B减树”,而是“B树”。这里参考了严...

2017-04-25 17:43:46 10697 2

转载 LRU最近最久未使用算法

LRU最近最久未使用算法 标签: 算法操作系统2015-06-16 15:22 2082人阅读 评论(0) 收藏 举报本文章已收录于:操作系统知识库 分类:C++(21) 作者同类文章X操作系统学习(11) 作者同类文章X版权声明:本文为博主原创文章,未经博主允许不得转载。算法过程最近最久未使用算法需要引入内存块时钟,即为每个内存块设定一个计时器...

2017-04-25 17:39:29 4950

原创 c++ string

int stoi (const string& str, size_t* idx = 0, int base = 10) //将字符串转化成int型整数

2017-04-09 19:41:17 240

原创 第八届蓝桥杯大赛c/c++ b组

5200 上面是我的答案 可以直接手算,但容易出错。 或者复制题目给的数据,稍微修改并格式化,放到文本文档中,不管是运行后复制数据,还是用io重定向,都要比手算方便。 比赛的时候freopen的前两个参数写反了,一直读不进去210 比赛的时候没想清楚怎么搜#include<cstdio>#include<cstring>#define LL long long#def

2017-04-08 16:24:04 1606

原创 程序易错location

遇到某个条件才更新,注意最后是否需要更新

2017-03-22 16:47:02 477

原创 c++ map

//遍历map<string,CAgent>::iterator iter;for(iter=m_AgentClients.begin();iter!=m_AgentClients.end(); ++iter){ if(iter->first=="8001"){ this->SendMsg(iter->second.pSocket,strMsg);//iter->firs

2017-03-20 19:24:17 251

原创 hdu 1011 Starship Troopers(树形背包)

题意一棵树,花费一定,使得获得的价值最大思路规范的树形背包,过程不是很理解。代码#include<cstdio>#include<vector>#include<cstring>#include<algorithm>using namespace std;const int Ni=110;int n,m;int coss[Ni],weg[Ni];int dp[Ni][Ni];boo

2016-12-27 17:38:54 317

原创 把n个物品分成m堆

把n个相同物品分成m个相同的堆,可空把n个相同物品分成m个相同的堆,不空S(n,m)=S(n−1,m−1)+S(n−m,m)S(n,m) = S(n-1,m-1) + S(n-m,m)把n个相同物品分成m个不同的堆,可空Cm−1n+m−1C_{n+m-1}^{m-1}把n个相同物品分成m个不同的堆,不空Cm−1n−1C_{n-1}^{m-1}把n个不同物品分成m个相同的堆,可空把n个不同物品分成m个

2016-11-26 10:17:56 10495 2

原创 codeforces732E Sockets(数据结构+贪心+思维)

题意思路先比较有无相同的,有则匹配,然后对s序列除2向上取整,再比较,一直循环,循环31次。我用的multimap。代码/* ********************************Author : danmuCreated Time : 2016年11月10日 星期四 12时11分27秒File Name : a.cpp*************

2016-11-10 16:43:20 344

原创 codeforces732D Exams(贪心+二分)

题意不可描述思路二分答案,贪心判断代码/* ********************************Author : danmuCreated Time : 2016年11月10日 星期四 10时19分02秒File Name : a.cpp******************************** */#include <algorithm

2016-11-10 12:07:02 302

原创 codeforces732B Cormen — The Best Friend Of a Man(dp 贪心)

题意n个数除边界外连续两个数必须大于k,给出n个数,问还需要最小加多少满足上述条件,并输出一种可能的情况思路蒙的代码/* ********************************Author : danmuCreated Time : 2016年11月08日 星期二 03时03分48秒File Name : a.cpp***************

2016-11-07 19:22:18 289

原创 hysbz1008 越狱(组合数学)

题意监狱有连续编号为1…N的N个房间,每个房间关押一个犯人,有M种宗教,每个犯人可能信仰其中一种。如果相邻房间的犯人的宗教相同,就可能发生越狱,求有多少种状态可能发生越狱,对结果取模思路考虑没有犯人信仰相同,情况数为m∗(m−1)n−1m*(m-1)^{n-1}。

2016-11-05 19:22:04 217

原创 codeforces733C Epidemic in Monstropolis

题意一群怪兽排队看医生,每个怪兽都有自己的重量,大的吃小的,吃完后大的重量增加到大的加小的重量。问能否达到题目中所给的状态,如果能输出一种可能的情况。思路模拟代码/* ********************************Author : danmuCreated Time : 2016年11月03日 星期四 20时02分38秒File Name

2016-11-04 19:25:24 283

原创 codeforce733D Kostya the Sculptor

题意从n个平行六面体中最多选出两个构成一个新的平行六面体,当新的六面体的能切出最大的球体时,应选哪几个平行六面体。思路用map存储两条边对应的最大的第三边的边长和index,把一个平行六面体构成的看成,和一个“空”的组合。对于每个长宽高,三种情况都比较一下,就好了。代码/* ********************************Author : danmuCreate

2016-11-04 19:12:25 197

原创 单调队列

得粉碎

2016-10-31 20:08:10 157

原创 hdu 5945 Fxx and game(dp+单调队列)

题意一个数由x变到1,有两种操作,减去一个1到t的数或除以k(前提是能整除),问最少操作是多少。代码/* ********************************Author : danmuCreated Time : 2016年11月01日 星期二 00时08分02秒File Name : a.cpp***********************

2016-10-31 20:07:33 283

原创 codeforces 724B Batch Sort

题意每行的是1到m的一个排列,每行可以挑两个元素交换,可以交换两列一次,至多n+1个操作,问一系列操作后能否满足每行是1到m的递增排列。思路这题思路很飘,操作没有顺序,枚举交换列的操作,交换完成后再利用行操作看能否达到要求。代码/* ********************************Author : danmuCreated Time : 2016年10月1

2016-10-10 21:56:10 316

原创 数据结构总结

树状数组,特点:单点更新,区间查询,稍微修改后能区间更新,单点查询。线段数,特点:比树桩数组复杂,能处理问题也更加广泛,延时更新。莫队算法,特点:在离线查询的前提下,通过更改查询顺序,来利用前一次查询的结果,达到节省时间的目的。

2016-09-29 20:45:33 247

原创 区间查询问题

思路一般会用到线段数,树桩数组等数据结构。 一般思路是查询区间的值可以由某个公式直接得出,更为常见的是用上面的数据结构处理整个序列,使得查询区间的值可以直接求出。题目codeforce 718c Sasha and Array

2016-09-29 20:34:32 309

原创 总结

效率还是很重要的,无论是对于一道题而言,还是对于训练方法而言。

2016-09-22 23:26:20 177

原创 取模大作战

给定一个n,∑ni=1n%i=n2−∑ni=1i∗⌊ni⌋\sum_{i=1}^n n\%i=n^2-\sum_{i=1}^n i*\left\lfloor\frac ni\right\rfloor由于⌊ni⌋\left\lfloor\frac ni\right\rfloor在一定范围内是保持不变的,所以我们接下来可以把时间复杂度降到n‾√\sqrt n,也可以直接跳 题目:51nod 1125

2016-09-21 19:14:19 277

原创 hdu 5901 Count primes(Meisell-Lehmer 统计n(很大)以内的素数个数)

两种方法都不懂,留个纪念吧/* ********************************Author : danmuCreated Time : 2016年09月19日 星期一 17时29分04秒File Name : a.cpp******************************** */#include <algorithm>#inc

2016-09-19 18:02:56 643

原创 求满足某种性质并最接近某个数的数

预处理所有满足性质的数,二分查找 hdu 5878,

2016-09-17 18:47:13 281

原创 字典数 Trie

代码struct Trie{ int v; Trie *next[26]; Trie(){ v=0; memset(next,NULL,sizeof next); } };Trie* root;void ins(char *s){ int l=strlen(s); Trie *p=root; for(i

2016-09-15 16:09:59 216

原创 hdu 5869 Different GCD Subarray Query

思路一开就想到多校第一场(hdu 5726 GCD)到后来一直没进展。 看了题解自己一开始的思路是对的,但后面的处理和本题不太一样。 固定右端点(都行),计算每个点到该端点的gcd(不同的gcd较少,相同的区间可以合并,时间和空间动能降下来)。然后在右端点固定的情况下,用树桩数组统计以每个点为起点的不同区间的不同gcd个数记到该起点中,对于每个询问的区间,求树桩数组对应区间的和,几位答案。代码h

2016-09-14 19:31:01 265

原创 费马小定理

题目cf 615D Multipliers

2016-09-07 17:49:20 240

空空如也

空空如也

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

TA关注的人

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