Codeforces Round #807 (Div. 2)

A. Mark the Photographer
给定整数n,数组长度2*n,问能不能拆成两个长度为n的数组,两个数组的第i项有a[i]>=b[i]+x

思路:暴力

DIFF : 800

#include <iostream>
#include <algorithm>
using namespace std;
const int N = 1e5+100;
int a[N];
int main()
{int t;for(cin>>t;t;t--){int n,x;cin>>n>>x;for(int i=1;i<=n*2;i++){cin>>a[i];}sort(a+1,a+2*n+1);bool falg=true;for(int i=1;i<=n;i++){if(a[i+n]-a[i]<x){falg=false;}}if(falg){cout<<"YES"<<endl;}else{cout<<"NO"<<endl;}}return 0;
}

B. Mark the Dust Sweeper
给出一个数组,每次可以选择从1到n-1的任意一段连续且数值均大于0的区间[l,r],使得a[l]–,a[r]++
,问你需要多少次这样的区间选择才能把从1到n-1的区间全变成0

思路:暴力,发现需要选取的非零区间,所以把从第一个非0数一直到n-1项,遇到0答案加一,遇到非零的数就给答案加上这个数。

#include <iostream>
#define int long long
using namespace std;
const int N = 2e5+100;
int a[N];
signed main()
{int t;for(cin>>t;t;t--){int n,sum=0,st=1;cin>>n;for(int i=1;i<=n;i++){cin>>a[i];}for(int i=1;i<=n-1;i++){if(a[i]==0){st=i+1;}else{break;}}for(int i=st;i<=n-1;i++){if(a[i]==0){sum++;}else{sum+=a[i];}}cout<<sum<<endl;}return 0;
}

C. Mark and His Unfinished Essay
这个题就有点意思了,我们给出一个初始的字符串s,多次选取一段区间复制后拼接到s后方形成新的s,值得注意的是,每次经过复制后我们下一次复制操作是基于新的串s进行的。复制操作完成后,我们输出第k个字符

思路:暴力,每次寻找本下标对应的复制的对象的下标。一直寻找的第一个串。(希望来个高手写个递归做法我看看)

#include <iostream>
#define int long long
using namespace std;
const int N = 2e5+100;
int l[N];
int sum[N];
signed main()
{int t;cin.tie(0);cout.tie(0);ios::sync_with_stdio(0);for(cin>>t;t;t--){string s;int n,c,q;cin>>n>>c>>q;cin>>s;sum[0]=n;for(int i=1,r;i<=c;i++){cin>>l[i]>>r;sum[i]=sum[i-1]+r-l[i]+1;}for(int i=1;i<=q;i++){int num;cin>>num;while(num>n){for(int j=1;j<=c;j++){if(sum[j]>=num){num-=sum[j-1];num+=l[j]-1;break;}}}cout<<s[num-1]<<'\n';}}return 0;
}

D. Mark and Lightbulbs
题意:给出一个两个01串,掐头去尾选中间的元素,如果两边的元素不一样,那么就可以改变这个元素(由0到1或相反)
思路:因为改变要求左右不相等,所以直接定死,我们把串压缩,001100变成010这样,如果压缩后两个串一样可以变化,并且答案是不同块的左端下标差的绝对值的和。不一样就无解喽。

#include <iostream>
#define int long long
using namespace std;
const int N = 2e5+100;
int a[N],b[N];
signed main()
{int t;for(cin>>t;t;t--){string s,ss;int n,con1=0,con2=0;cin>>n;cin>>s>>ss;string s1="",ss1="";s1+=s[0];ss1+=ss[0];a[++con1]=0;b[++con2]=0;for(int i=1;i<n;i++){if(s[i]!=s[i-1]){s1+=s[i];a[++con1]=i;}if(ss[i]!=ss[i-1]){ss1+=ss[i];b[++con2]=i;}}if(s1!=ss1){cout<<-1<<endl;continue;}int ans=0;for(int i=1;i<=con1;i++){ans+=abs(a[i]-b[i]);}cout<<ans<<endl;}return 0;
}

