惹啊啊啊啊,这场做得我发昏,最近总感觉不在状态,但还是再在冲击1600-1800的题目.

A. Strange Splitting

---------------------------------题解---------------------------------------------------

给你一个数组,让你自己构造一个RB字符串让R位置的数组中的数字的最大值-最小值不等于B位置的数组中的数字的最大值-最小值。

已知给定数组按升序排列,我们先遍历一遍字符串,如果全部相同的话则输出NO 因为差值都是0.

否则我们就让第二个为 R 这样R数组中数字max-min=0 然后其他的都是B 这样B数组的max-min必然不是0

点击查看代码
#include<bits/stdc++.h>
using namespace std;
const int N=2e5+10;
int a[N];
int main()
{
int t;
cin>>t;
while(t--)
{
int n;
cin>>n;
int q=0;
for(int i=1;i<=n;i++) cin>>a[i];
for(int i=2;i<=n;i++)
{
if(a[i]!=a[1])q=1;
}
if(q==0) cout<<"NO"<<endl;
else
{ cout<<"YES"<<endl; for(int i=1;i<=n;i++)
{
if(i==2) cout<<"R";
else cout<<"B";
}
cout<<endl;
}
}
}

B. Large Addition

----------------------------------------题解-----------------------------------

这题我们要关注那些数不能被相同位数的数字凑出 比如 末尾为9的数字就不行 因为9 只能是一对末尾为 (4,5,(3,6),(2,7)--等数字凑出不符合题意

其次数字的开头必须是1 因为如果是1以上的数字 结合必须用相同的位数凑出的条件 比如2 开头就必须是 (1,1) 也无法符合条件 如果是比如1337这个四位数 只能由两个三位数进位而来

又比如 2337这个四位数 是由两个开头为1的数字相加而来不符合条件.

在遍历除了开头和结尾之外的数字 如果有0则不能符合条件 因为如果有0则说明她下面的那一位没有完成相加大于等于10这个进位条件 那他们就必然会有一个<5 (这里可能很多同学觉得有问题建议自己去找几个数字试一下)。

点击查看代码
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
int t;
cin>>t;
while(t--)
{
string a;
cin>>a;
int jud=1;
ll n=a.size();
if(a[n-1]=='9') jud=0;
if(a[0]!='1') jud=0;
for(ll i=1;i<n-1;i++)
{
if(a[i]=='0') jud=0;
} if(jud==1) cout<<"YES"<<endl;
else cout<<"NO"<<endl;
}
}

C1. Magnitude (Easy Version)

----------------------------------------题解------------------------------

有分析知道,2操作我们应该就需要用一次就够了,因为我们会通过一次2操作让他从负数变成一个较大的数,然后在不断相加,那么2操作什么时候收益最高呢,就是在他前缀和是极小值(切

是负数)的时候(注意这个理论我们下面的hard版本要用---与easy版本关系不大) 对于这个easy版本,我们只需要维护一个最大值并且同时保留一个不断采用1操作并且在当前尝试使用2操

作的值与最大值相比较就可以了,请结合代码理解

点击查看代码
#include<bits/stdc++.h>
using namespace std;
const int N=2e5+10;
typedef long long ll;
ll a[N]; int main()
{
int t;
cin>>t;
while(t--)
{
ll n;
cin>>n;
for(ll i=1;i<=n;i++)cin>>a[i];
ll mx=0,mn=0;
for(ll i=1; i<=n; ++i)
{
mx+=a[i],mn+=a[i];
mx=max(mx,-mn);
}
cout<<mx<<endl;
} }
/*
5
-1 0 -1 1 1
*/

C2. Magnitude (Hard Version)

能看到这里的都是糕手了,我会简化语言,主要分享思路。

----------------------------------------------------题解----------------------------------------------

这题我们是要找1,2操作都可以使用的部分

我们先处理简单的部分,假如说这个数组内全都是正数,那么我们是不是不论采用1,2操作都完全没区别所以假如说又n个数字,我们的答案就是2^n%Mod(以下把取模省略掉,自己做的时候别忘记)

还记得我们的1理论吗,我们要在前缀和最小的时候使用2操作,我们取完最小值之后,说明后面的操作不论是正数是负数,采用1,2操作都不会受到影响了,因为后面的所有操作的数字加起来一定是>=0的 所以我们用1,2都无所谓,这是2^(n-i)i是前缀和最小值所在的位置。 但是在凑出这个前缀和最小值的过程中 前缀和数组中的有些b[i]是大于0的,面对这些大于0的时候我们用1,2操作也都可以,因此答案为2(n-i)*2r(r是前缀和数组中大于0的个数)

点击查看代码
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
int t;
cin>>t;
while(t--)
{
string a;
cin>>a;
int jud=1;
ll n=a.size();
if(a[n-1]=='9') jud=0;
if(a[0]!='1') jud=0;
for(ll i=1;i<n-1;i++)
{
if(a[i]=='0') jud=0;
} if(jud==1) cout<<"YES"<<endl;
else cout<<"NO"<<endl;
}
} **/////////////////keep hard ,be the best///////////////////////////////////**

