Codeforces Round #671 (Div. 2)A-E题解

Codeforces Round #671 (Div. 2) 简要题解 CF671[div2]\mathrm{CF671[div2]}CF671[div2] 题解 比赛链接 A∼C\mathrm{A\sim C}A∼C 一眼题不多讲,其实 B\mathrm{B}B 做了我好一会 D1+D2\mathrm{D1+D2}D1+D2 简单题,我已开始以为只能过 D1 的然后把 D2 也给过了。首先我们把 aia_iai​ 从小到大排序,我们要让“谷”最多那么奇数位置我们就从 an2+1a_{\frac{n}{2}+1}a2n​+1​ 放到 ana_nan​,偶数位置我们从 a1a_1 阅读详情

Codeforces Round #671 (Div. 2)A-E题解
//写于rating值1987/2184
//这场的A-D是真的水…

比赛链接:https://codeforces.ml/contest

A题
水题

题意为给定一个长度为n的数字,两个人交替对这个数字上的某一位进行标记。先手的人只能标记奇数位上的数,后手的人只能标记偶数位上的数。当只剩下一个位置上的数没被标记时,如果这个数字是奇数那么先手胜利,如果这个数是偶数,那么后手胜利。

注意到这道题里面,先手后手两个人能标记的数字部分是完全互不相关的。最后一个剩下的数字到底是奇数位置还是偶数位置上的数,只由n的奇偶性决定。如果最后剩下的是奇数位上的数字,先手的人肯定希望自己能胜利,因此如果奇数位上的数字如果有任意一个是奇数的话,他只要把这个数留到最后就能保证自己胜利了。
最后剩下的是偶数位上的数字的时候同理。

#include<bits/stdc++.h>
#define ll long long
#define llINF 9223372036854775807
#define IOS ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
using namespace std;

int32_t main()
{
    IOS;
    int t;
    cin>>t;
    while(t--)
    {
        int n;
        cin>>n;
        string s;
        cin>>s;
        bool flag;
        if(n&1)//如果总数量是奇数的话,奇数位上的数比偶数位上多1个,最后剩下的那个数一定是奇数位上的数
        {
            flag=0;
            for(int i=0;i<n;i+=2)//只要奇数位上的数存在任何一个是奇数,先手的人都可以使得它成为最后一个数,使得自己获胜
                if(s[i]%2) flag=1;
        }
        else//对应总数量是偶数的情况,最后剩下的数一定是偶数位上的数
        {
            flag=1;
            for(int i=1;i<n;i+=2)//只要偶数位上的数存在任何一个是偶数,后手的人都可以使得它成为最后一个数,使得自己获胜
                if(s[i]%2==0) flag=0;
        }
        if(flag) cout<<1<<endl;
        else cout<<2<<endl;
    }
}

B题
简单规律总结

题意为给定x个正方形小方块,要你尽可能构造多的不相同的完美台阶。n阶完美台阶的定义为,从左到右各列的方块数依次为1-n个,并且这个台阶恰好能分成n个正方形部分。

其实容易想到,这样的一个完美台阶必然是一个轴对称的图形,通过画图可以辅助理解得到结论。
首先只有1层的台阶是完美的,而2层的台阶是不完美的。
3层的台阶左下和右上可用1层完美台阶去补,剩下的部分恰好是个正方形。
7层的台阶左下和右上可用3层完美台阶去补,剩下的部分恰好是个正方形。
…
可以推得结论,完美台阶的层数从小到大的递推公式就是f(n+1)=f(n)×\times×f(n)+1

样例的最后一个数据已经给了最大的x取值1e18时候答案也只有30,因此直接暴力循环即可。

#include<bits/stdc++.h>
#define ll long long
#define llINF 9223372036854775807
#define IOS ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
using namespace std;

ll num[70];

int32_t main()
{
    IOS;
    int t;
    cin>>t;
    while(t--)
    {
        ll x;
        cin>>x;
        ll ans=0,cas=1;
        while(x>0)
        {
            x-=(1+cas)*cas/2;
            if(x>=0) ans++;
            cas=cas*2+1;
        }
        cout<<ans<<endl;
    }
}

C题
贪心,分类讨论

