目录

题目

A. Mark the Photographer

题意:

思路:

code:

B. Mark the Dust Sweeper

题意:

思路:

code:

C. Mark and His Unfinished Essay

题意:

思路:

code:

总结:


题目

A. Mark the Photographer

题意:

给你 2*n个数, 一个数x, 要求把这2n个数分成2组, 保证其中一组每个数都比另一组的数大x, 即.

思路:

把这2n个数sort下, 截取成两段, 逐个对应判断是否存在即可, 有点贪心思想.

code:

/***    author:  CurleyD*    created: 07.15.2022 21:35:34
**/
#include <bits/stdc++.h>
#define endl '\n'
#define IO ios::sync_with_stdio(false); cin.tie(nullptr);
using namespace std;
typedef long long LL;
//#define LOCAL
//#define int LL
//headconst int INF = 0x3f3f3f3f;
const int N = 1e5 + 10;
int T, n, m, x;int a[N];void solve() {cin >> n >> x;for (int i = 1; i <= n * 2; i++) cin >> a[i];sort(a+1,a+1+2*n);for (int i = 1; i <= n; i++) {if (a[i+n] - x >= a[i]) {continue;}else {cout << "NO\n";return;}}cout<<"YES\n";
}signed main() {IO;#ifdef LOCALfreopen("out.txt","w",stdout);#endifcin >> T;while(T--) {solve();}return 0;
}

B. Mark the Dust Sweeper

题意:

题目给的题意不明确, 大概意思就是给你个n个正数, 对于 1~n 你可以任选 i, j在这范围之内

进行 ai = ai - 1, aj = aj + 1, (需要保证为正), 问你最少多少次使得 1~n-1的数全为0? 描述的可能不太清晰...

思路:

根据下面的提示来看似乎不能一直选j=n???

观察样例 + 猜想 + 结合实际吸尘器不能跳着吸只能顺着推可知, ans = (1~n-1的ai) + (1~n-1相邻的正数相差的0的数量即间隔数);

不知道怎么证明???

code:

/***    author:  CurleyD*    created: 07.15.2022 21:57:42
**/
#include <bits/stdc++.h>
#define endl '\n'
#define IO ios::sync_with_stdio(false); cin.tie(nullptr);
using namespace std;
typedef long long LL;
//#define LOCAL
//#define int LL
//headconst int INF = 0x3f3f3f3f;
const int N = 2e5 + 10;
int T, n, m;int a[N];void solve() {cin >> n;LL res = 0;LL cnt = 0;for (int i = 1; i <= n; i++)cin >> a[i];bool f = 0;for (int i = 1; i <= n - 1; i++) {if (a[i] != 0) {f = 1;res = res + a[i] + cnt;cnt = 0;}if (a[i] == 0 && f) {cnt ++;}}    res += cnt;cout << res << endl;
}signed main() {IO;#ifdef LOCALfreopen("out.txt","w",stdout);#endifcin >> T;while(T--) {solve();}return 0;
}

C. Mark and His Unfinished Essay

题意:

给你个长度n的字符串, 每次可截取l, r 放在字符串的末尾使得字符串的长度跟着增长, 进行完上述操作给你k个询问, 每个询问给你个位置, 输出增长完的字符串的对应字符是什么?

思路:

l, r 都是1e18显然模拟会超时, 开始一直想着hash来做, 但是我不会

我的做法可能会fst...但pretest过了

通过他最大每次可能给30次修改, 想到可以溯源每个pos映射在原来s串的位置

具体解释下的话如下:

一个样例:n=4,m=3,k=1,s="mark"

4 3 1
mark
1 4
5 7
3 8
10

三次修改, 一次查询

我们用newl表示新增区间l, newr同理, len表示新增区间的长度.

markmark l = 1, r = 4, newl = 5, newr = 8, len = 4

markmarkmar  l = 5, r = 7, newl = 9, newr = 11, len = 3

markmarkrkmark  l = 3, r = 8, newl = 12, newr = 17, len = 6

对于pos = 10, 它是由l=5,r=7区间变成的, 则pos相当于其中的 x = 6!

因此我们可以把pos设置成pos = 6!!!

同理pos=6 -> pos=newl - l + pos!!!

因此我们的过程大致为:

1)读入s,n,m,k, 设置SZ=s.size() (以后要更新会增长)

