自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Holylight_Knight

某神犇:自己选择的路,跪着也要走完。

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

原创 小试2解析

挺简单的。铺地毯:裸裸2011noip提高day1,详见此。参考程序:#include#includeusing namespace std;const int maxn=11000;int x1[maxn],x2[maxn],y1[maxn],y2[maxn];int n;int main(){ freopen("carpet.in","r",s

2016-10-30 13:53:00 292

原创 小试2

2016年8月4日 题目名铺地毯冗余关系等式烘干机英文名carpetrelationequalkth提交文件名carpet.pas/c/cpprelation.pas/c/cppequal.pas/c/c

2016-10-29 17:43:48 535

原创 小试1解析

确实比较轻松。黑色星期五就是一个一个月的模拟。参考程序:#include#includeusing namespace std;int n;int a[12]={31,28,31,30,31,30,31,31,30,31,30,31};int cnt[8];bool ok(int k){ return ((k%4==0 && k%100!=

2016-10-28 16:41:26 251

原创 二分题型的模型建立

二分题型最明显的有两种:求最大值的最小化,或最小值的最大化。一般地,对于一个求最值的问题,如果不方便直接求解的话同时这个最值的趋向是单调的,就可以二分枚举。此时二分一般加上dp或贪心的check()即可得知接下来的答案区间。下面分别讨论最常见的两种。最大值最小化:对于此类问题,我们设答案的区间为[l,r]那么当l=r时,显然区间只有一个值,这就是我们

2016-10-28 16:40:33 595

原创 小试1

题目名黑色星期五计算系数John的花生田最优战舰英文名fridayfactorfarmship提交文件名friday.pas/c/cppfactor.pas/c/cppfarm.pas/c/cppship.pas/c

2016-10-27 18:11:45 769

原创 字符串匹配的总结

字符串匹配一直是我们都需要面对(做题和工作)的问题,现在此总结三大法:1.KMP算法:浅谈KMP2.后缀数组法:后缀数组入门3.hash大法:将字符串按位展开并乘上一个质数的幂再取模,极小概率下两字符串不等但hash值等,所以可以认为这种做法是正确的。参考程序:#include#include#include#define maxn 150

2016-10-26 12:19:43 596

原创 浅谈单调队列优化dp

什么是单调队列?举个浅显的例子:滑动窗口:给出n个数,要求从每个位置开始到其后的k位中的最大值。显然这题可以用RMQ问题的做法解,但用单调队列效率最高。我们维护一个队列,这个队列有两个参数,一个是位置编号,一个是其值,这个队列具有“编号单调增,值单调减”的特点,因为如果i>j,且a[i]>a[j],显然只要i和j在一个窗口中,j就不会是最大值,我们可以把j删掉(对于冗余状态

2016-10-25 19:25:40 1048

原创 详解KMP入门

在网上很容易找到分析KMP算法的博客,但我觉得他们都没有讲到点子上去,导致一些读者越看越困惑,我则是看了刘汝佳的书后,自我比较通俗易懂的总结一下。解决问题:给出字符串T和P,求P在T中第一次出现的位置,简称字符串匹配。算法准备:最单纯的模拟算法就是每次枚举起始点,再判断是否匹配,效率O(nm),极低。                  但根据经验,任何一个高效算

2016-10-25 18:52:28 1370

原创 poj之旅——1050

题目描述:给出一个矩阵(100×100)求一个子矩阵,使得子矩阵中各个元素的和最大题解:四重循环预处理10^8,效率不够;如何做到三重循环呢?枚举矩阵的起始行与终止行,然后将行之间的数字累加成和,压缩成一行数字,然后求这行数字的最大子序列即可。参考程序:#include#include#includeusing namespace std;int

2016-10-20 21:50:07 250

原创 poj之旅——1018

题目描述:某公司要建立一套通信系统,该通信系统需要n种设备,而每种设备分别可以有m1、m2、m3、...、mn个厂家提供生产,而每个厂家生产的同种设备都会存在两个方面的差别:带宽bandwidths 和 价格prices。现在每种设备都各需要1个,考虑到性价比问题,要求所挑选出来的n件设备,要使得B/P最大。其中B为这n件设备的带宽的最小值,P为这n件设备的总价

2016-10-20 21:47:31 277

原创 NOIP2012提高组解析

题目见此day1维吉尼亚解密:从图中可以看出,就是将明文的字母,向前移动对应密钥字母在26字母中的排名数个格子就是原文。参考程序:#include#include#include#includeusing namespace std;char key[110];char dark[1100];int main(){ freopen("vi

2016-10-16 14:46:40 3374

原创 NOIP2015提高组解析

题目见此day1神奇的幻方:裸裸的模拟(其实也可以发现规律:i+1在i的右上方,如果已经有数了,就填在i的下方)参考程序:#include#includeusing namespace std;int a[50][50];int nx,ny,n;int main(){ freopen("magic.in","r",stdin); freop

2016-10-16 14:29:37 3024

原创 LCA求法的三度升级

1.RMQ做法:    可见:学会用rmq解决lca问题2.倍增做法:    可见:LCA倍增3.轻重路径剖分法:    轻重路径剖分基础:树链剖分(无需看剖分过程,重点搞清楚什么是轻重路径)    那么,具体过程可以类比剖分的query过程:void dfs1(int u){     dep[u]=dep[fa[u]]+1; int Max=0;

2016-10-13 19:10:20 491

原创 NOIP2014提高组解析

题目见此day1:生活大爆炸:裸裸模拟。我是打一个01(胜负)的表,我觉得一一if比较麻烦。参考程序:#include#include#define maxn 300using namespace std;int a[maxn],b[maxn];int c[5][5]={ {0,0,1,1,0}, {1,0,0,1,0}, {0,1,0,0,1}

2016-10-13 18:58:28 974

空空如也

空空如也

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

TA关注的人

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