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

A. Strange Splitting

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

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

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

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

点击查看代码
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. const int N=2e5+10;
  4. int a[N];
  5. int main()
  6. {
  7. int t;
  8. cin>>t;
  9. while(t--)
  10. {
  11. int n;
  12. cin>>n;
  13. int q=0;
  14. for(int i=1;i<=n;i++) cin>>a[i];
  15. for(int i=2;i<=n;i++)
  16. {
  17. if(a[i]!=a[1])q=1;
  18. }
  19. if(q==0) cout<<"NO"<<endl;
  20. else
  21. { cout<<"YES"<<endl;
  22. for(int i=1;i<=n;i++)
  23. {
  24. if(i==2) cout<<"R";
  25. else cout<<"B";
  26. }
  27. cout<<endl;
  28. }
  29. }
  30. }

B. Large Addition

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

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

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

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

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

点击查看代码
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. typedef long long ll;
  4. int main()
  5. {
  6. int t;
  7. cin>>t;
  8. while(t--)
  9. {
  10. string a;
  11. cin>>a;
  12. int jud=1;
  13. ll n=a.size();
  14. if(a[n-1]=='9') jud=0;
  15. if(a[0]!='1') jud=0;
  16. for(ll i=1;i<n-1;i++)
  17. {
  18. if(a[i]=='0') jud=0;
  19. }
  20. if(jud==1) cout<<"YES"<<endl;
  21. else cout<<"NO"<<endl;
  22. }
  23. }

C1. Magnitude (Easy Version)

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

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

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

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

点击查看代码
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. const int N=2e5+10;
  4. typedef long long ll;
  5. ll a[N];
  6. int main()
  7. {
  8. int t;
  9. cin>>t;
  10. while(t--)
  11. {
  12. ll n;
  13. cin>>n;
  14. for(ll i=1;i<=n;i++)cin>>a[i];
  15. ll mx=0,mn=0;
  16. for(ll i=1; i<=n; ++i)
  17. {
  18. mx+=a[i],mn+=a[i];
  19. mx=max(mx,-mn);
  20. }
  21. cout<<mx<<endl;
  22. }
  23. }
  24. /*
  25. 5
  26. -1 0 -1 1 1
  27. */

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的个数)

点击查看代码
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. typedef long long ll;
  4. int main()
  5. {
  6. int t;
  7. cin>>t;
  8. while(t--)
  9. {
  10. string a;
  11. cin>>a;
  12. int jud=1;
  13. ll n=a.size();
  14. if(a[n-1]=='9') jud=0;
  15. if(a[0]!='1') jud=0;
  16. for(ll i=1;i<n-1;i++)
  17. {
  18. if(a[i]=='0') jud=0;
  19. }
  20. if(jud==1) cout<<"YES"<<endl;
  21. else cout<<"NO"<<endl;
  22. }
  23. }
  24. **/////////////////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. 超轻量级的c#版基于文件的日志记录工具,可定制输出格式,可指定日志文件

    这是我自己个人编写的日志记录,主要使用在只需要记录日志,偶尔到文件中查看一下日志记录的情况.我自己写的一些服务之类的是使用了这个的,代码很少,使用很简单. 第一步 搜索和安装我的Nuget包 搜索和安 ...

  2. vue03 01.vite创建项目

    目录 01.创建项目 打包工具 vite介绍 安装命令 安装项目依赖 启动项目 浏览效果 代码目录 打包 预览运行 插件使用 编辑器 01.创建项目 打包工具 vite官网 vite创建项目 vite ...

  3. 关于浏览器sessionStorage共享问题

    今天也是闲暇之余看了点前端基础知识发现了好玩的 window.open("同源页面")这种方式新开的页面会复制之前的sessionStorage 通过a标签新开的页面同样也会,原理 ...

  4. SpringBoot3集成WebSocket

    标签:WebSocket,Session,Postman. 一.简介 WebSocket通过一个TCP连接在客户端和服务器之间建立一个全双工.双向的通信通道,使得客户端和服务器之间的数据交换变得更加简 ...

  5. C数据结构:树和森林存储方式与遍历方式

    文章目录 树的存储方式 双亲表示法 孩子链表表示法 孩子兄弟表示法(二叉树表示法) 树和二叉树的转换 森林和二叉树的转换 树和森林的遍历 树的遍历方式 森林的遍历方式 浅谈一下几个问题 为什么树没有中 ...

  6. PageOffice调用本地office实现多人在线同时编辑Word文档

    说明:多人同时在线编辑文件大多数会出现文档相互覆盖的问题,后保存的文档会覆盖先保存的文档.pageoffice的这个功能可以用程序控制不同用户打开文件后,编辑Word文档中属于自己的区域,并且不会互相 ...

  7. .net程序员学习java篇一(搭建SSM)

    一.安装IDE 相比于.net环境的一气呵成,java可能麻烦一点,这里记录下来,避免萌新踩坑 1.1安装JDK,这里不要玩什么花哨,老老实实选个大众版(Oracle JDK1.8x),设置环境变量, ...

  8. 你不知道的PageContext

    你不知道的PageContext 最近在文艺复兴,学习JSP和Servlet,此文为笔者学习记录. 本文分为以下几个部分: 前言 环境搭建 正文 总结 前言 在我们使用的项目中,存储数据最常用的非 S ...

  9. Android 11(R) MultiMedia(十五)MediaCodec同步模式实现一个简易播放器

    这一节是实践,学习android原生SimplePlayer并自己码一遍,果然学到很多. MyPlayer.h #include <media/stagefright/foundation/AH ...

  10. ubuntu下openCV-Haar特征分类器训练

    ubuntu下openCV-Haar特征分类器训练 这段时间在学openCV,准备做一个头部检测,但是openCV自带的分类器只有人脸检测的,而且准确度不高,就准备自己训练一个分类器.在网上看了很多的 ...