首页 > 其他分享 >Codeforces Round #645 (Div. 2) A-D

Codeforces Round #645 (Div. 2) A-D

时间:2023-01-10 14:25:18浏览次数:42  
标签:13 题意 int res Codeforces hline 645 邀请 Div

A. Park Lighting

题意:

用 1 * 2 的方格去填充 n * m 的格子,可以重叠摆放,至少需要多少个

分析:

不重叠的情况下,横着摆与竖着摆的最少数量是一样的,贡献为
\(\lfloor \frac{n}{2} * m\rfloor\),对于 1 * n 的格子,需要竖着摆放,贡献为\(\lceil \frac{m}{2}\rceil\)

void solve()
{
    int res = 0;
    cin >> n >> m;
    res += floor(n * 1.0 / 2) * m;
    if (n % 2 == 1)
        res += ceil(m * 1.0 / 2);
    cout << res << endl;
}

B. Maria Breaks the Self-isolation

题意:

有 n 个朋友,每个朋友有个标记 a[i],初始只有一个人在院子里,想邀请朋友来。朋友接受邀请的条件是:当邀请第 i 个朋友时,院子里已有的人和同时被邀请的其他人的数量和必须大于等于a[i](可以同时邀请多个人)问能聚集的最多的人数

分析:

一次性将x人同时邀请,此时一定满足 \(x>=a[x]\),问题答案就是满足 \(x>=a[x]\) 的最大的 x ;只需要考虑邀请人数 x 与排序后最大的 \(a[x]\) 的关系即可

void solve()
{
    cin >> n;
    for (int i = 1; i <= n; i++)
        cin >> a[i];
 
    sort(a + 1, a + 1 + n);
    int res = 1;
 
    for (int i = 1; i <= n; i++)
    {
        if (a[i] <= i)
            res = i + 1;
    }
    cout << res << endl;
}

C. Celex Update

题意:

在给出的矩阵上只能向 下/右 走,求从起始点到终点累加数字后有多少中不同的和

分析:

和最小时:先向右直走,再向下直走
和最大时:先向下直走,再向右直走
可以发现从和最小的方式开始,一直到和最大的方式都不同:
例如 3 * 3:

\[\begin{array}{|c|c|c|} \hline 1&2&4\\ \hline 3&5&8\\ \hline 6&9&13\\ \hline \end{array} \]

从最小的开始:

\[\begin{array}{|c|c|c|} \hline 一&二&三&四&五&和\\ \hline 1&2&4&8&13&28\\ \hline 1&2&5&8&13&29\\ \hline 1&2&5&9&13&30\\ \hline 1&3&5&9&13&31\\ \hline 1&3&6&9&13&32\\ \hline \end{array} \]

计算可改变次数即可,发现只能在 [3 5 6 9] 上发生改变才会改变总和

void solve()
{
    cin >> x1 >> y1 >> x2 >> y2;
    int t1 = abs(x1 - x2);
    int t2 = abs(y1 - y2);
 
    cout << t1 * t2 + 1 << endl;
}

D. The Best Vacation

题意:

一年 n 个月,每个月 \(a[i]\) 天,每天的贡献为该天是该月的第几天,连续选择 k(可以跨年)天,求最大贡献

分析:

双指针暴力 + 前缀

void solve()
{
    res = 0;
    cin >> n >> k;
    for (int i = 1; i <= n; i++)
    {
        cin >> a[i];
        a[i + n] = a[i];
    }
    for (int i = 1, x; i <= 2 * n; i++)
    {
        d[i] = d[i - 1] + a[i];                    // 天数前缀
        s[i] = s[i - 1] + (a[i] * (a[i] + 1) / 2); // 拥抱数前缀
    }

    for (int i = 2 * n, j = 2 * n; i; j--)
    {
        while (d[j] - d[i - 1] < k && i)
        {
            i--;
            // cout << i << " " << j << endl;
        }
        int need = s[j] - s[i - 1];
        if (d[j] - d[i - 1] > k)
        {
            int tmp = d[j] - d[i - 1] - k;
            int del = (tmp + 1) * tmp / 2;
            need -= del;
        }
        res = max(res, need);
    }

    cout << res << endl;
}

标签:13,题意,int,res,Codeforces,hline,645,邀请,Div
From: https://www.cnblogs.com/Aidan347/p/17039780.html

相关文章

  • div背面隐藏属性
    我们知道div这个dom元素视图是可分为:正面与背面——两个视觉面的。一般我们只关注正面视觉展示,但如果加上一些翻转效果时,背面展示可能会影响整体视觉效果。这个时候我......
  • Codeforces 1704 F Colouring Game 题解 (结论,SG函数)
    题目链接首先看R和B的数量不等的情况(很多博弈题都是先比较两种物品的数量,相等的情况再用SG函数之类的技巧),结论是R多Alice必赢,B多Bob必赢。证明:来看R比B多的情况,定义两人......
  • Educational Codeforces Round 114 D(搜索剪枝)
    D.TheStrongestBuild题目大意:给定n个位置,每个位置有c\({_i}\)个可选能力值(能力值升序给出即a\({_1}\)<a\({_2}\)<a\({_3}\)<...<a\({_{ci}}\)),你可以在每个......
  • CodeForces - 510C Fox And Names
    CodeForces-510CFoxAndNames题解:建图+拓扑排序首先题目想让你按照给定的字符串修改字母表的字母序,我们很容易想到拓扑排序,但是这怎么建图?实际上对于两个输入的字......
  • Namomo Winter Camp D3 Div2 简易题解
    题目提交链接ProblemK.KotlinIsland首先不用考虑描边(那样和不画这条边是一样的)。那么剩下的就是在长度和宽度内枚举了。显然可以知道长宽最多画\((n-1)/2\)和......
  • Educational Codeforces Round 141 (Rated for Div. 2) Different Arrays
    Problem-D-Codeforces题意:给一个长度为n的数组a,下标从2到n-1,每个位置执行一次操作操作:设操作位置为i,$a_{i-1}+=a_i,a_{i+1}-=a_i$,或者$a_{i-1}-=a_i,a_......
  • Educational Codeforces Round 141 (Rated for Div. 2) A-E
    比赛链接A题意给一个数组\(a\),要求重排列以后\(a[i]\neqa[1,i-1]\),其中\(a[1,i-1]\)是前\(i-1\)项和。如果无解则输出NO;否则,给出一个合法的重排列后的\(a......
  • 「Codeforces」寒假训练 2023 #3
    A.StringLCM原题链接#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;constintN=1e5+10;intq;strings,t;intlens,lent;int_lcm;......
  • Codeforces Round #266 (Div. 2) C. Number of Ways (dp)
    https://codeforces.com/contest/466/problem/C题目大意:数组a由n个整数组成a[1],a[2],...,a[n]。计算将数组中的所有元素分成三个连续部分的方法,以使每个部分中的元素总和......
  • SMU Winter 2023 Round #2 (Div.2)(英文)
    A.MediumNumber题目:Giventhreedistinctintegersa,b,andc,findthemediumnumberbetweenallofthem.Themediumnumberisthenumberthatisneitherthe......