c++日记
文章平均质量分 59
zhangxian___
come on ,I am not too terrible !
展开
-
费马小定理
转载自:http://www.xieguofang.cn/Maths/Number_Theory/Fermat%27s_Little_Theorem_1.htm#cj2神奇的费马小定理 (1) ——从实验、观察、发现到猜想和证明 谢国芳(Roy Xie) Email: roixie@163.com转载 2017-07-29 12:07:19 · 1621 阅读 · 0 评论 -
vijos1250 最勇敢的机器人
分组背包……先讲一下分组背包吧原创 2017-07-07 10:58:22 · 541 阅读 · 0 评论 -
vijos1193扫雷
题目地址:https://vijos.org/p/1193只能说一道非常好的题。这道题的dp递推非常有意思,我还是看了题解明白的,要让我自己想,肯定想不出来orz。f[i][j][k]表示前i个数,j表示下一行有没有雷,k表示这一行有没有雷的方案数。那么递推式有非常的多,就看程序:#include#define ll long long#define st stri原创 2017-07-07 09:34:46 · 279 阅读 · 0 评论 -
2017-7-4近期总结
近期每天刷的还是noip上下的难度的题,效率比从前提高不少。一天大概都是6道题左右的样子,我还是比较满意的。但是昨天跟贾老师聊完后我觉得确实应该把近期学习的东西进行总结,期间找到的感觉也写下来,要不然都忘了可不是很好^ _ ^这段时间我刷的最多的应该是DP题,我能感觉到我的DP能力提升了不少。在做DP的时候,我习惯先确定有几层循环,分别对应什么。然后不管空间,先写出数组,然后再原创 2017-07-05 10:10:05 · 355 阅读 · 1 评论 -
dancing links(舞蹈链)
转载自:http://www.cnblogs.com/grenet/p/3145800.html精确覆盖问题的定义:给定一个由0-1组成的矩阵,是否能找到一个行的集合,使得集合中每一列都恰好包含一个1例如:如下的矩阵就包含了这样一个集合(第1、4、5行) 如何利用给定的矩阵求出相应的行的集合呢?我们采用回溯法 矩阵1:转载 2017-06-27 13:38:06 · 638 阅读 · 0 评论 -
八数码问题
大前天lxt把八数码问题给我们留成了作业。https://vijos.org/p/1360还记得大概半年前我第一次接触这道题,当时基本功很差,完全看不懂。大前天下午写完vijos1205之后写了一下八数码,可以说思路跟标程是完全一样的,都用了一个小技巧:zerox,zeroy.包括在转移的时候,也是很简单:x[newzerox][newzeroy]=x[zerox][zer原创 2017-06-27 12:15:23 · 407 阅读 · 0 评论 -
vijos1441 打鼹鼠
今天看到一道非常好的题,vijos1441 打鼹鼠。https://vijos.org/p/1441开始智障的想了一个n^3的大DP,就是第i时刻,处在j行,k列。n其实很简单:f[i]表示第i时刻打到的最多鼹鼠,然后…… 然后就没了。原创 2017-06-27 11:04:35 · 409 阅读 · 0 评论 -
图的计数
本文没有内容,只有:https://wenku.baidu.com/view/7d370476f242336c1eb95e21.html###转载 2017-06-25 10:36:13 · 433 阅读 · 0 评论 -
数位DP
转载自:http://blog.csdn.net/wust_zzwh/article/details/52100392基础篇数位dp是一种计数用的dp,一般就是要统计一个区间[le,ri]内满足一些条件数的个数。所谓数位dp,字面意思就是在数位上进行dp咯。数位还算是比较好听的名字,数位的含义:一个数有个位、十位、百位、千位......数的每一位就是数位啦!之所以要引入转载 2017-06-25 09:11:10 · 323 阅读 · 0 评论 -
判断一个图是否为二分图
转载自:http://blog.csdn.net/joy_go/article/details/8567069怎样判断一个图是否为二分图?很简单,用染色法,即从其中一个顶点开始,将跟它邻接的点染成与其不同的颜色,如果邻接的点有相同颜色的,则说明不是二分图,每次用bfs遍历即可。[cpp] view plain copy#inc转载 2017-06-25 08:49:15 · 11971 阅读 · 0 评论 -
vijos1023 Victoria的舞会3
这道题我用的是floyd预处理,并查集的思想。虽然实现很简单,但是有很多细节问题还是值得认真研究的。https://www.vijos.org/p/1023先上一下我之前错的代码://#include#include#include#include#include#include#include#include#include#include#include#原创 2017-07-04 10:37:05 · 352 阅读 · 0 评论 -
link-cut tree
转载自:http://www.cnblogs.com/BLADEVIL/p/3510997.htmlBLADEVILHis judgement cometh and that right soon.动态树之LCT(link-cut tree)讲解 动态树是一类要求维护森林的连通性的题的总称,这类问题要求维护某个点到根的某些数据,支持树的切分,合并,转载 2017-07-18 14:14:05 · 262 阅读 · 0 评论 -
LCT
转载:http://blog.csdn.net/jeremygjy/article/details/51078087引入现在我们需要一个数据结构满足支持以下的操作:两个节点连接(保证不出现环)两个节点断开求任意两个节点之间的区间和这样是不是很像树链剖分? 但是因为是动态的所以我们采用动态树来进行维护。样例现在给出一个样例,我们一下的解释都以当前样例为转载 2017-07-27 15:49:55 · 346 阅读 · 0 评论 -
splay讲解
转载自:http://blog.csdn.net/clove_unique/article/details/50630280首先声明:万分感谢gty大哥的帮助!这年头能找到简单易懂的数组版平衡树模板只能靠学长了!变量声明:f[i]表示i的父结点,ch[i][0]表示i的左儿子,ch[i][1]表示i的右儿子,key[i]表示i的关键字(即结点i代表的那个数字),cn转载 2017-07-27 15:48:44 · 400 阅读 · 0 评论 -
manacher算法求解最长回文字串
转载自:http://blog.csdn.net/yzl_rex/article/details/7908259回文串定义:“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。回文子串,顾名思义,即字符串中满足回文性质的子串。经常有一些题目围绕回文子串进行讨论,比如POJ3974最长回文,求最长回文子串的长度。朴素算法转载 2017-07-19 07:05:18 · 397 阅读 · 0 评论 -
数位DP讲解
转载自:http://www.cnblogs.com/itlqs/p/5935308.html数位DP其实是很灵活的,所以一定不要奢求一篇文章就会遍所有数位DP的题,这一篇只能是讲清楚一种情况,其他情况遇到再总结,在不断总结中慢慢体会这个思想,以后说不定就能达到一看到题目就能灵活运用的水平。(其实DP都是这样……) 这一篇要说的数位DP是一道最简单的数位DP:htt转载 2017-07-18 14:52:05 · 10613 阅读 · 20 评论 -
数位DP
转载自:http://blog.csdn.net/wust_zzwh/article/details/52100392基础篇数位dp是一种计数用的dp,一般就是要统计一个区间[le,ri]内满足一些条件数的个数。所谓数位dp,字面意思就是在数位上进行dp咯。数位还算是比较好听的名字,数位的含义:一个数有个位、十位、百位、千位......数的每一位就是数位啦!转载 2017-07-18 14:50:48 · 935 阅读 · 0 评论 -
插头DP
转载自:http://blog.csdn.net/sf____/article/details/15026397最近两周一直在刷DP题,前几天接触了插头DP。说实话,直接做“入门”题Ural 1519 Formula 1难度略大,而网上也没有个由浅入深的题表和教程。故总结了一下最近做的、适合作为插头DP专题入门题的题目,专心写一篇博客。大牛见笑。 学习插头DP前,转载 2017-07-18 14:47:37 · 666 阅读 · 0 评论 -
状态压缩DP
转载自:http://blog.csdn.net/accry/article/details/6607703动态规划本来就很抽象,状态的设定和状态的转移都不好把握,而状态压缩的动态规划解决的就是那种状态很多,不容易用一般的方法表示的动态规划问题,这个就更加的难于把握了。难点在于以下几个方面:状态怎么压缩?压缩后怎么表示?怎么转移?是否具有最优子结构?是否满足后效性?涉及到一些位转载 2017-07-18 14:45:48 · 387 阅读 · 0 评论 -
Splay算法
转载自:http://blog.csdn.net/ric_shooter/article/details/20636487这是我的第一篇博文,由于被splay坑得太惨,所以毅然决定以此开博。 蜘蛛快来:伸展树解释splay的文章满大街都是,但用pascal的毕竟少,所以这是用pascal代码来解释的(C++代码在最后) 知道BST的请自动跳到转载 2017-07-18 14:18:55 · 1343 阅读 · 0 评论 -
Splay
首先声明,本教程的对象是完全没有接触过splay的OIer,大牛请右上角。。PS:若代码有误,请尽快与本人联系,我会尽快改正首先引入一下splay的概念,他的中文名是伸展树,意思差不多就是可以随意翻转的二叉树PS:百度百科中伸展树读作:BoGang,不知道是不是因为和某位大牛有关系先看一道题目:skydec有n个数,每次他都会把一些数放进一些盒子里,由于sk转载 2017-07-18 14:17:53 · 482 阅读 · 1 评论 -
LCT问题
Update on 2017/4/17 多坑慎入…… 这篇文章不仅没有讲什么虚实边,作者还是个智障。 大家如果要看的话建议先去参考其他人的TAT 窝理解清楚再补。。。QAQ这次不是在很多人的帮助下……而是自己调的代码、、、 略微看了看自己LCT掉进去的几个坑、、、 略微介绍一下: LCT的类似于树链剖分,只不过树链剖分是静态的,而LCT是动态的。 LCT转载 2017-07-18 14:16:20 · 762 阅读 · 0 评论 -
汉诺塔通项公式证明
汉诺塔通项公式汉诺塔问题家传户晓,其问题背景不做详述,此处重点讲解在有3根柱子的情况下,汉诺塔问题求解的通项公式的推导。问题背景:有A,B和C三根柱子,开始时n个大小互异的圆盘从小到大叠放在A柱上,现要将所有圆盘从A移到C,在移动过程中始终保持小盘在大盘之上。求移动盘子次数的最小值。变量设置:n为圆盘个数,H(k)为n=k时移动盘子次数的最小值。递推公式: H(k)=2H(k-1)+1。通项公式:原创 2017-06-23 21:18:45 · 2002 阅读 · 0 评论 -
vijos1698单轨纵帆船
初看这道题,不过是一道非常非常非常不仅辣鸡而且朴实无华的大水题。直接模拟就可以搞定!!!qwq我还wa了两次#include#define ll long long#define st string#define mem(x) memset(x,0,sizeof(x))using namespace std;const int INF=1e9;bool check(int a原创 2017-07-03 15:15:53 · 628 阅读 · 0 评论 -
线段树题目
转载自:http://blog.csdn.net/yrhsilence/article/details/5793699这几天陆陆续续更新了下边几道我所能找到得具有一些代表性的线段树题目从最最简单的区间求和到对区间的各种操作都包涵在这些题目里了相信对一些准备学习线段树的人有一定得帮助突然发现自己对数据结构的题目非常有感觉,所以在刷下边的题的同时也生出灵感出了好几道线段转载 2017-03-17 13:19:11 · 373 阅读 · 0 评论 -
2017-4-12 最小生成树
今天上午做了做特殊的排序题,基本上都是非常简单的模拟,没什么可说的,可能也就是积累积累经验了。下午跟liujianren做了一套noip的模拟题。我的直观感觉就是根本不想普及组水平的题,难死了,我竟然什么都不会。好不容易有一道会的,结果忘开long long直接爆int拿了60分。我做的是f/80/c++/day6里的普及组。第一题就是bfs,本来比较简单,结果当时没调出来,0分。原创 2017-04-12 16:39:57 · 307 阅读 · 0 评论 -
并查集详解
并查集是我暑假从高手那里学到的一招,觉得真是太精妙的设计了。以前我无法解决的一类问题竟然可以用如此简单高效的方法搞定。不分享出来真是对不起party了。(party:我靠,关我嘛事啊?我跟你很熟么?)来看一个实例,杭电1232畅通工程首先在地图上给你若干个城镇,这些城镇都可以看作点,然后告诉你哪些对城镇之间是有道路直接相连的。最后要解决的是整幅图的连通性问题。比如随意给你两个点转载 2017-02-24 13:56:15 · 183 阅读 · 0 评论 -
树状数组简介
本文转载自http://blog.csdn.net/int64ago/article/details/7429868,非常好的文章。 写下这个标题,其实心里还是没底的,与其说是写博帖,不如说是做总结。第一个接触树状数组还是两年前,用什么语言来形容当时的感觉呢?……太神奇了!真的,无法表达出那种感觉,她是那么的优雅,10行不到的代码,却把事情干的如此出色!没有了解她原理的前提下即转载 2017-02-24 09:06:34 · 239 阅读 · 0 评论 -
并查集经典题目
还是先看两道题:试题描述俗话说得好,敌人的敌人就是朋友。现在有n个人,编号1至n,初始互不相识。接下来有m个操作,操作分为两种:(1)检查x号和y号是否是朋友,若不是,则变成敌人(2)询问x号的朋友有多少个请你针对每个操作中的询问给出回答。输入第一行两个正整数n、m,表示人的数量和操作的数量。接下来转载 2017-03-03 09:26:47 · 3274 阅读 · 0 评论 -
2017-1-1 调程序中的返回值
回想起上次做hdu5651(呵呵,已经是去年的事了)错的一塌糊涂,后来请教何大神才发现,妈的我错了一个返回值!!!本人下定决心不能再犯这种错,给大家看看我的初始代码:不,我还是先给上题目! 妈的智障,你到底想怎么样!题目:给一个字符串,只能排列这个串,不能减少字符,也不能增加,问有几种回文串。(结果对1000000007取模)串长小于1000.分析:这道题可以发现给定的字符串中如果有超原创 2017-01-01 09:23:10 · 591 阅读 · 1 评论 -
2016-12-7 关于欧拉函数
关于什么是欧拉函数,以及一些非常简单的欧拉函数,在此就不多加赘述。 欧拉函数的基本性质:1.欧拉函数是积性函数,但不是完全积性函数,即φ(mn)=φ(n)*φ(m)只在(n,m)=1时成立.2.对于一个正整数N的素数幂分解N=P1^q1*P2^q2*...*Pn^qn. 则: φ(N)=N*(1-1/P1)*(1-1/P2)*...*(1-1/Pn).3.除了原创 2016-12-18 09:48:29 · 727 阅读 · 0 评论 -
2016-12-10 线性筛法求素数
筛选法求素数,之前我学到的是这个版本: 这种已经非常不错的程序是求1~n之间的素数:#includeusing namespace std;bool a[50000000];int main(){ memset(a,1,sizeof(a)); int n; cin>>n; for(int i=2;i*i if(a[i]) for(原创 2016-12-18 09:46:26 · 307 阅读 · 0 评论 -
2016-12-10 二分法简单总结
在hzwer上看了几篇关于二分法的文章,自己又在vijos上做了几道题,现在稍微总结一下简单的二分。二分查找的定义:给定一个有序的数组,给定一个n,求n在这个有序数组中的位置。拿n和数组正中间的数字比较,如果小于这个数,搜索左半个数组,否则搜索右半个数组。这种搜索方式时间为O(n log n),比起强行搜索的O(n)好了不少。在一些复杂的,对时间复杂度比较高的题目中,这种搜索方式会原创 2016-12-18 09:45:17 · 337 阅读 · 0 评论 -
2016-12-10 dfs简单总结
最近做了很多关于搜索的题目,今天也是做一个小总结。先附上几道基本题的代码:马兰过河卒:在一个大棋盘上,一个过河卒在(0,0)的位置上,还有一只马,马的位置固定的,可以向8个位置走,这些马可以走的地方都算马的攻击范围内。小卒子不能走到马的攻击范围。(不是卒子一步,马一步,只有当卒子走进马一步就可以到的地方马才可以攻击)现在给出马的位置和卒子的目标点坐标,问卒子有几种方式可以到达目标点。原创 2016-12-18 09:44:42 · 502 阅读 · 0 评论 -
2017-3-17 vijos1844一道坑爹的贪心
刚读完题的时候我完全是蒙了的状态,在观摩了刘。。的代码之后,我依旧觉得不太对,但是我有了一点思路。随后,我写出来了一个思路完全不一样的代码#include#define ll long long#define st stringusing namespace std;int a[100005];int main(){ memset(a,0,sizeof(a)); int n;原创 2017-03-17 13:35:07 · 292 阅读 · 0 评论 -
2017-4-15
tarjan算法模版#include using namespace std; int DFN[105]; //记录在做dfs时节点的搜索次序 int low[105]; //记录节点能够找到的最先访问的祖先的记号 int count=1;原创 2017-04-15 10:58:07 · 247 阅读 · 0 评论 -
高斯消元
高斯消元这种高深的数学内容,想我这种oi方面数学最弱的蒟蒻就不要瞎搞事情了。直接上一个博客:http://www.cnblogs.com/Robert-Yuan/p/4621481.html这个博客还没有看懂(2017-7-3 14:30)然后来一个贾老师给的材料的来源:http://jingyan.baidu.com/article/39810a23e40c80b636fda原创 2017-07-03 14:31:29 · 257 阅读 · 0 评论 -
vijos1428贪婪的格尔曼
题目链接:https://vijos.org/p/1428这道题其实是非常简单的,就是一个背包的变形。f[i][j]为小的叫i下,大的叫j下的最小价格。那么转移方程非常好写,具体看代码。#include#define ll long long#define st string#define mem(x) memset(x,0,sizeof(x))using namespa原创 2017-07-03 10:48:30 · 513 阅读 · 0 评论 -
2-sat问题
本文转载自http://blog.csdn.net/jarjingx/article/details/8521690序言 最近花了一点心思研究2-sat模型,看了很多论文博客等等,也在POJ上做了一点题。其实这个东西也还挺好玩的,当然,前提是每道题你都有认真分析,认真想清楚模型的意义,搞明白为什么可以这样,而不是简单的知道怎样做,就套上一个模板转载 2017-06-03 15:46:49 · 337 阅读 · 0 评论 -
AC自动机-理解
勉强看了一遍飘过的小牛的博客,稍微对AC自动机有了点理解。看完博客,第一感觉就是想要理解他是怎么做的非常难,可以说比学习KMP的时候还要难(我已经学了KMP,trie树,trie树模版真心简单),但是能感觉到,实现非常复杂,但是看懂了AC自动机是什么意思之后,就非常简单了。(我只是对模版的理解)整体来讲,AC自动机可以说用的是trie树这个数据结构,KMP算法的思想。首先,构造一个tr原创 2017-05-29 19:47:56 · 415 阅读 · 0 评论