T1 小k的疑惑

打表找规律,不能凑出的最大数为:(a1)(b1)1(a-1)(b-1)-1

T2 milk Measurement

数据存储:

rate[c][d] 表示c牛d天的产奶量,初始化为rate[c][0] = 7

change[c][d] 表示c牛d天的产奶变化量

知道了每头牛每天的产奶量,可以编写函数 check(cow, day),返回cow牛在day天是否排名最高。

若满足:

check(cow1, day-1) != check(cow1, day) ||
check(cow2, day-1) != check(cow2, day) ||
check(cow3, day-1) != check(cow3, day)

则 cnt++;

T3 Stack in a rut

每只牛都不能走回头路,那么什么情况才会相遇呢? n[x]>e[x]n[x]>e[x] && n[y]<e[y]n[y]<e[y]

按横、纵坐标排序 image

image

T4 Air Cownditinging Ⅱ

思路:由于M只有10,暴力枚举所有空调的开关情况,选择最小花费的情况。可以考虑DFS搜索枚举子集,对于每个子集,遍历所有位置 i ∈ [1,100],记录降温情况,再检查是否满足所有牛的要求,满足则更新最小花费。

时间复杂度:O(2M100(M+N)O(2^M⋅100⋅(M+N)

void dfs(参数) {
    if (到达边界) {
		进行答案处理
        return ;
    }
    往下递进  // 可能用循环,也可能题目的分支数是固定的,不用循环
    回溯状态  // 有些情况也不用回溯
}

0 条评论

目前还没有评论...