题意为现在有一种病毒在codeforces网站上传播,它会在rating值相等的人之间进行传播。一开始的时候只有一个人被感染了,他的rating值为x,并且他无法参加比赛(无法改变自己的rating值)。现在有n个人各自有一个初始的rating值,每次参加比赛你可以任意改变他们的rating值,但是所有人的rating变化值的总和必须为0。现在询问做少需要几次比赛,可以让所有人都感染上病毒。

首先我们按照初始rating值和x相等的人数的情况进行分类,设初始rating值和x相等的人为cas。
如果cas=n,那么代表所有人一开始就都被感染了,直接输出0。
如果cas<n但是cas>0,代表一开始有一部分人被感染了,还有一部分未被感染。我们可以通过1次比赛,让为被感染的人的rating值全部变为x,总改变值为0,那么对应的与之相反的该变量直接加到那些一开始就被感染的人身上即可。因此此时直接输出1。
如果cas=0的话,代表一开始所有人都没有被感染,那就不能采取上一种情况的策略了。
此时我们计数一下n个人的rating值总和sum,如果sum能够整除n,并且sum/n=x的话,那么我们可以用通过1次比赛就把所有人的rating值变为x。
而如果sum/n!=x或者sum无法整除n的时候,我们必然不可能在1次比赛内使得所有人感染,但是我们可以1次比赛制造出1个感染者,然后采取上面0<cas<n的策略,就可以总共在2次比赛就使得所有人感染。

#include<bits/stdc++.h>
#define ll long long
#define llINF 9223372036854775807
#define IOS ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
using namespace std;

int32_t main()
{
    IOS;
    int t;
    cin>>t;
    while(t--)
    {
        int n,x;
        cin>>n>>x;
        int sum=0,cas=0;
        for(int i=0;i<n;i++)
        {
            int temp;
            cin>>temp;
            if(temp!=x) sum+=temp;
            else cas++;
        }
        if(cas==n) cout<<0<<endl;
        else if(cas) cout<<1<<endl;
        else
        {
            if(sum%n==0&&sum/n==x) cout<<1<<endl;
            else cout<<2<<endl;
        }
    }
}

D1+D2题
贪心,构造

题意为给你n个数字,你需要把他们进行重新打乱排列。使得其中满足比自己左侧和右侧相邻数都小的数字尽可能多(下标1和下标n的数字不算,也就是开头和末尾的数字都不算),输出最大的满足的数字数量,并输出任意一种满足的构造方式。

这里我们采取贪心的策略,对奇数下标构造小的数字(下标从0开始),偶数下标构造大的数字。
这是因为左右边界的数字是不算的,也就是下标0是必然不算的,我们最多可以从下标1开始构造满足的数。而如果x[1]<x[2]的话,那x[2]就必然不是满足的数了。也就是我们最优也必须隔着一个数字构造满足的数字。也就是奇数下标要构造相对小的数字,偶数下标要构造相对大的数字。
直接对原有数字排序后,按照从小到大,下标从左到右依次放到奇数下标,再下标从左到右依次放到偶数下标。这样我们就保证了1.偶数下标的是最大的那些数,并且2.偶数下标中的最小值也不小于奇数下标中的最大值。我们这样排列,也保证了3.偶数下标中相对小的数会和奇数下标中相对小的数相邻。
根据上面三条可以推出这样的贪心是最优的策略。

D1和D2的差别就在于D1的数字是各不相同的,所以满足条件的数字个数就是(n-1)/2,而D2的数字是可能相同的,我们需要再for一遍去检测一下具体有解满足条件的数字而已。构造方法是完全相同的。

#include<bits/stdc++.h>
#define ll long long
#define llINF 9223372036854775807
#define IOS ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
using namespace std;

vector<ll>num;
vector<ll>out;
ll n;

int32_t main()
{
    IOS;
    cin>>n;
    num.resize(n);
    out.resize(n);
    for(auto &x:num) cin>>x;
    sort(num.begin(),num.end());
    ll tar=0;
    for(ll i=1;i<n;i+=2) out[i]=num[tar++];
    for(ll i=0;i<n;i+=2) out[i]=num[tar++];
    ll ans=0;
    for(ll i=1;i<n;i+=2) if(i+1<n&&out[i-1]>out[i]&&out[i+1]>out[i]) ans++;
    cout<<ans<<endl;
    for(ll i=0;i<n;i++)
    {
        if(i) cout<<' ';
        cout<<out[i];
    }
    cout<<endl;
}

