IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> Codeforces Round #763 (Div. 2) Editorial C 【解题报告】 -> 正文阅读

[C++知识库]Codeforces Round #763 (Div. 2) Editorial C 【解题报告】

链接 :https://codeforces.com/contest/1623/problem/C
在这里插入图片描述
在这里插入图片描述

题解: 二分答案即可。比较困扰我的是两个问题:1.怎么求出 d d d。2.如何判断这个 m i d mid mid的值是否合法。会不会出现,满足check,但是实际上不存在 m i d mid mid的情况。

第一个:
i n t d = m i n ( h [ i ] , c u r h [ i ] ? x ) / 3 ; int d = min(h[i], cur_h[i] - x) / 3; intd=min(h[i],curh?[i]?x)/3;
被题解的这个 m i n min min折服了,我想的有点复杂的东西,居然可以这样搞。
第二个问题很容易解决,如果不存在,那么要么大,要么小,如果小的话,肯定能二分出更小的地方,如果更大,同理。

#include <bits/stdc++.h>
#define int long long
#define forn(i, n) for (int i = 0; i < n; ++i)
using namespace std;
typedef pair<int , int> PII;
int n;
vector<int> vec;

bool check(int mid)
{
    vector<int> backup(vec.begin() , vec.end());
    for (int i = n - 1;i >= 2;i -- )
    {
        if (backup[i] < mid) return false;
        int d = min(backup[i] - mid , vec[i]) / 3;
        backup[i - 1] += d;
        backup[i - 2] += d * 2;
    }
    return backup[0] >= mid && backup[1] >= mid;
}

signed main()
{
    int T; cin >> T;
    while(T --) {
        cin >> n;
        vec.resize(n);
        forn(i , n) cin >> vec[i];   
        int l = 0 , r = 1e9;
        while(l < r)
        {
            int mid = (l + r + 1) >> 1;
            if (check(mid)) l = mid;
            else r = mid - 1;
        }
        cout << l << endl;
    }
    return 0;
}
  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-01-11 23:48:36  更:2022-01-11 23:51:00 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 10:23:20-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码