比赛链接:https://codeforces.com/contest/1352

A - Sum of Round Numbers

题意

将一个十进制数的每一个非零位分离出来。

代码

#include <bits/stdc++.h>
using namespace std; void solve() {
string s; cin >> s;
int n = s.size();
vector<string> ans;
for (int i = n - 1; i >= 0; i--) {
if (s[i] != '0') {
ans.push_back(s[i] + string(n - 1 - i, '0'));
}
}
cout << ans.size() << "\n";
for (auto i : ans) cout << i << ' ';
cout << "\n";
} int main() {
int t; cin >> t;
while (t--) solve();
}

B - Same Parity Summands

题意

将整数 n 分解为 k 个奇偶性相同的数。

代码

#include <bits/stdc++.h>
using namespace std; void solve() {
int n, k; cin >> n >> k;
int n1 = n - (k - 1), n2 = n - (k - 1) * 2;
if (n1 > 0 and n1 % 2 == 1) {
cout << "YES\n";
for (int i = 0; i < k - 1; i++) cout << "1 ";
cout << n1 << "\n";
} else if (n2 > 0 and n2 % 2 == 0) {
cout << "YES\n";
for (int i = 0; i < k - 1; i++) cout << "2 ";
cout << n2 << "\n";
} else {
cout << "NO" << "\n";
}
} int main() {
int t; cin >> t;
while (t--) solve();
}

C - K-th Not Divisible by n

题意

输出第 k 个不能被 n 整除的数。

题解

两个 n 之间有 n - 1 个不能被 n 整除的数,找出 k 中有多少个完整的 n - 1 区间,再对 n - 1 取余即可。

代码

#include <bits/stdc++.h>
using namespace std; void solve() {
long long n, k; cin >> n >> k;
if (k % (n - 1) == 0)
cout << k / (n - 1) * n - 1 << "\n";
else
cout << k / (n - 1) * n + k % (n - 1) << "\n";
} int main() {
int t; cin >> t;
while (t--) solve();
}

D - Alice, Bob and Candies

题意

n 堆糖果排成一排,Alice 只能从左边取,Bob 只能从右边取,每次一人取得的糖果数需多于另一人上一次取得的糖果数,问所有糖果取完时二人共取了多少次,以及各自取得的糖果个数。

题解

模拟即可。

代码

#include <bits/stdc++.h>
using namespace std; void solve() {
int n; cin >> n;
int a[n] = {}; for (auto &i : a) cin >> i;
int l = 0, r = n - 1;
int ans_l = 0, ans_r = 0;
int pre_l = 0, pre_r = 0;
int i;
for (i = 0; l <= r; i++) {
int sum = 0;
if (i % 2 == 0) {
while (l <= r and sum <= pre_r) {
sum += a[l];
++l;
}
ans_l += sum;
pre_l = sum;
} else {
while (r >= l and sum <= pre_l) {
sum += a[r];
--r;
}
ans_r += sum;
pre_r = sum;
}
}
cout << i << ' ' << ans_l << ' ' << ans_r << "\n";
} int main() {
int t; cin >> t;
while (t--) solve();
}

E - Special Elements

题意

统计数组 a 中有多少元素可以被连续子数组加和求得。

题解

数据范围较小,$O_{(n^2)}$ 枚举即可。

代码

#include <bits/stdc++.h>
using namespace std; const int M = 8100;
int n, a[M], cnt[M]; void solve() {
fill(cnt, cnt + M, 0);
cin >> n;
for (int i = 0; i < n; i++) {
cin >> a[i], ++cnt[a[i]];
}
int ans = 0;
for (int i = 0; i < n; i++) {
int sum = a[i];
for (int j = i + 1; j < n; j++) {
sum += a[j];
if (sum < M and cnt[sum]) {
ans += cnt[sum];
cnt[sum] = 0;
}
}
}
cout << ans << "\n";
} int main() {
int t; cin >> t;
while (t--) solve();
}

F - Binary String Reconstruction

题意

构造一个 01 串,要求:

  • 00 的个数为 n0 个
  • 01 的个数为 n1 个
  • 11 的个数为 n2 个

题解

依次构造 11,10,00 即可。

代码

#include <bits/stdc++.h>
using namespace std; void solve() {
int n0, n1, n2; cin >> n0 >> n1 >> n2;
vector<int> ans;
if (n1 or n2) ans.push_back(1);
for (int i = 0; i < n2; i++) ans.push_back(1);
for (int i = 0; i < n1 / 2; i++) {
ans.push_back(0);
ans.push_back(1);
}
if (n1 & 1) {
ans.push_back(0);
for (int i = 0; i < n0; i++) ans.push_back(0);
} else {
if (ans.size()) {
ans.pop_back();
for (int i = 0; i < n0; i++) ans.push_back(0);
ans.push_back(1);
} else {
for (int i = 0; i < n0 + 1; i++) ans.push_back(0);
}
}
for (auto i : ans) cout << i;
cout << "\n";
} int main() {
int t; cin >> t;
while (t--) solve();
}

G - Special Permutation

题意

构造数 n 的一个排列,使得相邻两数相差在 [2, 4] 之间。

题解

顺着 3 1 4 2 构造即可。

代码

