2017.07.08【NOIP提高组】模拟赛B组小结

来源:互联网 发布:unity3d 如何制作ar 编辑:程序博客网 时间:2024/05/18 03:05

T1长方形(rectangle)

Description

鸡腿是CZYZ的著名DS,但是不想学数学的DS不是好GFS,所以鸡腿想通过提高数学水平来增强他的GFS气质!虽然你对鸡腿很无语,但是故事的设定是你帮助鸡腿增强了GFS气质,所以现在你必须教鸡腿学数学!

鸡腿想到了一个很高(sha)明(bi)的问题,在 N 条水平线与 M 条竖直线构成的网格中,放 K 枚石子,每个石子都只能放在网格的交叉点上。问在最优的摆放方式下,最多能找到多少四边平行于坐标轴的长方形,它的四个角上都恰好放着一枚石子。

Input

一行输入三个正整数N,M,K。

Output

一行输出一个正整数,表示最多的满足条件的长方形数量。

Sample Input

输入1:

3 3 8

输入2:

7 14 86

Sample Output

输出1:

5

输出2:

1398

Data Constraint

对于50%的数据0 < N, M ≤ 30;

对于100%的数据0 < N, M ≤ 30000;K ≤ N*M。
想法:
枚举i(n~1),令j=k div i, 求出这个长方形个数,剩下的点附在某些合法边上,
长方形公式:(1+m)m/2*(1+m)m/2

T2连通块(connect)

Description

你应该知道无向图的连通块的数量,你应该知道如何求连通块的数量。当你兴奋与你的成就时,破坏王Alice拆掉了图中的边。当她发现,每删去一条边,你都会记下边的编号,同时告诉她当前连通块的个数。

然而,对边编号简直就是个悲剧,因为Alice为了刁难你,拆掉编号从l到r的边,当然你需要做的事情就是求连通块的个数。如果你答对了,Alice会把拆掉的边装好,迚行下一次破坏。如果你无法完成这个任务,Alice会彻底毁了你的图。

进行完足够多次之后,Alice觉得无聊,就玩去了,而你却需要继续做第三题。

Input

第一行两个整数n,m,表示点数和边数。

之后m行每行两个整数x,y,表示x与y之间有无向边。(按读入顺序给边编号,编号从1开始)

一行一个整数k,表示Alice的破坏次数。

之后k行,每行两个整数l,r。

Output

k行,每行一个整数。

Sample Input

6 5

1 2

5 4

2 3

3 1

3 6

6

1 3

2 5

1 5

5 5

2 4

3 3

Sample Output

4

5

6

3

4

2
想法:
第一种,对每一个操作,想象成把1~l-1和r+1~m加入图中,用并查集的路径压缩优化,如果添加的边数=n-1,此图已联通,退出
第二种,设f[i]为前i条边后,并查集中的每个father,g[i]为i~m,然后对于操作l,r,把
f[l-1]和g[r+1]合并即山峰(summits)可

T3:山峰(sumDescription

作为地质学家的JIH,为了绘制地图进行了野外考察。考察结束,他得到了一张n*m的地面高度地图。为了科学研究,JIH定义了一种山峰叫做d-山峰。一个高度为h地点被称作d-山峰,只有满足从这里出发,在不经过小于等于h-d的地点的前提下无法达到比它更高的地方。JIH正纠结于怎么分礼物,标出d-山峰的任务就交给你了。

Input

第一行n,m,d

第二行开始,有一个n*m的矩阵表示地图,用空格隔开。

Output

输出d-山峰的个数。

Sample Input

6 10 2

0 0 0 0 0 0 0 0 0 0

0 1 2 1 1 1 1 0 1 0

0 2 1 2 1 3 1 0 0 0

0 1 2 1 3 3 1 1 0 0

0 2 1 2 1 1 1 0 2 0

0 0 0 0 0 0 0 0 0 0

Sample Output

4

Data Constraint

30% n,m<=10

100% n,m<=500

Hintmits)
这里写图片描述
想法:
宽搜判断每个山峰
剪枝:
1:对于每此判断后,判断有没有走过的bz数组只用把队列里的数状态初始即可
2:如果它可以到达某个山峰,它就是一个山峰
3:如果周围的点都比它高,不搜这个点