Blog of CalvinJin

在下滑稽 有何贵干

排序:
默认
按更新时间
按访问量

博客搬迁

emm..上一次更新这个博客已经是6个月之前了 看到以前写的博客还有点不舍qwq 新博客 Date:2018/7/19 By:CalvinJin

2018-07-19 18:03:01

阅读数:102

评论数:0

HDU5471 Count the Grid

以下用“需求值”代表一个矩阵内需要达到的最大值 先分析两个矩形重叠时的方案 1:两个不同需求值的矩形重叠 那么可以把交集部分直接放到需求值较小的矩形中计算 此时可以保证不会影响另一个矩形的合法方案 2:两个相同需求值的矩形重叠 设两个矩形为AA和BB 这是这道题的难点 直接处理并不方...

2018-01-13 08:45:00

阅读数:148

评论数:0

莫队算法

这是一个国产算法 由莫涛Dalao提出 可用于解决离线的区间询问问题 前提是已知一个区间[L,R][L,R]的信息 可以通过较少的复杂度把LL或RR向左/右移动一位并实时维护所需信息 就可以通过合理的排序和移动区间 得出每个区间的询问答案比如询问一个区间内不同数字个数 如果用其他方法需要一些...

2017-12-26 22:07:30

阅读数:66

评论数:0

AC自动机

这是一个特别厉害的字符串处理算法 可以自动AC它是由TrieTrie树进化而来 利用了类似KMPKMP算法的failfail数组(即失配后需要跳到何处继续匹配) 可以解决多串匹配问题首先就需要建立一颗普通的TrieTrie树 并放入所有的待匹配串 这时候就需要建立failfail节点 如果某个...

2017-12-26 21:03:02

阅读数:56

评论数:0

NOIP2017 Orz记

Day0在大巴上颠了四个多小时终于到了衢州二中 ——这个去年打出GG的地方 不得不说公立伙食的确和这里没法比 晚上随便敲了些模板以及DRIVE 外卖全家桶只抢到两块鸡和璋爷的半个手抓饼没什么事就洗洗睡了然而睡!不!着! 于是我和老汉两个人就尴尬地躺到了一点 历史总是惊人的相似- - 想当...

2017-11-11 20:48:18

阅读数:323

评论数:0

ST表

很早以前就听说区间RMQ问题可以做到O(n∗log)O(n*log)预处理O(1)O(1)查询 就是用到了ST表 其实很类似倍增 STi,jST_{i,j}表示第ii个位置之后2i2^i个位置的最值 预处理就用倍增的那种方法 还需要预处理出每个⌊log2x⌋\lfloor log_2x ...

2017-11-08 21:56:06

阅读数:85

评论数:0

NOIP2016 Day2

T1 组合数问题 由于kk是固定的 可以预处理出模kk意义下的杨辉三角 然后累计二维前缀和 就可以O(1)O(1)回答询问了 O(T+n∗m)O(T+n*m)#include<bits/stdc++.h> using namespace std; #define N 2010 in...

2017-10-30 19:39:22

阅读数:91

评论数:0

NOIP2016 Day1

难度:T1<T3≪T2T1\lt T3 \ll T2 十分鬼畜 T1 玩具谜题 根据朝向和位置的关系模拟即可 O(m)O(m)神奇的Mogician #include<bits/stdc++.h> using namespace std; #define N 10001...

2017-10-29 20:06:09

阅读数:109

评论数:0

NOIP2015 Day2

T1 跳石头 比较显然的二分 可以贪心最少删的石头数量判断可行 但是要注意终点的问题 比如这组数据: 100 2 0 35 70 如果不考虑终点会变成35 一个简单的解决方法是把终点也当做一块石头 那么有两种情况 1:终点会被贪心的移走 那么如果最少移走的数量<m\lt m...

2017-10-28 09:19:49

阅读数:68

评论数:0

NOIP2015 Day1

T1 神奇的幻方 喜闻乐见NOIP2017初赛阅读程序第一题按题意模拟即可 O(n2)O(n^2)#include<bits/stdc++.h> using namespace std; #define N 50 int a[N][N]; int main(){ int n,...