#include <bits/stdc++.h>
using namespace std; void solve() {
int n; cin >> n;
if (n <= 3) {
cout << -1 << "\n";
return;
} else {
for (int i = n - (n % 2 == 0); i >= 5; i -= 2) cout << i << ' ';
cout << "3 1 4 2 ";
for (int i = 6; i <= n - (n % 2 == 1); i += 2) cout << i << ' ';
cout << "\n";
}
} int main() {
int t; cin >> t;
while (t--) solve();
}

Codeforces Round #640 (Div. 4)的更多相关文章

  1. Codeforces Round #366 (Div. 2) ABC

    Codeforces Round #366 (Div. 2) A I hate that I love that I hate it水题 #I hate that I love that I hate ...

  2. Codeforces Round #354 (Div. 2) ABCD

    Codeforces Round #354 (Div. 2) Problems     # Name     A Nicholas and Permutation standard input/out ...

  3. Codeforces Round #368 (Div. 2)

    直达–>Codeforces Round #368 (Div. 2) A Brain’s Photos 给你一个NxM的矩阵,一个字母代表一种颜色,如果有”C”,”M”,”Y”三种中任意一种就输 ...

  4. cf之路,1,Codeforces Round #345 (Div. 2)

     cf之路,1,Codeforces Round #345 (Div. 2) ps:昨天第一次参加cf比赛,比赛之前为了熟悉下cf比赛题目的难度.所以做了round#345连试试水的深浅.....   ...

  5. Codeforces Round #279 (Div. 2) ABCDE

    Codeforces Round #279 (Div. 2) 做得我都变绿了! Problems     # Name     A Team Olympiad standard input/outpu ...

  6. Codeforces Round #262 (Div. 2) 1003

    Codeforces Round #262 (Div. 2) 1003 C. Present time limit per test 2 seconds memory limit per test 2 ...

  7. Codeforces Round #262 (Div. 2) 1004

    Codeforces Round #262 (Div. 2) 1004 D. Little Victor and Set time limit per test 1 second memory lim ...

  8. Codeforces Round #371 (Div. 1)

    A: 题目大意: 在一个multiset中要求支持3种操作: 1.增加一个数 2.删去一个数 3.给出一个01序列,问multiset中有多少这样的数,把它的十进制表示中的奇数改成1,偶数改成0后和给 ...

  9. Codeforces Round #268 (Div. 2) ABCD

    CF469 Codeforces Round #268 (Div. 2) http://codeforces.com/contest/469 开学了,时间少,水题就不写题解了,不水的题也不写这么详细了 ...

随机推荐

  1. LeetCode485 最大连续1的个数

    给定一个二进制数组, 计算其中最大连续1的个数. 示例 1: 输入: [1,1,0,1,1,1] 输出: 3 解释: 开头的两位和最后的三位都是连续1,所以最大连续1的个数是 3. 注意: 输入的数组 ...

  2. XSS-labs通关挑战(xss challenge)

    XSS-labs通关挑战(xss challenge) 0x00 xss-labs   最近在看xss,今天也就来做一下xss-labs通过挑战.找了好久的源码,终于被我给找到了,因为在GitHub上 ...

  3. 【Linux】ethtool 用法

    ethtool命令用于获取以太网卡的配置信息,或者修改这些配置.这个命令比较复杂,功能特别多. 语法 ethtool [ -a | -c | -g | -i | -d | -k | -r | -S | ...

  4. LeetCode563. 二叉树的坡度

    题目 1 class Solution { 2 public: 3 int ans = 0; 4 int findTilt(TreeNode* root) { 5 postOrder(root); 6 ...

  5. Job for docker.service failed because start of the service was attempted too often. See "systemctl status docker.service" and "journalctl -xe" for details. To force a start use "systemctl reset-failed

    安装docker时,自己添加了国内的hub.docker.com镜像 [root@ce-docker ~]# systemctl restart docker 出现以下报错:Job for docke ...

  6. leetcode刷题录-1395

    目录 题目 思考过程 查看别人分享的思路 总结 题目 题目地址:https://leetcode-cn.com/problems/count-number-of-teams/ n 名士兵站成一排.每个 ...

  7. Windows程序通用自动更新模块(C#,.NET4.5以上)

    本通用自动更新模块适合所有Windows桌面程序的自动更新,不论语言,无论Winform还是wpf. 一.工作流程:1. 主程序A调起升级程序B2. B从服务器获取更新程序列表,打印更新信息.3. B ...

  8. 使用axis1.4生成webservice的客户端代码

    webservice服务端: https://blog.csdn.net/ghsau/article/details/12714965 跟据WSDL文件地址生成客服端代码: 1.下载 axis1.4 ...

  9. 1.8V升3V芯片,1.8V升3.3V升压芯片方案

    两节干电池由于耗电量电压会降低,无法长期稳定的输出3V或者3.3V供电,直接两节干电池会供电电压不稳,影响后面电路稳定.两节干电池的供电电压在1.8V-3.2V左右 1.8V升3V升压芯片方案, 如P ...

  10. Centos7.4 小白式安装(初学)

    虚拟机安装Centos7.4系统 适用人群(初学者) 下载Centos7.4镜像 https://pan.baidu.com/s/1NtjfdHV3OWAvfDj5vrR7HQ  提取码:hzzw 虚 ...