机房测试1:matrix(神奇dp)
摘要:题目: 分析: 最大的限制在于:每一列只能选1个1,考虑对列进行dp。 定义:f [ i ][ j ]为放到第i行,右区间放了j个1。 转移:分为左右两个区间分别利用乘法原理统计答案。
阅读全文
posted @
2019-09-28 19:50
rua-rua-rua
阅读(225)
推荐(0)
欧拉函数模板
摘要:洛谷P3601 签到题 数论里面,对于 l 和 r 很大,r-l 范围又很小的时候,都用到了用一个数组x[ i ]表示 i+l 的值,也就是把 l~r 这个区间对应到 0~l-1 中了。 同时也预处理了可能对答案做出贡献的值(一般是预处理根号内的素数)。 与这道题很相似: 洛谷P1835 素数密度_
阅读全文
posted @
2019-09-23 19:19
rua-rua-rua
阅读(199)
推荐(0)
开学考试题8:神奇的集合(multiset) 动态开点线段树
摘要:题目: 分析: 暴力:记录每个集合的每个元素,暴力区间修改,区间求和。 这个题很容易想到线段树,难点在于如何快速地确定一个集合是否出现过某个元素。 考虑维护两个线段树: 一个是答案线段树,维护区间元素个数和。(乘加标记的普通线段树) 一个是判断一段区间是否都有某个元素(动态开点线段树): 1.在mo
阅读全文
posted @
2019-09-23 17:05
rua-rua-rua
阅读(236)
推荐(0)
开学考试题5:2017黑龙江省选
摘要:Day1 T1:P3745 [六省联考2017]期末考试 隐藏的水题。。。 分析: 一看题,难,再看数据范围,连dfs爆搜的分都没有。但其中很多特殊点暗示了做法: 1. A B大,C小,说明只能让学生不愉快,不能调课。 2.C大,A B小,说明只能用AB两种方式调课:那么我们为了不让学生产生不愉快度
阅读全文
posted @
2019-09-18 17:46
rua-rua-rua
阅读(197)
推荐(0)
NOIP2014 Day1
摘要:T1水题: P1328 生活大爆炸版石头剪刀布 #include<bits/stdc++.h> using namespace std; #define N 205 #define ri register int int a[N],b[N]; int check(int a,int b) { if(
阅读全文
posted @
2019-09-16 19:18
rua-rua-rua
阅读(163)
推荐(0)
开学考试题4:book 书(概率期望dp)
摘要:题目: 书 Hazel有n本书,编号1为n到 ,叠成一堆。当她每次抽出一本书的时候,上方的书会因重力而下落,这本被取出的书则会被放置在书堆顶。 每次有pi的概率抽取编号为i的书。她每次抽书所消耗的体力与这本书在这堆中是第几本成正比。具体地,抽取堆顶的书所耗费体力值为1 ,抽取第二本耗费体力值为2 ,
阅读全文
posted @
2019-09-16 19:07
rua-rua-rua
阅读(243)
推荐(0)
开学考试题4:so 就(优先队列+贪心)
摘要:题目: 就 【背景描述】 一排 N 个数, 第 i 个数是 Ai , 你要找出 K 个不相邻的数, 使得他们的和最大。 请求出这个最大和。 【输入格式】 第一行两个整数 N 和 K。 接下来一行 N 个整数, 第 i 个整数表示 Ai 。 【输出格式】 一行一个整数表示最大和, 请注意答案可能会超过
阅读全文
posted @
2019-09-16 15:28
rua-rua-rua
阅读(193)
推荐(0)
NOI2011 Noi嘉年华(神级dp)
摘要:题目 分析: 拿到题,注意到数据范围很小,又是求最大值,可以往dp那方面想一下。 难点在于,如何使AB会场的分配尽量均匀,且活动多。考虑固定A选的活动数,去求B选的最多活动数。为了使时间不交叉,将时间压成一维。 预处理每一个区间中对应的活动数sum[ i ][ j ]。 定义:dp[ i ][ j
阅读全文
posted @
2019-09-12 19:47
rua-rua-rua
阅读(251)
推荐(0)
NOI2011 兔兔与蛋蛋(博弈论+二分图)
摘要:题目 分析: 把移动的过程看做是中间空格在走,则空格一定是在黑格子与白格子间交替移动,这就变成了一个二分图的模型。 通过题目可以得出两个性质: 1.棋盘上的每一点最多只被走一次 2.如果兔兔将要移动的空格对应的点一定在二分图的最大匹配上,兔兔必胜。 性质2的原因口胡:空格在最大匹配中,那么沿着匹配边
阅读全文
posted @
2019-09-12 19:29
rua-rua-rua
阅读(235)
推荐(0)
高斯消元学习
摘要:高斯消元: 求解线性方程组的方法。 主体:将系数提出来,形成一个系数矩阵。将等号右边的常数提出来,形成一个常数矩阵。然后加减消元,带入消元。 步骤: 1.明确要消去的元的位置pos,将某一行有这个元(即系数不为0)的方程提出来,这一行记作 i ,对应的元的系数记作x。 2.现在把第 i 行去消第 j
阅读全文
posted @
2019-09-10 19:30
rua-rua-rua
阅读(267)
推荐(0)
开学考试题2:words(暴力+状压)
摘要:题目: 注意: 这里的范围是n*m<=1e5!!! 分析: 前面的小数据可以用n^2 * m的暴力过掉(其实后面也可以) 暴力100 #include<bits/stdc++.h> using namespace std; #define N 100005 #define ll long long
阅读全文
posted @
2019-09-07 17:35
rua-rua-rua
阅读(151)
推荐(0)
矩阵乘法
摘要:概念: A是n*m的矩阵,B是m*p的矩阵,则A*B是n*p的矩阵。 这个矩阵的某一位置的值(i,j)是A中第 i 行的每一个数 * B中第 j 列的每一个数求和的值。 比如:(图片来源) 用途: 用于处理一维递推,递推次数很大的时候:构造一个转移矩阵,根据转移方程填充转移矩阵的值。然后根据结合律,
阅读全文
posted @
2019-09-06 21:33
rua-rua-rua
阅读(220)
推荐(0)
开学考试题1:来自风平浪静的明天(bfs)
摘要:题目: (鉴于题意描述过于糊,将这道题变成了一道阅读理解题,下面自己描述一遍题意) 求一个位置,从那个位置出发向上下左右同时流,遇到B可以流,其它不能流,流出给出数据的样子。 例如一个不合法的位置是2,5 。因为从它出发要流过上下左右的点,而给出的图中它的上下都是B,则说明没有被流过。 ans=2
阅读全文
posted @
2019-09-06 21:11
rua-rua-rua
阅读(279)
推荐(0)
开学考试题1:seq Mushroom的序列(递推)
摘要:题目: (以前也写过一次原题,做法有些不同于他人,写来记录一下) 做法1: 先求一堆单调上升的块,然后枚举每一个块,看能不能和其相邻的块相接得到更大的块。 做法2: 定义dp[ i ][ 0/1/2 ] 表示递推到第i个数,0表示到 i 没有使用过上升或下降的机会,1表示使用过,且不是前一个使用的,
阅读全文
posted @
2019-09-06 20:54
rua-rua-rua
阅读(185)
推荐(0)
开学考试题1:seg Mushroom的区间(并查集)
摘要:题目: 暴搜30分 #include<bits/stdc++.h> using namespace std; #define N 100005 int n,m,ans=0,maxn; bool vis[1<<21]; struct node{ int l,r; }v[N]; int read() {
阅读全文
posted @
2019-09-06 20:40
rua-rua-rua
阅读(204)
推荐(0)