2017-10-26 19:00:43

阅读数:86

评论数:0

NOIP2013 Day2

T1 积木大赛 不难发现答案一定是相邻两块积木的上升和或下降和 类似贪心的思想 O(n)O(n)#include<bits/stdc++.h> using namespace std; #define N 100010 int a[N]; int main(){ int n...

2017-10-25 08:57:51

阅读数:89

评论数:0

NOIP2012 Day2

T1 同余方程 套一个exgcd模板即可#include<bits/stdc++.h> using namespace std; int ex_gcd(int a,int b,int &x,int &y){ if (!b){ x=1; y=0; ...

2017-10-23 11:24:44

阅读数:64

评论数:0

NOIP2012 Day1

T1 Vigenère密码 模拟题 随便找找规律就可以了 注意大小写#include<bits/stdc++.h> using namespace std; char K[110],M[1010],C[1010]; int a[110]; int main(){ scanf...

2017-10-20 09:47:58

阅读数:72

评论数:0

POJ 1741 Tree 点分治

POJ 1741 Tree 给定一棵树,求两点之间的距离≤K\le K的点对有多少个。 首先谈一谈点分治 类似于普通分治 每次对于一棵子树 找到重心 然后切断重心 分成若干子树 再向下分治 过程中借助树形dp等方法解决一些问题对于本题 假设当前已经知道重心kk 那么以kk为根的子树内...

2017-10-19 11:08:51

阅读数:64

评论数:0

NOIP2014 Day2

T1 无线网络发射器选址 模拟大水题 可以用前缀和优化 O(128∗128)O(128*128)#include<bits/stdc++.h> using namespace std; #define M 130 int a[M][M]; int main(){ int d...

2017-10-19 08:26:09

阅读数:96

评论数:1

NOIP2011 Day2

T1 计算系数 可以用类似背包的方法把原式展开 用一个二维数组存下每一项的系数 显然乘kk次之后所有项都在一条x+y=kx+y=k的斜线上 所以枚举这一条斜线上的点转移即可 O(k2)O(k^2) 似乎所有人都用的杨辉三角 只有我用的背包= =#include<bits/stdc+...

2017-10-18 11:03:51

阅读数:73

评论数:0

线性求逆元

以前一直是用费马小定理或exgcd 今天看到一种线性的方法 比较方便首先PP是要取模的数 显然对于一个正整数ii 有P=⌊Pi⌋∗i+P%iP=\lfloor \frac{P}{i} \rfloor *i+P\%i 令a=⌊Pi⌋a=\lfloor \frac{P}{i} \rfloor,b=...

2017-10-16 15:19:27

阅读数:178

评论数:0

NOIP2017 初赛划水记

亭亭山上萌新 瑟瑟谷中发抖 wz初赛考点万年12z 所以我算是回到母校主场作战了233天气很冷 一直下着小雨 中午12点出发 高速上很快就飚到了考场 才1点左右 dalaodalao们都在谈笑风生 我边磕花生边围观dalao们(顺便%) 本来想见到的初中同学一个都没看到= = 就在寒风细雨...

2017-10-14 22:00:51

阅读数:222

评论数:0

LibreOJ #6089 小Y的背包计数问题

传送门 经典的多重背包问题转化而来 可以把物品分成小于等于n√\sqrt n和大于n√\sqrt n两部分 显然大于n√\sqrt n的物品是取不完的 就变成了一个完全背包 用一个大完全背包的套路 dpi,jdp_{i,j}表示共拿了ii个大于n√\sqrt n的物品 体积为jj的方案数 ...

2017-10-12 16:28:00

阅读数:200

评论数:0

Tyvj P4876 近似排列计数

对于一个1~n的排列,如果满足第i个数|ai−i|≤k|a_i-i| \le k,则称该排列为K-近似排列。 现在排列的m个位置已经确定,你需要计算剩下的数有多少种排列方法使得形成的排列是K-近似排列。 多组数据T≤10T \le 10 对于70%的数据,1≤n≤1051 \le...

2017-10-10 15:07:45

阅读数:116

评论数:0

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