当前位置: 首页 > news >正文

Codeforces Round 986 (Div. 2)

https://codeforces.com/contest/2028

A. Alice's Adventures in "Chess"

思路:因为数据范围很小,可以暴力遍历。

void solve()
{
    int n, a, b;
    cin >> n >> a >> b;
    string s;
    cin >> s;
    int x = 0, y = 0;
    for (int z = 0; z < 110; z++){
        for (int i = 0; i < n; i++){
            if (s[i] == 'N') y++;
            else if (s[i] == 'S') y--;
            else if (s[i] == 'E') x++;
            else if (s[i] == 'W') x--;
            if (x == a && y == b){
                cout << "YES" << endl;
                return ;
            }
        }
    }
    cout << "NO" << endl;
}

B. Alice's Adventures in Permuting

思路:注意分类讨论即可

void solve()
{
    int n, b, c;
    cin >> n >> b >> c;
    if (b == 0){
        if (c >= n){
            cout << n << endl;
        }
        else if (c >= n-2){
            cout << n-1 << endl;
        }
        else cout << -1 << endl;
    }
    else{
        if (c >= n){
            cout << n << endl;
        }
        else cout << n-max(0ll, 1+(n-c-1)/b) << endl;
    }
}

C. Alice's Adventures in Cutting Cake

思路:对于可以取中间的任意,而两边需要保证一定的条件的题,可以分成前缀和后缀来做,然后枚举要满足的两边。

void solve()
{
    int n, m, k;
    cin >> n >> m >> k;
    vector<int> a(n+1), pre(n+1);
    for (int i = 1; i<=n; i++){
        cin >> a[i];
        pre[i] = pre[i-1]+a[i];
    }
    vector<int> Prefix(m+1), Suffix(m+1);
    for (int i = 1, j = 1; i<=m; i++){
        while (j<=n && pre[j]-pre[Prefix[i-1]] < k){
            j++;
        }
        Prefix[i] = j;
    }
    Suffix[0] = n;
    for (int i = 1, j = n; i<=m; i++){
        while (j>=0 && pre[Suffix[i-1]]-pre[j] < k){
            j--;
        }
        Suffix[i] = j;
    }
    int ans = -1;
    for (int i = 0; i<=m; i++){
        if (Prefix[i] <= Suffix[m-i]){ // 相等表示Alice为空,其余正好满足
            ans = max(ans, pre[Suffix[m-i]]-pre[Prefix[i]]);
        }
    }
    cout << ans << endl;
}

相关文章:

  • leetcode日记(99)不同的子序列
  • 感受命令行界面的魅力——Linux环境下基础开发工具的使用
  • Leetcode-132.Palindrome Partitioning II [C++][Java]
  • 如何在PyCharm中利用Python对象自动提示提高开发效率?
  • 数学建模 第二节
  • 删除二叉搜索树中的节点
  • 第五章-动态规划
  • 实践 PyTorch 手写数字识别
  • 机试准备第17天
  • Suno的对手Luno:AI音乐开发「上传参考音频 - 方式一:通过二进制流的方式」 —— 「Luno Api系列|AI音乐API」第11篇
  • 【NLP 38、实践 ⑩ NER 命名实体识别任务 Bert 实现】
  • Spring Boot拦截器(Interceptor)与过滤器(Filter)深度解析:区别、实现与实战指南
  • Springboot中的 Mapper 无法找到的 可能原因及解决方案
  • 一个简单的井字棋(Tic-Tac-Toe)游戏的C语言实现
  • 程序化广告行业(20/89):交易模式深度剖析与价值解读
  • 基于51单片机的多功能时钟闹钟proteus仿真
  • 前端内存优化实战指南:从内存泄漏到性能巅峰
  • IMX6ULL_Pro开发板的串口应用程序实例(利用TTY子系统去使用串口)
  • 蓝桥杯[阶段总结] 二分,前缀和
  • C语言动态内存管理(上)
  • 气象干旱黄色预警继续:陕西西南部、河南西南部等地特旱
  • 中日有关部门就日本水产品输华问题进行第三次谈判,外交部回应
  • 保证断电、碰撞等事故中车门系统能够开启!汽车车门把手将迎来强制性国家标准
  • 新华每日电讯:给“男性妇科病论文”开一剂复方药
  • 首批证券公司科创债来了!拟发行规模超160亿元
  • 菲护卫艇企图侵闯中国黄岩岛领海,南部战区:依法依规跟踪监视、警告驱离