当前位置: 首页 > news >正文

Codeforces Round 984 (Div. 3)

题目链接

A. Quintomania

题意

在这里插入图片描述

思路

模拟即可

示例代码

void solve() {int n;cin >> n;vector<int>arr(n);fer(i, 0 ,n) cin >> arr[i];fer(i, 1, n){if(abs(arr[i] - arr[i - 1]) != 5 && abs(arr[i] - arr[i - 1]) != 7){cout << "NO" << '\n';return;}}cout << "YES" << '\n';
}

B. Startup

题意

在这里插入图片描述

输入

在这里插入图片描述

输出

在这里插入图片描述

思路

哈希表(数组哈希或者map),需要注意计算ans时的边界(计算多少个)

示例代码

void solve() {int n, k;cin >> n >> k;int *arr = new int[max(n, k) + 2]{};fer(i, 0, k){int b, c;cin >> b >> c;arr[b] += c;}sort(arr, arr + max(n, k) + 2, [&](int a, int b){return a > b;});int ans = 0;fer(i, 0, n) ans += arr[i];cout << ans << '\n';
}
void solve() {int n, k;cin >> n >> k;map<int, int>mp;fer(i, 0, k){int b, c;cin >> b >> c;mp[b] += c;}vector<pii>arr(all(mp));sort(all(arr), [&](pii a, pii b){return a.second > b.second;});int ans = 0;fer(i, 0, min((int)arr.size(), n))ans += arr[i].second;cout << ans << '\n';
}

C. Anya and 1100

题意

在这里插入图片描述

输入

在这里插入图片描述

输出

在这里插入图片描述

思路

先预处理包含的1100的个数,然后计算在改变位置改变后对改变前的影响(可以分别计算在改变位置处1100的个数,计算差值),注意遍历的边界范围

示例代码

void solve() {string s;cin >> s;int q;cin >> q;int cnt = 0;fer(i, 0, s.size() - 3){if(s.substr(i, 4) == "1100") cnt++;}while(q--){int ind, v;cin >> ind >> v;ind--;int cnt1 = 0, cnt2 = 0;// 改变前fer(i, max(0, ind - 3), min((int)s.size() - 3, ind + 1)){if(s.substr(i, 4) == "1100") cnt1++;}// 改变后s[ind] = char(v + '0');fer(i, max(0, ind - 3), min((int)s.size() - 3, ind + 1)){if(s.substr(i, 4) == "1100") cnt2++;}cnt += cnt2 - cnt1;if(cnt >= 1) cout << "YES" << '\n';else cout << "NO" << '\n';}
}

D. I Love 1543

题意

在这里插入图片描述

输入

在这里插入图片描述

输出

在这里插入图片描述

样例输入及输出

在这里插入图片描述

思路

与蛇形填数思路一致,用偏移量法求取每一个外围的字符串,统计这个字符串在循环移位后包含1543子串的最大个数,加到res中输出。注意边界的判断。

示例代码

int dx[] = {0, 1, 0, -1};
int dy[] = {1, 0, -1, 0};int finds(string s){int cnt = 0;fer(i, 0, s.size() - 3){if(s.substr(i, 4) == "1543")cnt++;}return cnt;
}void solve() {int n, m;cin >> n >> m;vector<vector<int>>arr(n, vector<int>(m));fer(i, 0, n){string s;cin >> s;fer(j, 0, s.size())arr[i][j] = (int)(s[j] - '0');}int c = 0;int res = 0;int nn = n, mm = m;while(n && m){string s;int x = c, y = c, d = 0;fer(i, 0, 2 * (n + m - 2)){s += to_string(arr[x][y]);int a = x + dx[d], b = y + dy[d];if(a < c || a >= nn - c || b < c || b >= mm - c){d = (d + 1) % 4;a = x + dx[d], b = y + dy[d];}x = a, y = b;}n -= 2, m -= 2;c ++;string s1 = s.substr(1) + s[0];string s2 = s1.substr(1) + s1[0];string s3 = s2.substr(1) + s2[0];res += max(finds(s), max(finds(s1), max(finds(s2), finds(s3))));}cout << res << '\n';
}

http://www.mrgr.cn/news/69122.html

相关文章:

  • 【微软:多模态基础模型】(1)从专家到通用助手
  • Python小游戏24——小恐龙躲避游戏
  • aws(学习笔记第十二课) 使用AWS的RDS-MySQL
  • Liebherr利勃海尔 EDI 需求分析
  • 一键抠图:免费安全的在线图片去除背景工具
  • hive修改表名、修改列名、修改分区
  • ODOO学习笔记(3):Odoo和Django的区别是什么?
  • Docker的轻量级可视化工具Portainer
  • ssm077铁岭河医院医患管理系统+vue(论文+源码)_kaic
  • 特殊符号大全
  • 驱动开发系列27 - Linux Kernel 内核调试环境配置
  • 【softmax基础】如何使用什么时候使用
  • Python:scipy.signal.find_peaks 查找数据内的波峰波谷
  • 从0开始linux(25)——链接文件
  • c程序编译预处理命令那些事
  • 电工领域文档规范引用格式说明
  • 装杯 之 Linux指令【补充篇】
  • 图形几何之美系列:仿射变换矩阵
  • 了解信息物理系统(CPS,Cyber-Physical Systems)
  • Java 函数接口Comparator和Comparable【比较器接口】详解与示例
  • 深入理解指针3
  • 3242. 设计相邻元素求和服务
  • 运维规范心得
  • 【linux】再谈网络基础(二)
  • 如何判断 Hive 表是内部表还是外部表
  • C#入门 017 字段,属性,索引器,常量