Codeforces Round #645 (Div. 2)

狗都能看懂的Proximal Policy Optimization(PPO)PPO算法详解 李宏毅老师的PPO算法讲解笔记 阅读详情

Codeforces Round #645 (Div. 2)

C Celex Update

[Link](Problem - C - Codeforces)

题意

​ 给你一个图片的矩形,问你从 ( x 1 , y 1 ) (x_1,y_1) (x1​,y1​)到 ( x 2 , y 2 ) (x_2,y_2) (x2​,y2​)每次只能向右或向下走,有多少个路径和不同的走法。

思路

  • 构造

​ 发现对于 ( i , j ) (i,j) (i,j)这个点往右走 ( i , j + 1 ) (i,j+1) (i,j+1)与 ( i + 1 , j ) (i+1,j) (i+1,j)相比差一,也就是往下会比往上权值大一点,为了不重复计数,我们从最小的路径即一直右走然后下走为起点,刨去最后一列(这样每次往下扭都使得路径变的不一样),假设矩形为 n × m n\times m n×m,一共可以往下扭 n − 1 n -1 n−1次,每行有 m − 1 m-1 m−1个位置往下扭,因此一共可以扭出 ( n − 1 ) × ( m − 1 ) (n-1)\times (m-1) (n−1)×(m−1)种不同情况,再加上开始的最小路径,答案即 ( n − 1 ) × ( m − 1 ) + 1 (n-1)\times (m-1)+1 (n−1)×(m−1)+1。

Code

#include <bits/stdc++.h>
#define x first
#define y second
#define debug(x) cout<<#x<<":"<<x<<endl;
using namespace std;
typedef long double ld;
typedef long long LL;
typedef pair<int, int> PII;
typedef pair<double, double> PDD;
typedef unsigned long long ULL;
const int N = 2e5 + 10, M = 2 * N, INF = 0x3f3f3f3f, mod = 1e9 + 7;
const double eps = 1e-8, pi = acos(-1), inf = 1e20;
int dx[] = {-1, 0, 1, 0}, dy[] = {0, 1, 0, -1};
int h[N], e[M], ne[M], w[M], idx;
void add(int a, int b, int v = 0) {
    e[idx] = b, w[idx] = v, ne[idx] = h[a], h[a] = idx ++;
}
int n, m, k;
int a[N];
int main() {
    ios::sync_with_stdio(false), cin.tie(0);
    int T;
    cin >> T;
   while (T -- ) {
        LL x1, y1, x2, y2;
        cin >> x1 >> y1 >> x2 >> y2;
        x1 = x2 - x1, y1 = y2 - y1;
        cout << x1 * y1 + 1 << '\n';
    }
    return 0;
}

D The Best Vacation

[Link](Problem - D - Codeforces)

题意

给你 n n n个月,第 i i i个月有 a i a_i ai​天,你可以连续休息 x x x天(可以跨年休息),你的每天的权值是你休息的当天是该月的第几天,问你最大权值和是多少。

思路

  • 贪心 二分

​ 首先开个二倍数组令 a [ i + n ] = a [ i ] a[i+n]=a[i] a[i+n]=a[i],这样就破环成链了。那么对于某个月第几天开始时这个月的最优解呢,假设从第 i i i个月的第 x x x天开始到了第 j j j个月的第 y y y天,分类来看:

  • x > y x>y x>y,我们让起点 x x x左移总权值会变大
  • x < y x<y x<y,我们让起点 x x x右移总权值会变大

​ 或者可与考虑从第 i i i个月 1 1 1天开始到了第 j j j个月的第 x x x天,显然让我们的起点右移一直到填满第 j j j个月更优,这样也可以贪出来下面的结论。

​ 所以一般从最基本的情况来贪心会更方便。

​ 最终会变成某个月末 + + +一些连续的月份的形式,因此我们直接枚举每个 i i i对于当前位置看看它往前能到哪个位置,算一下贡献即可。

​ 可以将数组倒过来然后往后二分,也可以设 s i s_i si​为前 i i i个月的天数和,从我们要找 s i − s j ≤ x → s j ≥ s i − x s_i-s_j\le x\to s_j\ge s_i-x si​−sj​≤x→sj​≥si​−x,即从 s s s中找大于等于某个数的第一个数,这样直接二分也可。

Code

