标签:游戏 推导 min max sum P2123 let 全序 true
没做过 P1080 [NOIP2012 提高组] 国王游戏 的可以去做做()
这道题的大臣是有全序关系的(就是说可以比较优劣且具有传递性),所以直接定义小于号排序就好了。
以下是我在新建文本文档推导全序关系的过程(英语能理解就行,也不保证推对了,仅供参考)。
let j = i+1, sum = \sum^{i+1}_k a_k, "i < j" means "i is better then j(otherwise, we should swap i and j)" c_i = max( c_{i-1} , sum - a_j) + b_i c_{i+1} = max(max(c_{i-1} , sum - a_j) + b_i, sum)+ b_j c_{i+1} = max( c_{i-1} + b_i + b_j, sum - a_j + b_i + b_j, sum + b_j) c_{i+1}' = max( c_{i-1} + b_i + b_j, sum - a_i + b_i + b_j, sum + b_i) i < j ? max(sum - a_j + b_i + b_j, sum + b_j) < max(sum - a_i + b_i + b_j, sum + b_i) ? a_j > b_i ? sum + b_j < sum + b_i or sum + b_j < sum - a_i + b_i + b_j -> a_j > b_i; b_i > min(a_i, b_j) : b_i + b_j - a_i < b_i or b_i + b_j - a_i < - a_j + b_i + b_j -> a_j < b_i; a_j > min(a_i, b_j). -> min(a_i, b_j) < min(a_j, b_i) if min(a_j, b_k) < min(a_k, b_j) is min(a_i, b_k) < min(a_k, b_i) true? min(a, b) < min(c, d) -> a < c, d or b < c, d min(c, e) < min(f, b) -> c < b, f or e < b, f then we want to know is min(a, e) < min(f, d) true? -> a < d, f or e < d, f -> it's true, let us prove it if a < d, f or e < d, f is false, let a < c, d. then if c < b, f -> a < c < d, f. wrong so e < b, f. then we have f < a < d < e < f -> f < f. wrong we ignore something important(the quality). if min(a_i, b_j) = min(a_j, b_i) then i = j? nope. consider {1, 1} = {2, 7} < {3, 5} but {1, 1} = {3, 5} let a_i = min(a_i, b_j) notice that if a_i = a_j. i < j iff b_i > b_j otherwise a_i = b_i, i<j or i is j
这道题 ouuan 讲得非常清楚,推荐。
标签:游戏,推导,min,max,sum,P2123,let,全序,true 来源: https://www.cnblogs.com/Lcyanstars/p/16614751.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。