Codeforces Round #807 (Div. 2)

提交情况

参考

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

A. Mark the Photographer

标签

构造

题意

代码

#include<bits/stdc++.h>
#define FOR(i,a,b) for(int i=(a);i<=(b);++i)
using namespace std;void solve(){int n,x;cin>>n>>x;int a[1007]={};FOR(i,1,2*n) cin>>a[i];sort(a+1,a+2*n+1);int ans=1;FOR(i,1,n) if(a[i+n]-a[i]<x) ans=0;if(ans) cout<<"YES\n";else cout<<"NO\n";
}signed main(){cin.tie(0)->sync_with_stdio(0);int T;cin>>T;while(T--){solve();}return 0;
}

B. Mark the Dust Sweeper

标签

构造

题意

思路

把前导零去除, 然后把剩余的 0 填充为 1, 每次填充花费 1 个操作数, 填充完后依次把所有非零值加到 a[n].

代码

#include<bits/stdc++.h>
#define FOR(i,a,b) for(int i=(a);i<=(b);++i)
using namespace std;#define int long long
int a[200007];void solve(){int n;cin>>n;FOR(i,1,n) cin>>a[i];int st=1;while(a[st]==0) st++;int ans=0;FOR(i,st,n-1){if(a[i]==0) ans++;else ans+=a[i];}cout<<ans<<endl;
}signed main(){cin.tie(0)->sync_with_stdio(0);int T;cin>>T;while(T--){solve();}return 0;
}

C. Mark and His Unfinished Essay

标签

构造, 二分, 递归

题意

思路

参考 C. Sereja and Prefixes.

以前出过的题目.

代码

#include<bits/stdc++.h>
#define FOR(i,a,b) for(int i=(a);i<=(b);++i)
using namespace std;#define int long longstruct node{int prel,prer,l,r;
};vector<node> a;
char s[200007];int n;int ask(int k){int l=0,r=a.size()-1;while(l<r){int mid=(l+r+1)/2;if(a[mid].l<=k) l=mid;else r=mid-1;}if(a[r].r<=n) return k;else return ask(a[r].prel+k-a[r].l);
}void solve(){a.clear();memset(s,0,sizeof s);int c,q;cin>>n>>c>>q;FOR(i,1,n) cin>>s[i];int len=n;a.push_back({1,n,1,n});FOR(i,1,c){int l,r;cin>>l>>r;a.push_back({l,r,len+1,len+1+r-l});len=len+1+r-l;}FOR(i,1,q){int k;cin>>k;cout<<s[ask(k)]<<endl;}
}signed main(){cin.tie(0)->sync_with_stdio(0);int T;cin>>T;while(T--){solve();}return 0;
}

D. Mark and Lightbulbs

标签

构造

题意

思路

重点是把每次操作看作一个连续相同数字段的端点的移动.

代码

#include<bits/stdc++.h>
#define FOR(i,a,b) for(int i=(a);i<=(b);++i)
using namespace std;#define int long longstruct node{int l,r;
};const int N = 2e5+7;
string s1,s2;
vector<node> n1,n2;int solve(){n1.clear(); n2.clear();int n;cin>>n;cin>>s1>>s2;if(s1==s2) return 0;if(s1[0]!=s2[0] or s1[n-1]!=s2[n-1]) return -1;FOR(i,0,n-1){while(i<=n-1 and s1[i]=='0') i++;if(i==n) break;int l=i;while(i<=n-1 and s1[i]!='0') i++;n1.push_back({l,i-1});}FOR(i,0,n-1){while(i<=n-1 and s2[i]=='0') i++;if(i==n) break;int l=i;while(i<=n-1 and s2[i]!='0') i++;n2.push_back({l,i-1});}if(n1.size()!=n2.size()) return -1;int ans=0;FOR(i,0,n1.size()-1){ans+=abs(n1[i].l-n2[i].l)+abs(n1[i].r-n2[i].r);}return ans;
}signed main(){cin.tie(0)->sync_with_stdio(0);int T; cin>>T;while(T--) cout<<solve()<<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-D

    Codeforces Round #807 (Div. 2) A. Mark the Photographer 给定整数n,数组长度2*n,问能不能拆成两个长度为n的数组,两个数组的第i项有a[i]& ...

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

    Dashboard - Codeforces Round #807 (Div. 2) - Codeforces 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. python 爬虫实例-Python 爬虫:Scrapy 实例(二)
  2. Qt运行一个实例进程
  3. Python中生成一个指定长度的随机字符串实现示例
  4. rm -rf * -bash: /bin/rm: 参数列表过长
  5. mfc远程连接mysql数据库连接_MFC连接mysql数据库(十分钟搞定)
  6. java中list set map 的区别
  7. 三、spring中高级装配(1)
  8. PLC编程语言入门,常用指令集汇总分享
  9. 国赛助力:第三类边界条件热传导方程及基于三对角矩阵的数值计算MATLAB实现(2020A)
  10. NTC热敏电阻(温度传感器)
  11. 定时报警器c语言程序,单片机控制的简易定时报警器电路设计(含电路图和程序)...
  12. 如何在毕业论文Word中插入图表目录
  13. Uncle-黄,恍恍惚惚的面经 -- 1(初级Java)
  14. Qlikview连接Mysql数据源
  15. 这一年我都做了什么......
  16. 【毕业季·进击的技术er】这三年来的风风雨雨,喜怒哀乐,坎坎坷坷,朝朝暮暮……都是那么美好,那么令人难以忘记。
  17. 教你用Ossim平台检测网络的Shellcode攻击
  18. Vlan和pvlan全面解析
  19. 谁说小P只是玩伴-巧用PSP及RSS资源提高英语听力
  20. 入驻宣言:凡所见,皆可杀

热门文章

  1. Diagnostic Viewer 显示空白
  2. nowcoder:[编程题] 头条校招(贪心)
  3. 汉威危化品安全风险监测预警平台 助力企业摆脱新旧领域风险
  4. Js验证身份证是否正确
  5. [转载]无盘网吧实际施工过程中的注意事项(转)
  6. 计算机反求设计的一般步骤,逆向设计的概念和基本步骤
  7. 计算机开机总显示密码错误如何解决,快速解决win10开机密码错误开不了机的问题...
  8. 中国卸油系统行业市场供需与战略研究报告
  9. 计算机名和DNS域名的关系,域名、DNS、IP地址的对应关系
  10. 探索式测试--第八章(软件测试的未来)--读书笔记