Codeforces Global Round 26 A~C2的更多相关文章

  1. Codeforces Global Round 11 个人题解(B题)

    Codeforces Global Round 11 1427A. Avoiding Zero 题目链接:click here 待补 1427B. Chess Cheater 题目链接:click h ...

  2. CodeForces Global Round 1

    CodeForces Global Round 1 CF新的比赛呢(虽然没啥区别)!这种报名的人多的比赛涨分是真的快.... 所以就写下题解吧. A. Parity 太简单了,随便模拟一下就完了. B ...

  3. Codeforces Global Round 1 - D. Jongmah(动态规划)

    Problem   Codeforces Global Round 1 - D. Jongmah Time Limit: 3000 mSec Problem Description Input Out ...

  4. Codeforces Global Round 2 题解

    Codeforces Global Round 2 题目链接:https://codeforces.com/contest/1119 A. Ilya and a Colorful Walk 题意: 给 ...

  5. Codeforces Global Round 1 (A-E题解)

    Codeforces Global Round 1 题目链接:https://codeforces.com/contest/1110 A. Parity 题意: 给出{ak},b,k,判断a1*b^( ...

  6. Codeforces Global Round 3

    Codeforces Global Round 3 A. Another One Bites The Dust 有若干个a,有若干个b,有若干个ab.你现在要把这些串拼成一个串,使得任意两个相邻的位置 ...

  7. Codeforces Global Round 1 (CF1110) (未完结,只有 A-F)

    Codeforces Global Round 1 (CF1110) 继续补题.因为看见同学打了这场,而且涨分还不错,所以觉得这套题目可能会比较有意思. 因为下午要开学了,所以恐怕暂时不能把这套题目补 ...

  8. 【手抖康复训练1 】Codeforces Global Round 6

    [手抖康复训练1 ]Codeforces Global Round 6 总结:不想复习随意打的一场,比赛开始就是熟悉的N分钟进不去时间,2333,太久没写题的后果就是:A 题手抖过不了样例 B题秒出思 ...

  9. Codeforces Global Round 17

    Codeforces Global Round 17 A. Anti Light's Cell Guessing 坑点:\(n=1,m=1\) 时答案为 \(0\) . 其他情况:当 \(n=1\) ...

  10. 【Codeforces Round 1110】Codeforces Global Round 1

    Codeforces Round 1110 这场比赛只做了\(A\).\(B\).\(C\),排名\(905\),不好. 主要的问题在\(D\)题上,有\(505\)人做出,但我没做出来. 考虑的时候 ...

随机推荐

  1. Ubuntu开启root账户登陆

    Ubuntu开启root账户登陆 设置 root 密码:sudo passwd root sudo chmod 777 /usr/share/lightdm/lightdm.conf.d/50-xx ...

  2. Canvas简历编辑器-我的剪贴板里究竟有什么数据

    Canvas图形编辑器-我的剪贴板里究竟有什么数据 在这里我们先来聊聊我们究竟应该如何操作剪贴板,也就是我们在浏览器的复制粘贴事件,并且在此基础上聊聊我们在Canvas图形编辑器中应该如何控制焦点以及 ...

  3. CMake快速入门教程

    前言 Make工具因遵循不同的规范和标准,执行的Makefile的格式也是不同.主流的Make工具包括: GNU Make QT的qmake 微软的 MS nmake BSD的 pmake 每个平台都 ...

  4. 报错:Client does not support authentication protocol requested by server; consider upgrading MySQL cli

    IDEA启动项目登录时显示用户或密码错误 或者 连接mysql数据库时报错 原因: mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是ca ...

  5. vue3组件封装

    1.父组件调用子组件属性和方法 父组件中template写法: <role-modal ref="myRoleModal" @OK="roleModalOK&quo ...

  6. c 语言不输出空数据 (全面覆盖)

    目录 去除空值的专栏 解决方案 一.通过数组的自身性质,让其值大于零 1. short 数组测试 2. int 数组测试 3. long 数组测试 4. float 数组测试 5. float 数组测 ...

  7. fuser命令详解

    fuser -mv 作用 fuser命令是用来显示所有正在使用着指定的file.file system或者sockets的进程信息.具体来说,fuser -mv的作用如下: 参数-m:指定一个被加载的 ...

  8. 低代码与 Echarts 融合:开启智能可视化的创新浪潮

    前言 在当今数字化时代,数据的价值愈发凸显,企业和组织需要有效地利用数据来作出战略决策和优化业务流程.可视化是一种强大的工具,可以将复杂的数据以直观的方式展现出来,帮助用户更好地理解和分析数据.近年来 ...

  9. C# wpf 实现Converter定义与使用

    1.  本身的值0, 如何转换为"男" 或"女"呢,可以定义sexConverter继承自IValueConverter即可,代码如下: [ValueConve ...

  10. Xcode Debugger Extremely Slow , Xcode Swift调试器调试时极其慢(😡)

    一.Xcode 调试器 我的项目是国内某办公软件的iOS客户端, 代码量极其庞大, 编译一次至少30min以上. 关键是,如果你遇到问题的时候,调试下断点,需要至少5min才能断下来,走下一步,又重复 ...