转一下

#include <bits/stdc++.h>
#define x first
#define y second
#define debug(x) cout<<#x<<":"<<x<<endl;
using namespace std;
typedef long double ld;
typedef long long LL;
typedef pair<int, int> PII;
typedef pair<double, double> PDD;
typedef unsigned long long ULL;
const int N = 4e5 + 10, M = 2 * N, INF = 0x3f3f3f3f, mod = 1e9 + 7;
const double eps = 1e-8, pi = acos(-1), inf = 1e20;
int dx[] = {-1, 0, 1, 0}, dy[] = {0, 1, 0, -1};
int h[N], e[M], ne[M], w[M], idx;
void add(int a, int b, int v = 0) {
    e[idx] = b, w[idx] = v, ne[idx] = h[a], h[a] = idx ++;
}
int n, m, k;
LL a[N], s[N], x;
LL p[N];
int main() {
    ios::sync_with_stdio(false), cin.tie(0);
    cin >> n >> x;   
    for (int i = 1; i <= n; i ++) cin >> a[i], a[i + n] = a[i];
    reverse(a + 1, a + 1 + 2 * n);
    for (int i = 1; i <= n * 2; i ++) s[i] = s[i - 1] + (1 + a[i]) * a[i] / 2;
    for (int i = 1; i <= n * 2; i ++) a[i] += a[i - 1];

    LL res = 0, ans = 0;
    for (int i = 1; i <= n * 2; i ++) {        
        LL p = a[i] - a[i - 1];
        LL d = x - p;
        ans = (1 + p) * p / 2;
        if (d <= 0) {      
            res = max(res, (p + p - x + 1) * x / 2);
            continue ;
        }
        int l = i + 1, r = n * 2;
        while (l < r) {
            int mid = l + r >> 1;
            if (a[mid] - a[i] >= d) r = mid;
            else l = mid + 1;
        }
        if (l > r) {
            res = max(res, ans);
            continue ;
        }
        ans += (s[l - 1] - s[i]);
        d -= (a[l - 1] - a[i]);
        p = a[l] - a[l - 1];
        d = min(d, a[l] - a[l - 1]);
        ans += (p + p - d + 1) * d / 2;
       
        res = max(res, ans);
    }

    cout << res << '\n';
    return 0;
}

直接找

#include <bits/stdc++.h>
#define x first
#define y second
#define debug(x) cout<<#x<<":"<<x<<endl;
using namespace std;
typedef long double ld;
typedef long long LL;
typedef pair<int, int> PII;
typedef pair<double, double> PDD;
typedef unsigned long long ULL;
const int N = 4e5 + 10, M = 2 * N, INF = 0x3f3f3f3f, mod = 1e9 + 7;
const double eps = 1e-8, pi = acos(-1), inf = 1e20;
int dx[] = {-1, 0, 1, 0}, dy[] = {0, 1, 0, -1};
int h[N], e[M], ne[M], w[M], idx;
void add(int a, int b, int v = 0) {
    e[idx] = b, w[idx] = v, ne[idx] = h[a], h[a] = idx ++;
}
int n, m, k;
LL a[N], s[N], x;
int main() {
    ios::sync_with_stdio(false), cin.tie(0);
    cin >> n >> x;   
    for (int i = 1; i <= n; i ++) cin >> a[i], a[i + n] = a[i];    
    for (int i = 1; i <= n * 2; i ++) s[i] = s[i - 1] + (1 + a[i]) * a[i] / 2;
    for (int i = 1; i <= n * 2; i ++) a[i] += a[i - 1];

    LL res = 0, ans = 0;
    for (int i = 1; i <= n * 2; i ++) {        
        if (a[i] < x) continue ;
        int p = lower_bound(a + 1, a + 1 + n * 2, a[i] - x) - a;
        ans = s[i] - s[p];
        LL tt = x - (a[i] - a[p]);
        
        ans += ((a[p] - a[p - 1]) * 2 - tt + 1) * tt / 2;
        res = max(res, ans);

    }

    cout << res << '\n';
    return 0;
}

E Are You Fired?

[Link](Problem - E - Codeforces)

题意

