zoukankan      html  css  js  c++  java
  • Codeforces Round #693 (Div. 3)

    A - Cards for Friends

    (w*h)的一张纸,如果(w)是偶数,可以横向对着成两部分,(h)同理,问能否切成至少(n)片小纸片

    对于(w,h)而言,两者相互独立,根据乘法原理,两者能对折次数的乘积即为最多能得到的小纸片数量

    B - Fair Division

    (n)个数,每个数都是(1)(2),问能否分成两组,他们的和相等。

    (sum)为所有数的和

    • (sum)为奇数,则不能
    • (frac{sum}{2})为奇数,则需要有(1)才能使得和相等
    • (frac{sum}{2})为偶数,则一定可以使得和相等

    C - Long Jumps

    给定(n)个数(a_i),可以选择从索引(i)开始,每次跳到第(i+a[i])个数(下一个数是(a_j,j=i+a_i)​),直到超出(n)的范围,你的得分等于到达的数(a_i)的总和,求最大的得分。

    DP

    显然的状态(dp[i])表示从(i)开始出发能得到的最大得分

    正着想貌似比较难,不妨反过来思考一下

    (i)位置出发能获得初始分(a[i]),下一次跳到(a[i+a[i]]),也就是说从(i+a[i])位置出发得分比从(i)位置出发少了(a[i])

    [dp[i] = dp[i + a[i]] + a[i] ]

    for(int i = n; i >= 1; --i){
    	dp[i] = a[i];
    	int j = i + a[i];
    	if(j <= n)
    		dp[i] += dp[j];
    }
    

    贪心

    从第(1)个数开始跳,到达过的标记一下,如果碰到到达过的,直接停下第二次跳到肯定比第一次跳到的得分小。

    D - Even-Odd Game

    贪心

    (n)个数,Alice和Bob选数,如果Alice选择了偶数,则得到相应的分数,如果Bob选择奇数,则得到相应的分数,问谁赢,Alice 先选。

    方法一

    (long long),我人傻了

    把奇偶数分别从大到小排序,然后两人每次选择的时候,判断自己的最大的数和别人的最大的数谁的大,如果自己大就选自己的,否则选对面的。

    方法二

    游戏可以类比成:

    如果Alice取一个偶数(x),她在全局结果上加(x)点,否则为(0)
    如果鲍勃取一个奇数(x), 他添加(-x)点到全局结果, 否则(0)
    爱丽丝想让全局结果最大化,而鲍勃想让全局结果最小化。
    显然,这个游戏完全等同于条件游戏。

    假设现在是Alice的行动。让我们看看数组中的某个数字x。

    • 如果这个数字是偶数,那么拿走它就会增加x点,而给Bob就会增加0点。

    • 如果这个数字是奇数,那么取它会加(0)点,给Bob会加(-x)点。

    所以,拿x这个数字(x)点比不拿(不管奇偶性如何)更有利可图。为了使结果最大化,Alice应该总是取数组中最大的数字。

    E - Correct Placement

    (n)(h)(w),如果(i)要排在(j)的前面,那么必须得满足(w_i<w_j,h_i<h_j)或者(w_i<h_j,h_i<w_j).
    对于每一个输出一个可以排在前面的下标,没有就输出(-1)

    对所有人按照身高从高到低排序,通过二分查找找到一个身高小于当前这个人的最高的人(x),显然在排序后的数组中(x)后面的人可以排在当前这个人的前面,只需要预处理出后缀最小宽度即可

    对于一个人躺着的情况,只需要把宽度和高度互换即可

    F - New Year's Puzzle

    给定一个(2*n)的方格,其中有些格子被堵住了,问能否用(1*2)(2*1)的骨牌填充完整

    G - Moving to the Capital

  • 相关阅读:
    13-计算属性和侦听器
    12-指令系统介绍
    11-vue的使用
    10-vue的介绍
    09-babel
    08-webpack的介绍
    07-nodejs中npm的使用
    06-Nodejs介绍
    05-面向对象
    Docker结合Jenkins构建持续集成环境
  • 原文地址:https://www.cnblogs.com/pyyyyyy/p/14237875.html
Copyright © 2011-2022 走看看