E题
数论,复杂度分析,构造

题意为给定一个数字n,要求你对n除1外的所有因数排列成一个环,要求相邻两个位置之间互质的对数最少。输出一种构造方案,并输出最少的互质对数。

这里的话容易想到,n的所有因子,都可以由n的质因子的不同幂次组合来得到。然后我们注意到,对于两个质因子a和b。如果我们在a和b中间放入了一个既能整除a又能整除b的数c的话,变成a,c,b。那么在a和c之间就可以放所有能整除a的因子,c和b之间就可以放所有能整除b的因子。
由此我们可以先找出n的所有不同的质因子,然后在他们两两之间放入一个能整除相邻两个质因子的n的因子,接着其他所有的数能必定至少能被这些质因子的某一个整除,也就是能按照上段所述插入到间隔里。

接着就是想这种方案是否永远可行。
对于这些质因子来说,两个质因子的积必定也是n的因子,并且不同的质因子之间得到的积必然是不相等的,因此我们可以在相邻质因子之间插入他们的积的构造方案。但是这种方案,在n=a×\times×b的时候是不成立的,因为此时n只有三个因子,a,b和n,如果按照上述方案会构造成a,n,b,n。重复使用了两次n。此时我们实际上只能构造a,n,b,这样会存在1对相邻互质的数,此时我们直接输出a,n,b,endl,1,endl即可。因此我们特判一下n恰好等于a×\times×b的情况。
但是这样会wa在第十个点。因为如果只有两个质因子的话,虽然我们可以构造0对相邻互质的数的情况,但是我们同样会使用两次a×\times×b。

这时候就要我们分析复杂度了,因为这里题意说了所有n的因子数量是不超过2e5的,根据因子是由质因子不同的幂次组合而成的,容易得到质因子的个数是一个很小的值,不会超过1e3,因此我们可以采取比较暴力的方案。

排除掉n=a×\times×b这种必须构造1对相邻互质数的情况,其他情况下,相邻质因子之间的那个能整除他们的数的选择,可以直接暴力去n的所有因子里去找。

以上。

#include<bits/stdc++.h>
#define ll long long
#define llINF 9223372036854775807
#define IOS ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
using namespace std;
const ll maxn=31630;

vector<ll>prime;//线性筛筛出sqrt(1e9)内的所有素数
bool v[maxn];

void primes()
{
    for(ll i=2;i<maxn;i++)
    {
        if(!v[i])
        {
            v[i]=1;
            prime.push_back(i);
        }
        for(ll j=0;prime[j]<maxn/i;j++)
        {
            v[prime[j]*i]=1;
            if(i%prime[j]==0) break;
        }
    }
}


int32_t main()
{
    IOS;
    primes();
    int t;
    cin>>t;
    while(t--)
    {
        ll n;
        cin>>n;
        vector<ll>primes_now;//保存当前的n分解质因数后有几个不同的质因子
        ll temp=n;
        for(ll i=0;i<prime.size()&&prime[i]<=temp/prime[i];i++)
        {
            if(temp%prime[i]==0)
            {
                primes_now.push_back(prime[i]);
                while(temp%prime[i]==0) temp/=prime[i];
            }
        }
        if(temp>1) primes_now.push_back(temp);

        unordered_map<ll,bool>M;//保存n除了1外的因子有哪些,记录它是否被使用过
        for(ll i=2;i<=n/i;i++)
        {
            if(n%i==0)
            {
                M[i]=0;
                M[n/i]=0;
            }
        }
        M[n]=0;


        if(primes_now.size()==2&&primes_now[0]*primes_now[1]==n) cout<<primes_now[0]<<' '<<primes_now[1]<<' '<<n<<endl<<1<<endl;
        //如果n刚好能拆分成两个质因子相乘,就是唯一一种特殊的情况,我们无法构造出0对相邻互质而只能构成1对相邻互质的特殊情况,直接输出三个数字和对数1。
        else
        {
            vector<ll>mid(primes_now.size());//mid[i]当前n分解的质因子,第i个和第i+1个中间插入的数是哪一个
            for(ll i=0;i<primes_now.size();i++)//直接暴力for一遍,质因子数量是很少的
            {
                for(auto &x:M)//去n的所有因数里面找既能整除第i个质因子又能整除第i+1个质因子的数
                {
                    if(!x.second&&x.first%primes_now[i]==0&&x.first&&x.first%primes_now[(i+1)%primes_now.size()]==0)
                    {
                        mid[i]=x.first;
                        x.second=1;
                        break;
                    }
                }
                M[primes_now[i]]=1;
            }

            for(ll i=0;i<primes_now.size();i++)//然后把剩下没使用过的数字继续暴力放到第i个质因子和mid[i]中间,只需要满足整除第i个质因子即可
            {
                cout<<primes_now[i]<<' ';
                for(auto &x:M)
                {
                    if(!x.second&&x.first%primes_now[i]==0)
                    {
                        cout<<x.first<<' ';
                        x.second=1;
                    }
                }
                cout<<mid[i]<<' ';
            }
            cout<<endl<<0<<endl;
        }
    }
}
Codeforces Round #809 (Div. 2)B - Making Towers Codeforces Round #809 (Div. 2) B - Making Towers 图文详解 阅读详情