给你一个长度为 n n n的数组其中前$\lceil \frac{n}{2}\rceil 为 读 入 为读入 为读入a_i , 剩 下 的 均 为 ,剩下的均为 ,剩下的均为x , 问 是 否 存 在 一 个 ,问是否存在一个 ,问是否存在一个k 使 得 任 意 长 度 为 使得任意长度为 使得任意长度为k 的 子 区 间 的 和 均 的子区间的和均 的子区间的和均>0$。

思路

  • 分类讨论 贪心

设 m = ⌈ n 2 ⌉ , s i = ∑ j = 1 i a i m=\lceil \frac{n}{2}\rceil, s_i=\sum_{j=1}^{i}a_i m=⌈2n​⌉,si​=∑j=1i​ai​,如果长度为 k k k的区间满足那么长度为 2 × k 2\times k 2×k的区间也成立,因此我们只需要证明是否有大于 n 2 \frac{n}{2} 2n​的区间成立即可, x x x是个不确定因素,对于 x x x分类来看:

  • x > 0 x>0 x>0 当 x > 0 x>0 x>0 大于 m m m位置的这些 x x x带来的收益都是正的,我们应该照单全收,又因为要连续的子区间,我们只需要取 k = n k=n k=n即可,如果不成立,那么其它的也均不可,因为我们减少 k k k会使权值减少。
  • x = 0 x=0 x=0 当 x = 0 x=0 x=0 和 x > 0 x>0 x>0时一样 直接选 k = n k=n k=n即可。
  • x < 0 x<0 x<0 当 x < 0 x<0 x<0 我们一定要把后面的这些 x x x都消除掉,这个时候我们从前往后枚举每个位置看当前 i i i到 m m m的这个区间的和能消除多少个 x x x,因为要让所有的区间均满足,即当前 i i i满足的区间长 k 1 k_1 k1​它前面的点也要满足,我们搞一个合法长度前缀最小值,然后如果当前点加前缀最小值 − 1 -1 −1到达 n n n了即为一组合法解,注意前缀最小值要满足 ≤ n \le n ≤n。

Code

#include <bits/stdc++.h>
#define x first
#define y second
#define debug(x) cout<<#x<<":"<<x<<endl;
using namespace std;
typedef long double ld;
typedef long long LL;
typedef pair<int, int> PII;
typedef pair<double, double> PDD;
typedef unsigned long long ULL;
const int N = 5e5 + 10, M = 2 * N, INF = 0x3f3f3f3f, mod = 1e9 + 7;
const double eps = 1e-8, pi = acos(-1), inf = 1e20;
int dx[] = {-1, 0, 1, 0}, dy[] = {0, 1, 0, -1};
int h[N], e[M], ne[M], w[M], idx;
void add(int a, int b, int v = 0) {
    e[idx] = b, w[idx] = v, ne[idx] = h[a], h[a] = idx ++;
}
LL n, m, k;
LL a[N];
int main() {
    ios::sync_with_stdio(false), cin.tie(0);
    cin >> n;
    m = (n + 1) / 2;
    for (int i = 1; i <= m; i ++) cin >> a[i];
    cin >> k;
    for (int i = m + 1; i <= n; i ++) a[i] = k;
    for (int i = 1; i <= n; i ++) a[i] += a[i - 1];
  
    if (k >= 0) {
        cout << (a[n] > 0 ? n : -1) << '\n';
        return 0; 
    }

    LL res = 1e9;
    for (int i = 1; i <= m; i ++) {
        LL s = a[m] - a[i - 1];
        res = min(res, m - i + 1 + (s - 1) / (-k));
        if (i + res - 1 >= n) {
            cout << min(res, n) << '\n';
            return 0;
        }
    }

    cout << -1 << '\n';
    return 0;
}
JLink 添加国产芯片手把手教程(雅特力 + 华大) 拷贝厂商算法文件夹 + 配置 JLinkDevices.xml。雅特力直接复制官方配置,华大按需添加芯片节点,操作一次,永久生效,以后调试 AT32、HC32 再也不用愁找不到型号。这套方法适配全版本 JLink,也是国产 MCU 替代项目的必备技能,看完照着做,新手也能轻松搞定。百度网盘资料分享:通过网盘分享的文件:jink驱动(包括新增芯片型号)链接: https://pan.baidu.com/s/14SLgrPfyof1lglD6VQguAw?pwd=cfuq 提取码: cfuq。 阅读详情

相关推荐

用户行为数据分析 User Behavior Data from Taobao for Recommendation

