用户工具

站点工具


2020-2021:teams:too_low:0725-0731

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
2020-2021:teams:too_low:0725-0731 [2020/07/31 13:54]
dragonylee
2020-2021:teams:too_low:0725-0731 [2020/08/02 11:27] (当前版本)
dragonylee
行 1: 行 1:
-====== 2020/07/10 – 2020/07/10 周报 ======+====== 2020/07/25 – 2020/07/31 周报 ======
  
 <​html><​br/></​html>​ <​html><​br/></​html>​
行 5: 行 5:
 ===== 团队训练 ===== ===== 团队训练 =====
  
-  * 2020.07.10 ​[[niukediwuchang00|牛客多校第五场]] ''​%%pro: ​x/x/x%%''​ ''​%%rk: ​x/x%%''​+  * [[niukediwuchang00|牛客多校第五场]] ''​%%pro: ​5/6/11%%''​ ''​%%rk: ​54/1145%%''​ 
 +  * [[niukediliuchang00|牛客多校第六场]] ''​%%pro:​ 5/​5/​11%%''​ ''​%%rk:​ 92/1120%%''​
  
 <​html><​br/></​html>​ <​html><​br/></​html>​
行 13: 行 14:
 ==== 专题 ==== ==== 专题 ====
  
-+[[https://​blog.csdn.net/​dragonylee/​article/​details/​107660418|生成函数]]
  
 ==== 比赛 ==== ==== 比赛 ====
  
-+  * [[https://​blog.csdn.net/​dragonylee/​article/​details/​107707121|Codeforces Round #660 (Div. 2)]] ''​%%pro:​ 4/​4/​5%%''​ ''​%%rk:​ 963/​18771%%''​ 
 +  * [[https://​blog.csdn.net/​dragonylee/​article/​details/​107711732|M-SOLUTIONS Programming Contest 2020]] ​ ''​%%pro:​ 6/​6%%''​ ''​%%rk:​ NaN%%''​ **FINISHED**
  
 ==== 题目 ==== ==== 题目 ====
行 29: 行 31:
 ==== 专题 ==== ==== 专题 ====
  
-+[[swdp_cy|数位dp]]
  
 ==== 比赛 ==== ==== 比赛 ====
  
-无 +  * [[cf660_cy|Codeforces Round #660 (Div. 2)]] ''​%%pro:​ 3/​4/​5%%''​ ''​%%rk:​ 1572/​18771%%''​
 ==== 题目 ==== ==== 题目 ====
  
行 49: 行 50:
 ==== 比赛 ==== ==== 比赛 ====
  
-+   * [[2020-2021:​teams:​too_low:​cf659_hj|Codeforces Round #659 (Div. 2)]] ''​%%pro:​ 2/​4/​7%%''​ ''​%%rank 2380/​10822%%''​
  
 +   * [[2020-2021:​teams:​too_low:​cfedu92hj|Educational Codeforces Round 92]] ''​%%pro:​ 4/​4/​7%%''​ ''​%%rank 989/​13827%%''​
 ==== 题目 ==== ==== 题目 ====
  
行 61: 行 63:
 ==== 李英龙 ==== ==== 李英龙 ====
  
-+[[https://​blog.csdn.net/​dragonylee/​article/​details/​107660418|生成函数的一些总结]]
  
 ==== 陈源 ==== ==== 陈源 ====
  
-+[[swdp_cy|数位dp小结]] 
  
 ==== 胡琎 ==== ==== 胡琎 ====
  
-+CF 659 B2 Koa and the Beach (Hard Version)  
 +[[https://​codeforces.com/​contest/​1384/​problem/​B2]] 
 + 
 + 
 +** 题意 **  需要从海滩游到海岛上,给定初始时波浪高度等于0时的水深分布,波浪高度在0-k-0-k之间连续变动,已知最深能够游的水深D,求是否可以游到小岛 
 + 
 +** 题解 **  设波浪高度为k-0-k,维护到达位置i时,可能的波浪时间范围[l,​ r]。位置i+1时,波浪的范围为[l+1,​ r+1]和 [k - (D - d[i]), k + (D - d[i])]的交,如果长度为0则不可游到。特别的,如果D大于d[i]+k则时间范围为[0,​2k-1],即整个长度 
 + 
 +特别要注意D - d[i]小于0的情况。这里pretest没有测结果B2 System test的时候WA了 
 + 
 +** Tag ** dp 
 + 
 +** Comment ** 这道题需要基于位置思考,而不是基于时间思考,因为波浪的变化是周期性有规律的,便于处理,而水深的变化是任意的。 
 + 
 +<​hidden>​  
 +<code cpp> 
 + 
 +#include <​bits/​stdc++.h>​ 
 +  
 +using namespace std; 
 +  
 +  
 +int d[300005];​ 
 +int main(){ 
 +    int t = 0; 
 +    cin>>​t;​ 
 +    while(t--){ 
 +        int n, k, l; 
 +        cin>>​n>>​k>>​l;​ 
 +  
 +        for (int i = 1; i <= n; ++i) { 
 +            cin>>​d[i];​ 
 +        } 
 + 
 +        int t1 = 0, t2 = 2*k-1; 
 +        bool ok = true; 
 +        for (int i = 1; i <= n; ++i) { 
 +            if(l - d[i] >= k){ 
 +                t1 = 0, t2 = 2*k-1; 
 +            } 
 +  
 +            else{ 
 +  
 +                if(l < d[i]){ 
 +                    ok = false;​break;​ 
 +                } 
 +                int tt1 = k - (l - d[i]); 
 +                int tt2 = k + (l - d[i]); 
 +  
 +                t1++, t2++; 
 +  
 +                if(tt2 < t1 || tt1 > t2)  { 
 +                    ok = false; 
 +                    break; 
 +                } 
 +                t1 = max(tt1, t1); 
 +                t2 = min(tt2, t2); 
 +            } 
 +        } 
 +  
 +        cout<<​(ok ? "​Yes"​ : "​No"​)<<​endl;​ 
 +    } 
 +
 +</​code>​ 
 + </​hidden> ​
  
  
2020-2021/teams/too_low/0725-0731.1596174854.txt.gz · 最后更改: 2020/07/31 13:54 由 dragonylee