相关推荐

STM32异常与中断过程详解

1. 异常与中断概念引入 异常主要是指来自CPU内部的意外事件,比如执行了未定义指令、算术溢出、除零运算等发生在CPU内部的意外事件,这些异常的发生,会引起CPU运行相应的异常处理程序;中断一般来自硬件(如片上外设、外部I/O输入等)发生的事件,当这些硬件产生中断信号时,CPU会暂停当前运行的程序,转而去处理相关硬件的中断服务程序。但无论是异常还是中断,都会引起程序执行偏离正常的流程,转而去执行异常/中断的处理函数。 下面对异常和中断的介绍,如果中断信号的产生原因来自CPU内部,则称之为异常;如果中断信号来

luobeihai的博客 1万+

Codeforces Round #671 (Div. 2)A~F个人题解

Codeforces Round #671 (Div. 2)A~F个人题解

qq_53446104的博客 782

CSAPP performance lab

CSAPP 深入理解计算机系统的performance Lab

weixin_46091531的博客 1250

Codeforces Round #671 (Div. 2) B. Stairs

Description Jett is tired after destroying the town and she wants to have a rest. She likes high places, that’s why for having a rest she wants to get high and she decided to craft staircases. A staircase is a squared figure that consists of square cells.

five_east_west的博客 485

VS Code/TRAE集成Cppcheck并启用MISRA规则

本文探讨了嵌入式开发中Cppcheck工具集成与MISRA规则检查的必要性。详细介绍了安装配置步骤:安装VSCode/TRAE、Cppcheck软件、配置插件参数、安装Python环境,并重点说明了MISRA规则文件的设置方法。通过完整的配置流程,实现了嵌入式开发环境下静态检查与安全标准的落地。

SDFangFang2025的博客 1282

保姆级教程:Synology NAS共享文件夹从创建到权限设置的完整流程

本文提供了一份详尽的Synology NAS共享文件夹创建与权限设置指南。重点讲解了如何将NAS接入企业AD域,并利用域管理员账户进行集中身份验证和权限管理。文章从基础概念、域环境配置、文件夹创建、精细化权限分配到客户端访问与维护,完整覆盖了构建安全高效企业级文件共享空间的全流程,旨在帮助管理员实现便捷的团队协作与数据安全管理。

u9v0w的博客 552

Codeforces Round #671 (Div. 2)

A 如果n是奇数 最终剩下的一定是奇数位的值,判断奇数位是否有奇数即可; 如果n是偶数最终剩下的一定是偶数位的值,判断偶数位是否有偶数即可。 ps:&运算比 == 优先级低!!! 因为这个被hack了。哭辽。。 #include<bits/stdc++.h> using namespace std; typedef long long ll; const int N=200010; typedef pair<int,int> pii; #define fi first #de

qq_45288870的博客 294

知识图谱实战应用8-从文本关系抽取到知识图谱关系构建流程贯通

大家好,我是微学AI,今天给大家介绍一下知识图谱实战应用8-从文本关系抽取到知识图谱关系构建流程贯通。我们从文本数据中采集到关键信息,并抽取出其中的关系信息,然后在存入图数据库中,整个过程实现自动化,我这里将举一个文本例子进行抽取。 对于知识图谱的构建是将实体、概念和它们之间的关系都以图表形式呈现出来的一种数据结构。要构建一个知识图谱,需要从不同的数据源中采集到相关信息,并将这些信息整合在一起,最终形成一个全面而且精确的知识图谱。