2)读入l, r 对于每组l,r, 记录其新老l,r到结构体数组p中 即len, 更新SZ

3)sort下p, 方便之后找, 当然不sort估计也行

4)查询过程, 对于每个pos, 进行溯源, 直到pos 在 1~n之间为止!

得解

要是没有fst那证明这个做法可行的, 但感觉应该是对的.

code:

/***    author:  CurleyD*    created: 07.15.2022 22:08:18
**/
#include <bits/stdc++.h>
#define endl '\n'
#define IO ios::sync_with_stdio(false); cin.tie(nullptr);
using namespace std;
typedef long long LL;
//#define LOCAL
//#define int LL
//headconst int INF = 0x3f3f3f3f;
const int N = 1e5 + 10;
int T, n, m, k;LL l, r, pos;struct node{LL l, r, len;LL x, y;
}p[55];bool cmp(node a, node b) {return a.l < b.l;
}void solve() {string s;cin >> n >> m >> k;cin >> s;LL SZ = s.size();s.insert(s.begin(),'#');for (int i = 1; i <= m; i++) {cin >> l >> r;LL len = r - l + 1;//老区间p[i].x = l;p[i].y = r;//新区间p[i].l = SZ + 1;p[i].r = SZ + len;p[i].len = len;SZ += len;//cout<<p[i].l << " " << p[i].r << endl;}sort(p + 1, p + 1 + m, cmp);for (int q = 1; q <= k; q++) {cin >> pos;while (pos > n) {for (int i = 1; i <= m; i++) {if (p[i].l <= pos && p[i].r >= pos) {pos = p[i].x + pos - p[i].l;// cout << pos << endl;break;}}}cout<<s[pos]<<endl;}
}signed main() {IO;#ifdef LOCALfreopen("out.txt","w",stdout);#endifcin >> T;while(T--) {solve();}return 0;
}/*
5->7
9->11  10 - 9 + 5 -> 6
*/

总结:

1)简单题思路形成慢,

2)过于依赖翻译

3)有时候写一半发现漏掉条件/读了假题 ->这次的B

4)会在细节出问题, ->这次的C, 结构体里忘记开LL, len忘开LL导致出现负数溢出, 血亏.

毕竟是菜狗, 第一次赛时出c已经挺高兴了, D似乎是个dp? 看了下tourist的不是dp...

update:

开测了QAQ

没FST, 好耶LOL

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

  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) A - D

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

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

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

  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. c语言统计单词字母个数,C语言统计单词个数
  2. Windows下程序打包发布时的小技巧
  3. Wireshark数据抓包教程之安装Wireshark
  4. 1.Java(初级)编程教程(油管 thenewboston)学习笔记get user input
  5. Android AIDL使用介绍(2)自定义数据类型的传递
  6. 服务器邮件权限的开放,企业邮件服务器收发邮件权限
  7. 四元数运动学笔记(1)旋转的表示
  8. 联想微型计算机怎么进入bios,详细教你联想电脑怎么进入bios
  9. BBS论坛管理系统软件建模实验
  10. gambit2.4证书免费分享
  11. Linux x86-64 IOMMU详解(一)——IOMMU简介
  12. 使用密钥文件登录及免密登录服务器方法
  13. 正则表达式(一):php常用的正则匹配
  14. saltstackmysql return报错
  15. RTD原理及其温度采集
  16. 数据结构 顺序表实现手机通讯录
  17. AWVS扫描Web应用程序
  18. 2022年欧盟的寒冬,中国外贸企业送温暖(暖冬外贸商品都在这里)
  19. 20150109-放弃了一切希望
  20. 实验11-2-7 统计专业人数 (15 分)

热门文章

  1. 手机丅f丅lcd什么屏_坚守LCD!小米新款LCD屏幕手机即将发布,喜欢LCD朋友注意了...
  2. 关于在IE下打印页面背景图片和背景颜色丢失的解决方案
  3. Q25鞋带的时髦系法
  4. 【读书分享】《致还在沉睡的大学生》
  5. 泛微特色政务应用:对内协同办公、对外高效服务,推动政务数字化
  6. 【SCOI 2007】修车
  7. Flume启动错误之:Bootstrap Servers must be specified
  8. [第六章] 深入理解计算机系统第三版 家庭作业参考答案
  9. AudioRecord 录音和播放的Demo
  10. 使用Docker-Compose搭建Redis集群