自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【矩阵乘法】广义斐波那契数列

传送门:http://codevs.cn/problem/1574这道题解法或许有很多吧 反正蒟蒻的我写了矩阵快速幂第一次写矩阵乘法 先贴原理: 若两个矩阵A、B可进行矩乘,则需要A的列数和B的行数一致 若A为n行p列的矩阵,B为p行m列的矩阵 (AB)ij=∑pk=1Aik∗Bkj(AB)_{ij}=\sum_{k=1}^pA_{ik}*B_{kj}那么回到题目中 用矩阵表示数列的通项

2017-04-26 22:34:03 430

原创 【坐标离散化】矩形面积求并

传送门:http://codevs.cn/problem/3044/这道题如果数据范围小而且是整数的话实际很简单,只需附加到坐标系中,暴力出被覆盖的格子即可 但是由于数据是小数而且很大,直接暴力显然不支持,于是就把行列坐标分别排序,然后按大小一一对应,换句话说把第k小的行坐标直接用k表示,然后暴力,最后求面积时在把点坐标反带回去算边长详见代码#include<iostream>#include<

2017-03-20 21:28:16 563 1

原创 【NOIP2016——PJ4】魔法阵

传送门:http://codevs.cn/problem/5624/算法一(送分算法):最朴素的算法应该就是四重循环暴力枚举每一个 x_a x_b x_c x_d 当然只能通过较少的点 于是O(n^4)算法二(骗分算法):由算法一改变一下便可以省下一重循环 暴力出 x_a x_b x_c 然后计算出 x_d 于是O(n^3) 当然还可以加一些常数上的优化 比如确定 x_a x_b 后,x_

2017-03-17 19:18:16 768

原创 【折半枚举】

目录折半枚举题1折半枚举折半枚举是一种很好用的枚举方法,比如有时集合过大无法全部搜索,但刚好只需要他们的和或其他可以处理出的东西,就可以一半一半搜题14 Values whose Sum is 0 传送门:http://poj.org/problem?id=2785 此题就是要求 a+b+c+d=0 的个数 那么 a+b=-(c+d) 只与和有关,所以先把 c+d 的和预处理并排序,当

2017-03-15 21:26:45 2211

原创 【并查集】食物链

题目传送门:http://codevs.cn/problem/1074/现在才发现我这么蒟蒻,并查集都不怎么会用啊!!!这道题似乎用了一个很巧妙(估计是我太弱)的东西,就是用 i , i+n , i+n*2 来表示 i 在 A B C 三个种类,似乎是可以轮换的然后每读入一次先验证是否是假话,不是的话就合并(好像是废话)具体见代码吧#include<iostream>#include<cstdio

2017-03-06 21:40:01 318

原创 【模板】【数论】扩展欧几里得算法

扩展欧几里得算法应用很广: (1)求解不定方程: (2)求解模线性方程(线性同余方程) (3)求解模的逆元先考虑(1) 对于不定方程 ax+by=c 仅当 c|gcd(a,b) 时方程有解 则可以先求出 ax+by=gcd 的解 因为这不定方程解有无数个,所以我们可以先解出一个通解x0,y0,在利用这个通解表示所有解 因为 ax0+by0=gcd 所以 a(x0+b/gcd*t)+b

2017-02-28 16:45:39 658 1

原创 【贪心】兔警官朱迪买礼物

传送门:https://vijos.org/d/jcsy/p/58b2b8bad3d8a123ab08db9f 这是一道贪心题,主要由2各部分 1、首先最优情况必定是k张优惠券全部用完,那么先按优惠价排序,排出来前k个优惠价之和如果比m大,则从小到大按优惠价能买几个买几个,然后输出 2、然后考虑如果步骤1后前k个都买下并还有钱剩余,则可能可以再多买,但是:前k个必定不能扔掉:一旦某个被扔掉,则

2017-02-26 20:30:23 997

原创 【模板】【字符串】Trie(前缀树、字典树)

Trie可用来保存字符集合#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>using namespace std;int n,m,xb,k;int t[600005]['z'];char s[10];void trie_push(char s[10]){ k=0; for (int

2017-02-25 21:59:55 328

原创 【模板】【字符串】KMP算法

【模板】字符串匹配的基础算法KMP 时间复杂度O(m+n)int kmp(char s1[105],char s2[105]){ int i=0,j=next[0]=-1; int len1=strlen(s1),len2=strlen(s2); while (i<len2-1){ if (j<0 || s2[i]==s2[j]) ne

2017-02-23 19:55:44 262

空空如也

空空如也

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

TA关注的人

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