微学AI的博客 2544

Codeforces Round #671 (Div. 2) A-D2

Codeforces Round #671 (Div. 2) Digit Game 问题分析: n个数字,R只能删除任意奇数位的数字,B只能删除任意偶数位的数字 B先走,然后如果最后剩的 数字是奇数R赢了,否则B赢了 当n为奇数的时候 ,奇数位的数量是n/2+1; R先走,最后一定会剩下一个奇数位的数字 这时候只要 所有奇数位里 有一个 奇数就一定是 R赢得比赛 当n为偶数的时候,奇/偶位置都是n/2 而且R先走,最后一定会剩下一个 偶数位的数字 同理,偶数位有偶数 就一定是B赢 AC代码: #inc

MaxVen 643

ansys license许可证问题:Ansys License Manager Release 2024 R1...如何解决?

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值 。

**My Coding Family** 5366

华为OD机试真题2026双机位C卷 Java&Go 实现【用户入网定期复评】

用户开立支付账户,在开户完成后立即对用户进行一次风险模型评级,输出一个评分风险,评分范围1-100,等区间的分为5个等级,1-19为等级1,20-39为等级2,40-59为等级3,60-79为等级4,80-100为等级5,系统每天会任务对全量入网用户进行计算复评时间,输出评分给出新的风险等级。复评规则如下:

MISAYAONE的博客 147

Codeforces Round #671 (Div. 2) A.Digit Game

A.Digit Game Description Everyone knows that agents in Valorant decide, who will play as attackers, and who will play as defenders. To do that Raze and Breach decided to play t matches of a digit game… In each of t matches of the digit game, a positive int

five_east_west的博客 422

YOLO26涨点改进 | 独家创新,注意力改进篇 | AAAI 2025 | YOLO26引入 DRM 防御优化模块,进行特征优化/特征增强,助力目标检测、图像分类、图像分割有效涨点

本文提出了一种基于DRM防御优化模块改进的YOLO26网络模型,显著提升了目标检测的鲁棒性和特征提取能力。DRM模块通过优化特征提取过程、增强抗噪声能力和补充细节信息,有效提高了模型在复杂场景下的检测精度和定位准确度。该模块可集成于UNet等主干网络,采用Transformer结构实现特征精炼,在对抗攻击环境下仍能保持稳定的融合效果。实验表明,改进后的模型在红外与可见光图像融合任务中表现出色,同时提升了下游任务性能。文章详细介绍了DRM模块的结构、作用机制及实现代码,并提供了两种YOLO26改进方案.

Ai缝合怪、助力小伙伴高效发论文 143

Codeforces Round #671 (Div. 2) - BenFromHRBUST

Codeforces Round #671 (Div. 2) 比赛传送门 A - Digit Game Code def main(): t = eval(input()) for cas in range(t): n = eval(input()) s = input() lens = len(s) odd, even = 0, 0 for i in range(lens): tmp =

BenFromHRBUST的优快云博客 236

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Codeforces Round #671 (Div. 2) D1/2、E

Codeforces Round #671Div. 2D1/2(Sage's Birthday)E. Decryption(因数分解、构造) D1/2(Sage’s Birthday) 题意:给定序列ana_nan​,要求重新排序,让谷最多,即(ai−1<ai<ai+1a_{i-1}<a_i<a_{i+1}ai−1​<ai​<ai+1​)。输出序列并且给出最多的个数。 D1和2的区别是easy版本里面的数字大小不一样,hard可能相同D1和2的区别是easy版本里面的数字

手扶拖拉机如何改装四驱 198

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Codeforces Round #671 (Div. 2) Solved: 5 out of 7

Codeforces Round #671(Div.2) 题目 A B C D E F solved ✔ ⚪ - ✔ ⚪ - ✔比赛时通过,⚪比赛时尝试了但是未通过   总结: 读题! 大佬们两分钟就把A题做出来了,我过了半小时才发现题目读错了。早上起来补题的时候又发现B题读错了。。。 A. Digit Game 题意: T组数据,每组数据给出一个长度为n的数组,游戏为玩家一和玩家二两人轮流给数组中的数字打上标记。规则为从玩家一开始,两人轮流;玩家一只能标记奇数位上的数字,玩家二只

lllllan 246

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

【Codeforces Round #835 (Div. 4)】A——G题解

