2017.1.14【初中部 GDKOI】模拟赛B组

T1:这题就是一个纯的克鲁斯卡尔,但是比赛时出现了以下问题。

1、粗心,把一个x搞成y。

2、我的标记方法有问题,处理不了0的情况。

3、并查集的基本打法不会,搜索父亲时要顺带把自己的标记纸箱祖先。


T2:预处理出f[i][j](第j列1至i行的和),然后枚举奶牛位置,用一个循环求出这个位置的值,选出最大。


T3:这题一开始看不会,后来想了一下就觉得十分简单。

用当前牧场的音量减去前一个牧场的音量减1的差,就是这个牧场的奶牛发出的总音量,用完全背包问题求出要发出当前音量的最少奶牛数,最后加起来就行了。


T4:一开始看见n,m<=10^9就放弃了,后来听说是找规律。

我们先设n<=m

1、当n>=3且m>=3时,答案就是(n*m+1)/2.

2、当n=2时,分三种情况:

  1、如果m%4=0,答案就是|m/4|*4

  2、如果m%4=1,答案就是|m/4|*4+2

  3、如果m%4=2或m%4=3,答案就是|m/4|*4+4

  (|x|表示实数x的整数部分)

3、当n=1时,答案就是m

今天做题总结:

1、编程时要细心。

2、发现数据实在太大时要想想找规律。

你可能感兴趣的:(【初中部,NOIP提高组,】模拟赛B)