Blog of CalvinJin

在下滑稽 有何贵干

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

博客搬迁

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

2018-07-19 18:03:01

阅读数:39

评论数:0

HDU5471 Count the Grid

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

2018-01-13 08:45:00

阅读数:79

评论数:0

莫队算法

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

2017-12-26 22:07:30

阅读数:41

评论数:0

AC自动机

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

2017-12-26 21:03:02

阅读数:31

评论数:0

NOIP2017 Orz记

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

2017-11-11 20:48:18

阅读数:260

评论数:0

2017/11/9模拟赛总结

NOIP前最后一场模拟赛 T1 K值查询 二分答案 关键是如何check解法1假设当前二分答案的区间为[1,x][1,x] 即求在[1,x][1,x]内有恰好kk个数的最小的xx 考虑枚举两数相乘中较小的那个数 在nn和mm上都枚举一遍 而中间有一部分计算重复了 减去即可 O(n√...

2017-11-09 19:04:25

阅读数:79

评论数: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

阅读数:69

评论数:0

2017/11/8模拟赛总结

T1 渡河 由于每个点之间边权不一定为1 并不能直接跑BFS解法1找到所有联通块 跑BFS 最后(+1)/2即可 O(n2)O(n^2)解法2由于边权为0或1 用两个队列实现BFS 由于要维护队首元素dis单调 把边权为0到达的点放到当前队列尾部 把边权为1的边到达的点放到另一个队列尾部...

2017-11-08 14:56:26

阅读数:54

评论数:2

2017/11/7模拟赛总结

T1 旅行 改变高度一定是改变转折点处 如1 4 3->1 3 3 而且一定和两端中一个相平 贪心取小值修改即可 O(n)O(n)#include<bits/stdc++.h> using namespace std; #define N 100010 inline voi...

2017-11-07 16:17:11

阅读数:60

评论数:0

2017/11/6模拟赛总结

题目来自LibreOJ NOIP Round #1 Day1 T1 DNA序列 一个哈希或TrieTrie树就可以解决问题 其实只需要把每个串用四进制表示 直接用数组存就好了 O(n)O(n)或O(n∗k)O(n*k)(TrieTrie树)#include<bits/stdc++.h...

2017-11-06 15:51:21

阅读数:54

评论数:0

2017/11/5模拟赛总结

T1 放数字游戏 可以通过考虑一个点和前面某个点的贡献入手 假设当前前面的点为xx 后面的点为yy(前后均指下标) 那么xx和yy的相对位置有两种 xx前面的数都可以凑出任意顺序的排列 yy后面的数也一样 而xx到yy之间的数只有一种排列方式 即按顺序排 所以可以枚举xx和yy 用排列...

2017-11-05 16:19:17

阅读数:50

评论数:0

2017/11/4模拟赛总结

T1 猴子除草 时间最小值 很显然的一个二分 注意m=1m=1的情况即可 O(n∗logS)S=max{ai}O(n*logS) S=max\{ a_i\}#include<cmath> #include<vector> #include<cstdio> #...

2017-11-04 15:10:32

阅读数:46

评论数:0

2017/11/3模拟赛总结

T1 Excellent数 直接枚举good数显然不现实 又没有什么精妙的数学方法可以推出个数 不妨枚举最后Excellent数各位相加而成的good数 由于n≤106n\le 10^6 最多也只能达到b∗nb*n 可以直接dfs 也可以循环枚举 这样会得到一个类似x∗a+(n−x)∗b=...

2017-11-03 18:44:21

阅读数:70

评论数: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

阅读数:70

评论数: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

阅读数:87

评论数:0

NOIP2015 Day2

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

2017-10-28 09:19:49

阅读数:50

评论数:0

2017/10/25模拟赛总结

T1T2找自信 T3打出GG T1 矩阵染色 其实所有操作是满足一个拓扑序的 在满足拓扑序的情况下找字典序最小的情况 数据较小 可以直接暴力查找当前的合法操作 从后往前找 考虑撤销操作 如果当前行去掉还存在的点全是黑色 那么就可以撤销 一列为白同理 由于是从后往前 每次要找最大的 ...

2017-10-26 20:08:02

阅读数:57

评论数: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

阅读数:60

评论数:0

2017/10/23模拟赛总结

丧心病狂图论场 T1 包裹快递 Vijos 1450比较显然的二分 但是精度问题特别奇怪 O(n∗logS)O(n*logS)#include<bits/stdc++.h> using namespace std; #define N 200010 #define EPS 1e...

2017-10-25 11:25:45

阅读数:71

评论数: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

阅读数:70

评论数:0

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