一、提出问题 二、理解数据 数据来源 阿里云天池数据集:(https://tianchi.aliyun.com/dataset/dataDetail?dataId=649) 本文选取的数据集为UserBehavior.csv,共有5242880条数据。数据的具体类别如下表所示: 用户行为种类有四种,如下表所示 对于数据维度的说明如下: 在本文选取的2017年11月25日到2017年12月3日的时间范围内,不重复的用户数量为10202,不重复的商品ID数为412369,不重复的商品类目ID数为5859,

cccxxxqq的博客 5206

Codeforces 645E (构造 DP)

E. Intellectual Inquiry time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output After getting kicked out of her rep

morejarphone~ 597

Visual C++与WPF混合开发:C++/CLI桥接技术实现现代化桌面应用

在桌面应用开发领域,混合编程技术是连接不同技术栈、复用核心资产的关键手段。其核心原理在于通过特定的桥接层,实现托管代码与非托管代码之间的互操作,从而打破语言和运行时环境的壁垒。这项技术的核心价值在于,它允许开发者将高性能、高稳定性的原生C++业务逻辑库,与现代化、高表现力的WPF用户界面无缝结合,避免了重写核心代码的巨大成本和风险。在工业控制、数据可视化、上位机软件等对性能和界面均有高要求的应用场景中,这种架构尤为适用。本文以C++/CLI作为桥接技术,详细演示了如何构建一个包含原生C++核心层、C++/C

weixin_33146151的博客 278

codeforces Round #645 (Div. 2)D题解

####Codeforces Round #645 (Div. 2)——D题解 作为一名菜鸡,理所当然得没有A出来,这道题数据放小就一水题了,可惜数据这块卡的死死的。 本题最重要的一点就是你要推出来一个结论:答案的最后一天必定是月末,这样就可以枚举月末推出月初,前缀和计算天数即可。具体可以二分O(nlogn)也可以尺取O(n) ###结论的证明: 这里参考Tutorial使用反证法,假设存在某一个最优解且其的最后一天不是月末,设该最优解的最后一天元素为x,则可以知道其下一天是x+1(因为它不在月末),因为其

ylwhxht的博客 1245

手把手教你用FPGA实现SerDes高速接口设计(附避坑指南)

本文是一份详尽的FPGA SerDes高速接口设计实战指南。文章深入剖析了SerDes硬核(如GTX/GTH)的时钟管理、发送端均衡、接收端CDR与均衡等核心模块,并提供了Verilog代码示例。重点分享了信号完整性分析、眼图调试与误码率测试等实战经验,附有自定义高速视频流接口的完整实现案例与避坑指南,帮助工程师从“会用”到“懂”且能独立驾驭高速接口设计。

ik678901234的博客 1146

别再死记硬背了!用Python可视化带你直观理解柯西收敛定理(附NumPy代码)

本文通过Python可视化技术,结合NumPy和Matplotlib,直观展示柯西收敛定理的动态过程。文章提供了完整的代码实现,帮助读者从抽象数学定义过渡到具象理解,特别适合数学学习者和Python开发者。通过热力图和交互式参数探索,读者可以清晰观察数列收敛特性,提升数学分析的学习效率。

weixin_28465009的博客 185

Codeforces Round #645 (Div. 2)解题报告

Codeforces Round #645 (Div. 2) A.Park Lighting 题目大意 给你一个由n * m个方块组成的小区,每两个方块相交的边视为街道,一个街道上的灯可以照亮与其相邻的方块,问你最少点亮多少个街道的灯可以使所有方块全部亮起 解题思路 一开始想的是n和m根据奇偶分为4种情况,可以A,但是更好的思路是有n * m个方块需要点亮,一盏灯最多可以点亮两个方块,那么答案就是[(n * m) / 2] = (n * m + 1) / 2([]表示向上取整) AC代码 #include

weixin_44211980的博客 333

通信原理 | 通俗理解 | 因子图、消息传递以及它们之间的关系

在算法迭代过程中,通过反复更新这些消息,直到收敛,最终可以得到每个变量的边缘概率分布或最有可能的整体状态。算法通过因子图中的节点反复交换消息,直到找到最优解或所有消息稳定下来,从而解决了比如聚会日期这样的优化问题。在实际应用中,这种方法可以用来解决更复杂的问题,比如图像识别、语音识别和机器学习中的其他问题。,特别是在处理概率模型和执行概率推断时,因子图提供了一个强大的工具。(比如朋友的空闲时间和地点的可用性),并且你希望尽可能让所有人满意。在真正的因子图和消息传递算法中,这个过程被数学化和形式化。

若北辰 1196

wens Codeforces Round #645 (Div. 2)

这场cf,我败在了老奶奶身上。 就做出来一道题。还上分了。 A题,台灯。 十分钟就过了吧,470分。但是prime passed(预测试通过)。当时觉得完了,又是一场0题之路。 可是上分了。搞搞笑笑。 #include <iostream> using namespace std; int main() { int t, n, m; cin >> t; while (t--) { cin >> n >>

weixin_45714652的博客 213

《QGIS快速入门与应用基础》079:KML/KMZ格式:Google Earth兼容

KML/KMZ是专为地理可视化设计的空间数据格式,原生兼容Google Earth,支持点线面要素标注与多媒体集成。KML为XML文本格式,KMZ是其压缩版本。该格式优势在于可视化表现力强、跨平台共享便捷,适合地理标注、路线分享等场景,但存在属性支持弱、大数据量处理效率低等局限。QGIS中可便捷加载和导出KML/KMZ数据,需注意编码设为UTF-8、勾选"导出样式"以保留可视化效果。建议中小规模标注数据使用KMZ格式,确保关联资源完整,提升共享效率。

LuckyHanMo的博客 772

【GameFramework框架内置模块】2、数据节点(Data Node)

这一篇讲数据节点DataNode,基本开发程序都会有类似数据节点作用的东西,数据节点的作用其实就是保存游戏运行时的一些缓存数据,比如用户登录信息、用户名、任务节点等等。数据一般会有增删改查这四种操作,在运行时的数据一般是使用单例或者静态属性,将数据存储在内存中而数据节点也是将数据存储在内存中,但是不用序列化数据,比使用单例或者静态属性要容易维护的多,特别时它的树形结构可以让我们很好的组织我们的数据结构,方便做增删改查操作。数据节点DataNode模块的数据的存储方式是以树形结构存储。

优快云博客专家,Unity3D高级软件工程师,《Unity 3D从入门到实战》作者。 3185

Codeforces Round #645 (Div. 2) May/26/2020 22:35UTC+8

Codeforces Round #645 Div. 2C. Celex UpdateD. The Best VacationE. Are You Fired? 比赛链接 https://codeforces.com/contest/1358 比赛记录 https://blog.csdn.net/cheng__yu_/article/details/105395197 C. Celex Update #include <bits/stdc++.h> #define ll long long u

cheng__yu_的博客 273

2026星宸科技数字IC设计笔试带答案

摘要:本文包含四个计算机科学领域的编程与逻辑设计题目解析。第一部分通过C语言程序补充水仙花数判断代码,考查循环结构和函数设计;第二部分分析Verilog代码的D触发器电路,讨论时序约束与时钟频率影响;第三部分详细讲解静态时序分析中的建立/保持时间计算与违例判断;第四部分计算机体系结构题目涉及CPI、MIPS计算和性能加速比分析。最后还包含一个逻辑代数化简的示例,展示基本的布尔代数简化技巧。这些题目全面覆盖了编程基础、数字电路设计、时序分析和计算机性能评估等核心知识点。(149字)

Open 121

Codeforces Round #645(Div.2)

Codeforces Round #645 Div.2A. Park Lighting(签到)B. Maria Breaks the Self-isolation(~~阅读理解~~)C. Celex Update(找规律)D. The Best Vacation(二分)E(待补)F(待补) A. Park Lighting(签到) 题意:每盏路灯可以照亮两个格子,求照亮全部格子最少需要多少盏路灯。 题记:将所有格子的数量除以二向上取整即可。 #include<bits/stdc++.h> us

moyangxian 199

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Codeforces Round #645 (Div. 2)D. The Best Vacation 前缀和+二分

Codeforces Round #645 (Div. 2)D. The Best Vacation 假设:一年有n个月,第i个月有d[i]天,每个月是从1号开始到d[i]号,即1,2,3…d[i]号。设某月的某天是s号,就可以获得s个hug拥抱。 输入一个x,你需要从这中选出连续的x天,使得其获得的hug拥抱数量最大。 需要注意是的这连续的x天中可以有下一年的天数,也就是说这里可以构成一个环,故可以预处理第二年的月份天数,即d[i+n]=d[i]。 题解: 最有解的最后一天肯定某月份的月底。 前缀和预处理

hrdate(菜菜菜带带带) 348

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Codeforces Round #645 (Div. 2) D. The Best Vacation

Codeforces Round #645 (Div. 2) D. The Best Vacation 题目链接 You’ve been in love with Coronavirus-chan for a long time, but you didn’t know where she lived until now. And just now you found out that she lives in a faraway place called Naha. You immediately dec

旺崽的博客 2604

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

CODEFORCES ROUND #645 (DIV. 2)

http://www.yyycode.cn/index.php/2020/05/30/codeforces-round-645-div-2/ A. Park Lightingtime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard output Due to the coronavirus pandemic, city authorities obligated .

代码笔记本 603

Codeforces Round #645 (Div. 2)(A&&B)

Park Lighting CodeForces - 1358A 思路:水题不解释。 代码如下: #include<bits/stdc++.h> #define ll long long using namespace std; int n,m; int main() { int t; scanf("%d",&t); while(t--) { scanf("%d%d",&n,&m); ll ans=(n/2)*m+((n%2==0)?0:(m/2+((

starlet_kiss的博客 407

Codeforces Round #645 (Div. 2)补题

好久没写题了…… 最近好像能做出2D了,不过上分还是困难。 比赛传送门 本场关键词 贪心、找规律、前缀和、二分 A.Park Lighting 题意 给你n×mn\times mn×m的网格,你可以在两个网格之间的边上放一个灯,这个灯将会照亮这两个网格。 求出照亮所有的n×mn\times mn×m个格子的最小需要的灯数。 思路 贪心,只要nnn和mmm中间有一个是偶数,那么答案就是总格子数除以二;如果都为奇数,那么先暂时去掉一行,将这部分如上计算,再对剩下这一行贪心考虑。 代码 #include<b

WA制造机的博客 370

Codeforces Round #645 (Div. 2) Solution

橙名祭

curry的博客 1490

Codeforces Round #645 (Div. 2) E

E. Are You Fired? 题意: 有一个长为 n 的数组 a ,前 n/2 (向上取整)个元素的值是互不相关的,后 n/2 (向下取整)个元素的值都是一样的,告诉你这些元素的值,让你求存不存在这样一个 k 能够使得 a[i]+a[i+1]+a[i+2]+……a[i+k-1]的值始终>0,如果不存在就输出 -1 思路: 如果存在 k ,那就必然存在 2k ,3k ,因为如果 k 段的 sum 能大于0,那 2k 、3k 肯定也是大于0的,因此,k 的范围就缩小到了 ( n/2 , n ] 的范围内。

qq_43586463的博客 192

Codeforces Round #645 (Div. 2) D补题

题目大意: n个月,每个月有d[i]天,这个月每天可以获得的拥抱数从1到d[i],共有x天,询问在连续的x天内,一共最大可以获得多少拥抱,这个月份可以延伸到第二年 . 思路: 1.既然可以延伸到第二年,而且是x是小于每个月的天数之和的,所以x的范围肯定不超过一年,那只需要多开一倍的空间模拟第二年。 2.通过观察可以发现,要想拥抱数最多,x天的最后一天一定是月末结尾,假设当前在月末,按照一般情况来说,这x天的区间往前移一天和往后移一天,获得的拥抱数都会变小,所以只需要枚举月末为结尾的时候即可。 3.求一个..

killer_gac的博客 539

Codeforces Round #645 (Div. 2)A~C题解

传送门 A.Park LightingB.Maria Breaks the Self-isolationC.Celex Update A.Park Lighting 给n×m个格子,格子之间那条线是路;你可以在路的中间放一个路灯,来照亮相邻两个格子,求照亮所有格子的最少路灯数。 int n, m; void solve() { cin >> n >> m; if (n % 2 == 0 || m % 2 == 0) cout << m * n / 2 <&

Sivannn的博客 340
上一篇: 测温(dp+双端队列)
下一篇: Codeforces Round #782 (Div. 2)
枉玊
博客等级 码龄6年 73粉丝 171原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值