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、发现数据实在太大时要想想找规律。