找到最大字符,对应如下输出:‘a’ -> 1;,那么说明至多一次跳跃,可以让跳跃前异或值等于跳跃后异或值,走完到。一次,反转一个字符(0-1,1-0),使得逆序对最大,输出最大个数。并且,可以允许在路途中进行一次跳跃,即直接跳到任意除。双指针,左端点固定,去移动右端点,直到这一段相等结束(为根节点,计算所有点到根节点的一个前缀异或值,记。的子树下,仅能使用一次跳跃过去,而不能走过去。统计这三种的个数,看是否最终为 1 即可。数组,遍历所有点,判断如果当前点不是。有点烂,不想改了,思路够清晰。

Cauchy的博客 2125

Codeforces Round #671 (Div. 2) E. Decryption

E. Decryption Description An agent called Cypher is decrypting a message, that contains a composite number n. All divisors of n, which are greater than 1, are placed in a circle. Cypher can choose the initial order of numbers in the circle. In one move Cyp

five_east_west的博客 273

Codeforces Round #671(Div.2) A,B,C,D1,D2,E

文章目录A. Digit GameB. StairsC. KilljoyD1. Sage's Birthday (easy version)D2. Sage's Birthday (hard version)E. Decryption A. Digit Game 如果是偶数个,最后剩的数肯定在偶数位置,如果是奇数个,最后剩的数肯定在奇数位置。所以,如果是偶数个,只需要看,偶数位置有没有偶数即可,如果是奇数个,只需要看,奇数位置有没有奇数即可。 #include <iostream> #inclu

hhhcbw的博客,欢迎各位来访 253

A. Digit Game(思维游戏)Codeforces Round #671 (Div. 2)

原题链接: https://codeforces.com/contest/1419/problems

pursuit的博客 599

Codeforces Round #671 (Div. 2) D2. Sage‘s Birthday (hard version)

Codeforces Round #671 (Div. 2) D2. Sage’s Birthday (hard version) 题目链接 Today is Sage’s birthday, and she will go shopping to buy ice spheres. All n ice spheres are placed in a row and they are numbered from 1 to n from left to right. Each ice sphere has a

旺崽的博客 2497

Codeforces Round #641 (Div. 2) B.Orac and Models

Codeforces Round #641 (Div. 2) B.Orac and Models 题目链接 There are n models in the shop numbered from 1 to n, with sizes s1,s2,…,sn. Orac will buy some of the models and will arrange them in the order of increasing numbers (i.e. indices, but not sizes). Orac

旺崽的博客 2533

Codeforces Round #671 (Div. 2) A--D题解

A. Digit Game 如果字符串长度为奇数,那么只要偶数位置上有奇数就胜。反之,字符串长度为偶数,只要奇数位置上有偶数就胜。 #include<stdio.h> #include<string.h> #include<math.h> #include<map> #include<stack> #include<set> #include<queue> #include<vector> #include&lt

qq_45891413的博客 183

Codeforces Round #671 (Div. 2) (A~E)

Link~ 题面差评,整场都在读题 A 根据奇偶性判断一下即可。 #include<bits/stdc++.h> #define ll long long #define N #define rep(i,a,n) for (int i=a;i<=n;i++) #define per(i,a,n) for (int i=n;i>=a;i--) #define inf 0x3f3f3f3f #define pb push_back #define mp make_pair #define

qq_44062973的博客 223

Codeforces Round #835 (Div. 4) 题解 A-G

每做完一种工作, k 天内不能再做,给定 c 和 d ,意为在 d 天内获得 c 元,问能够接受最大的 k 约束是多少,输出 k 的值。对于一个限制 k ,我们的工作模式是 k + 1天的循环,取模每次做价值最大的工作即可(也有可能不工作),然后check判断当前 k 能不能达成目标。如果记录到相邻两数存在上升现象时,每次记录较大值,此后如果记录到有数小于记录值,输出NO,遍历结束后若合法,输出YES。给一个长度为 n 的数组 a ,对于每一个数,输出其与最大值的差,对于最大值本身,输出其与第二大值的差。

m0_55733023的博客 356
上一篇: Educational Codeforces Round 95 (Rated for Div. 2)A-D题解
下一篇: Codeforces Round #672 (Div. 2)A-D题解
StandNotAlone
博客等级 码龄7年 338粉丝 47原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值