
******算法******
文章平均质量分 82
Ever_glow
当命运需要你逆风飞翔的时候,就不能随风而去。
展开
-
HDU 3923 Invoker (polya定理)
Invoker Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 122768/62768 K (Java/Others)原创 2017-10-27 20:48:51 · 951 阅读 · 0 评论 -
BZOJ 1009: [HNOI2008]GT考试(DP+KMP失配+矩阵快速幂)
1009: [HNOI2008]GT考试Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 4181 Solved: 2552[Submit][Status][Discuss]Description 阿申准备报名参加GT考试,准考证号为N位数X1X2....Xn(0<=Xi<=9),他不希望准考证号上出现不吉利的数字。他的不吉利数学A1A2...Am(0<=Ai<=9)有M位,不出现是指X1X2...Xn中没有恰好一段等于A1A2...Am. A原创 2017-10-20 16:52:01 · 886 阅读 · 0 评论 -
POJ 3070 Fibonacci (矩阵快速幂)
FibonacciTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 15807 Accepted: 11106DescriptionIn the Fibonacci integer sequence, F0 = 0, F1 = 1, and Fn = Fn − 1 + Fn − 2 for n ≥ 2. For example, the first ten terms of the Fibonacci sequence are:原创 2017-08-09 09:28:07 · 666 阅读 · 0 评论 -
浅谈单调栈
做某些题的时候可能会发现,维护数列的时候,此数列的元素要么是在递增,要么是在递减,总之需要维护的序列是单调的,这样我们即可在O(n)的时间内完成数列的维护,当需要数列先进先出的时候就可以用队列维护,当需要数列先进后出的时候,栈就可以完成,此文章先根据几个例题,简单理解一下单调栈。以HDU1506为例题目要求求出最大面积的矩形,可以发现,求矩形的面积的话,只要知道左边比当前矩形小的矩形位置,...原创 2018-07-31 16:46:39 · 324 阅读 · 0 评论 -
Hello Tarjan ---- Tarjan算法小结
一种由Robert Tarjan提出的求解有向图强连通分量的线性时间的算法。 ------百度百科解读一下这句话,Tarjan算法可以解决存在强连通分量的图,而且是在线性时间内解决。所以,不得不%一下Tarjan,聪明的脑子提供了这么一个神奇的算法。网上关于Tarjan算法(以下简称tarjan)的博客琳琅满目,这里只记录一下我对tarjan的理解,然后就当是做个笔记了。首先所需要的知...原创 2018-08-10 19:47:58 · 1009 阅读 · 0 评论 -
浅谈单调队列
上篇博客说好的这篇博客是单调队列的直接进阶,但是,咕咕咕。个人感觉,单调队列比单调栈难调多了啊,单点队列涉及了两个指针来控制数列,因为要维护数列的单调性,还要维护数列先进先出的原则,所以需要一个头指针来确定每次要出队列的元素,然后一个尾指针来控制队列元素的加入,同时还要保持队列的单调性,比单调队列确实难了那么一点,导致一个 模板题调了差不多半天吧,最后还是修改了自己的写法才A到,最近又变菜了呢。...原创 2018-08-02 10:41:42 · 426 阅读 · 0 评论 -
浅谈单调队列优化的DP
为什么都是浅谈?深入就掉坑啊,掉坑就要填坑啊,填坑就会发现又挖了更多的坑啊,然后恶性循环啊。这个坑必须要填的,拖了这么久了。先拿TYVJ 1305来说吧,此题具体的题面没找到,代码简单的对拍了一下,若存在错误,还请指出。题目的意思是n个数,在区间m内,找到最大子段和。O(nlogn)可以解决,用单调队列优化下成为线性时间。容易得到状态转移方程:dp[i] = sum[i] - min{s...原创 2018-08-07 10:49:03 · 5558 阅读 · 0 评论 -
Hello 莫队----莫队算法小结
跟风学莫队,发现竟不会。博客一大堆,不知该看谁。刚开始要学习莫队的时候发现那么多的博客,真有乱花渐欲迷人眼的感觉,后来觉得不妨看看集训队的论文,才发现根本找不到,说是10-13年是作业的形式,根本没发表论文,那就只好一篇篇的去浏览,找到适合自己的。研究良久,觉得是时候对莫队做一波总结了。首先明白莫队可以解决的问题:区间问题类似这种:有n个数的整数数列,给出区间[l,r],求[l,r]中的...原创 2018-08-09 10:38:06 · 326 阅读 · 0 评论 -
树的最小支配集、最小点覆盖、最大独立集 (贪心orDP)
树的最小支配集:点集中取出尽量少的点,使剩下的点与取出来的点都有边相连。树的最小点覆盖:点集中取出尽量少的点,使得所有边都与选出的点相连。树的最大独立集:点集中取出尽量多的点,使得这些点两两之间没有边相连。贪心模板:#include<bits/stdc++.h>#define ll long long#define sl(x) scanf("%lld",&x)...原创 2018-11-10 16:55:33 · 1048 阅读 · 0 评论 -
算法课-回溯专题-部分题解
1. 素数环问题此题的数据已经很良心了,输入的时候有提醒偶数不会大于16,这不就是在疯狂暗示奇数不可能的情况吗?还有偶数小于16,我是真的不想卡超时。。。。超时的估计都是没特判奇数。唯一的坑点可能就是1的时候需要输出1吧。此题可能是需要素数提前打个表,也就是把素数先求出来,降低不必要的时间,然后按字典序输出的话,就是按照顺序去dfs就ok啊。真的没坑啊。核心代码:for(i ...原创 2018-12-08 11:03:40 · 427 阅读 · 0 评论 -
实现简单的对拍
自带WA自动机属性的ACMer,经常会遇到无限提交然后就是wa的情况,但是就是不知道自己到底哪里出错了。除了cf之类的网站能得到部分数据以外,很难有网站会告诉你数据。所以可以暴力写一发或者找一个正确的cpp文件,产生几组随机数,简单跑几次,,如果出现两者不一样的情况,再做分析。对拍就完成了这么一个功能。首先,对拍的前提是你的暴力代码是完全正确的,你的随机数产生的数据是完全符合题意的。原创 2018-02-02 15:28:51 · 490 阅读 · 1 评论 -
树状数组模板(max,min,区间和,区间修改,单点查询)
好久不写博客,为了保证持之以恒,就写写最近搞的模板吧,感觉有时候模板比思想实用的多。树状数组是个神奇的东西,能在log2(n)的时间内完成相应操作,所以我觉得有必要整理一下,但又觉得书面性的东西太多,所以就直接放模板了,有机会写点总结。首先,创建树状数组。数组C是储存树状数组的空间,下标从1开始。void add(int x,int y) //C[x]的值增加y原创 2018-01-24 19:54:35 · 1919 阅读 · 0 评论 -
线段树模板
这个月要写4篇博客,工作量太大了,今天最后一天了,贴一下这几天整理过的线段树的模板吧。int sum[maxn*4],minn[maxn*4],maxx[maxn*4],vis[maxn*4],Map[maxn],n;//sum储存和,minn最小值,maxx最大值,vis作为求最值的标记数组,Map是原数组 建树void built(int l,int r,int root)原创 2018-01-31 15:40:23 · 585 阅读 · 0 评论 -
炸弹人 枚举
标题:炸弹人详情:小哼最近爱上了“炸弹人”游戏。你还记得在小霸王游戏机上的炸弹人吗?用放置炸弹的方法来消灭敌人。需将画面上的敌人全部消灭后,并找到隐藏在墙里的暗门才能过关。 现在有一个特殊的关卡如下。你只有一枚炸弹,但是这枚炸弹威力超强(杀伤距离超长,可以消灭杀伤范围内所有的敌人)。请问在哪里放置炸弹才可以消灭最多的敌人呢。 我们先将原创 2017-03-15 16:24:02 · 1198 阅读 · 0 评论 -
山东省第7届ACM省赛 E题
D - The Binding of Isaac Time Limit: 2000 ms / Memory Limit: 65536 kb DescriptionOk, now I will introduce this game to you...Isaac is trapped in a maze which has many common rooms…Like thi原创 2017-03-26 12:41:58 · 570 阅读 · 0 评论 -
动态规划专题(持续更新中)
HDU 1159 Common Subsequence传送门:点击打开链接最长公共子序列,模板题。dp[i][j]表示第一个串中前i个字符跟第二个串中前j个字符的相等数目。状态转移方程:如果两者相等 dp[i][j]=dp[i-1][j-1]+1;否则 dp[i][j]=max(dp[i-1][j],dp[i][j-1])。题解:点击打开链接H原创 2017-08-07 20:19:23 · 451 阅读 · 0 评论 -
矩阵十大经典题目
转载地址:点击打开链接经典题目1 给定n个点,m个操作,构造O(m+n)的算法输出m个操作后各点的位置。操作有平移、缩放、翻转和旋转 这里的操作是对所有点同时进行的。其中翻转是以坐标轴为对称轴进行翻转(两种情况),旋转则以原点为中心。如果对每个点分别进行模拟,那么m个操作总共耗时O(mn)。利用矩阵乘法可以在O(m)的时间里把所有操作合并为一个矩阵,然后每个点与该矩阵转载 2017-07-18 16:06:56 · 4677 阅读 · 0 评论 -
计算几何相关(更新中)
1.向量结构体定义点和直线struct point{ double x,y;};struct line{ point a,b;};两点相减求向量,重载 - 运算符struct point{ int x,y; point(){}; //因为有带参的构造函数,下面无法直接定义,所以加一个无参的构造函数 point原创 2017-09-17 07:53:05 · 569 阅读 · 3 评论 -
网络流总结(持续更新中)
什么是网络流1.我自己理解的网络流我对网络流的理解就是,给定一个有向图,这个有向图有一种特点,都可以看成从某个点开始,我们称之为源点,一般情况下都将此点定位第一个点,即初始点,所有的点最终都会在一个点会和,我们称之为汇点,通常将此点定位为n,也就是最后一个点。既然是网络流,那么一定不会很简单,每条有向边之间都有一定的权值,称之为容量,用c(i,j)表示,而流过每条路径的称之为流量,用f(i原创 2017-08-02 20:31:50 · 924 阅读 · 0 评论 -
USACO注册以及使用
心血来潮准备试试USACO,毕竟别人的OI题,毕竟有专门的翻译以及题解网站,链接在这:点击打开链接。。但在A题的过程还是遇到种种种种的麻烦啊!搜也没有什么有效的回复,终于自己琢磨透之后,还是写下这篇文章吧。注册这个网站好像并没有被和谐,不用翻墙也可以进去。注册浪费我好长时间,只需要填一下上面的名字啊什么的,但是,总是显示邮箱非法,因为它要把账号和密码发送到你的邮箱,所以,要你填写正原创 2017-09-30 12:11:53 · 6767 阅读 · 2 评论 -
最小生成树 Prim、Kruscal算法 (以HDU 1863为例)
畅通工程Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 32680 Accepted Submission(s): 14407Problem Description省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可)。经过调查评估,得到的统计表中列出了有可能建设公原创 2017-10-15 14:33:26 · 1035 阅读 · 0 评论 -
动态规划小结
准备青岛的征途,拿着部分DP题搞了一波,收获还是很多,部分常见的DP并没有刷题,偏重于记忆化搜索,状态压缩,区间DP,博弈+DP,树形DP。还是做题少,做什么都力不从心,好多题不看题解根本就不会做,看了题解也要研究半天,没办法嘛,人丑就要多读书呗。是时候来总结一下,数数最近是否还有收获。自己开了一套题,水题有,难题也有,六天终于搞完,还有很多没涉及的方面,来日方长。扔一下题原创 2017-10-26 20:56:35 · 674 阅读 · 0 评论 -
简单排序 模板
桶排序#includeusing namespace std;int main(){int book[1001]={0},i,j,k,n;while(cin>>n){for(i=0;i{cin>>k;book[k]=book[k]+1;}for(i=0;ifor(j=0;jcout}return 0;} 冒泡排序#原创 2017-03-13 21:46:30 · 508 阅读 · 0 评论