Codeforces Round #807 (Div. 2) A-D相关推荐

  1. Codeforces Round #807 (Div. 2)(A-D)

    Dashboard - Codeforces Round #807 (Div. 2) - CodeforcesCodeforces. Programming competitions and cont ...

  2. Codeforces Round #807 (Div. 2) A-C题解

    Codeforces Round #807 (Div. 2) A.B.C题题解 A - Mark the Photographer 题意:马克要给2n个人照相,分两排,一排站n人,给出每个人的身高,要 ...

  3. Codeforces Round #807 (Div. 2)A~E个人题解

    Dashboard - Codeforces Round #807 (Div. 2) - Codeforces A. Mark the Photographer 题意: 有个人,每个人的身高设为,现在 ...

  4. Codeforces Round #807 (Div. 2) A - D

    Codeforces Round #807 (Div. 2) 提交情况 参考 Codeforces Round #807 (Div. 2) A~E A. Mark the Photographer 标 ...

  5. Codeforces Round #807 (Div. 2)补题

    C. Mark and His Unfinished Essay https://codeforces.com/contest/1705/problem/C 会卡long long,下面解法62ms过 ...

  6. Codeforces Round #807 (Div. 2) A-C

    目录 题目 A. Mark the Photographer 题意: 思路: code: B. Mark the Dust Sweeper 题意: 思路: code: C. Mark and His ...

  7. Codeforces Round #807 (Div. 2) E. Mark and Professor Koro(线段树二分)

    E. Mark and Professor Koro 题意 给定一个长度为n的数组,有q次更新操作,每次更新会将下标为k的元素的值更新为l,数组的更新是永久的.将数组更新后假设重复做以下操作,求可以得 ...

  8. Codeforces Round #807 (Div. 2) E. Mark and Professor Koro 二进制/线段树

    题目分析 模拟题目不难发现,实际上擦除操作就是在模拟二进制加法进位.那么可以得到原题意的转述: 将每个 a [ i ] a[i] a[i]看作 2 a [ i ] 2^{a[i]} 2a[i],维护整 ...

  9. Codeforces Round #506 (Div. 3)

    Codeforces Round #506 (Div. 3) 实习期间事不多,对div3 面向题解和数据编程了一波 A. Many Equal Substrings 题目链接 A题就是找后缀和前缀重合 ...

最新文章

  1. 算法证明:女生遇到心动的男人一定要追!
  2. BugKu:cookies 欺骗
  3. Unity AOP 处理异常的方法
  4. php 获得手机位置坐标,获取安卓手机的坐标位置
  5. mysql启动主机挂了_docker 启动mysql 挂载宿主机目录
  6. asp.net控件开发基础(19)
  7. 我在美团Android研发岗工作的那5年,含泪整理面经
  8. 开源开放 | 开源立体化漏洞情报知识图谱(四维创智)
  9. 高德网络定位算法的演进
  10. kali linux引导文件修复,Kali+Windows引导修复
  11. 循环拼接String字符串去掉最后一个字符的方法
  12. 【agc006f】Blackout(神仙题)
  13. Google Maps API 进级: GPolygon对象2
  14. R语言进行主成分分析PCA和探索性因子分析EFA的常用步骤:准备资料、选择因子模型、提取多少主成分/因子、提取主成分或者因子、旋转主成分或者因子、数据结果解读、计算主成分或因子得分(或者系数)
  15. Oracle数据库同义词创建
  16. 神经网络学习的几种方法
  17. 【容斥原理】幸运数字
  18. 西北工业大学软件学院大数据技术实验(一)
  19. 使用OpenCV进行人脸识别的三种算法(官方网翻译)
  20. numpy.sum中axis参数用法解析

热门文章

  1. 【django】简易视频播放功能
  2. python打开文件,路径存在'\t'被转义
  3. 谷歌浏览器——新建下载任务
  4. [2010年终大礼]破壳而出的琉璃之鸟 汉化补丁 第二版
  5. 使用Portia时docker-compose失败 /bin/sh: 1: /app/provision.sh: Permission denied
  6. java北京招聘_JAVA应届毕业生去北京找工作,薪资大约多少?
  7. 详解Mysql分布式事务XA
  8. layui实现表格合并单元格,设置不同背景色
  9. MySQL索引优化二
  10. 收藏!闲鱼卖货实操,小白轻松入门