给你一个长度为 N 的整数序列 A=(A1,A2,…,AN) 和一个整数 X 。
请判断 X 是否包含在 A 中。
思路
水
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
#include<bits/stdc++.h> usingnamespace std; intmain() { int n; cin >> n; set<int> s; while (n--) { int x; cin >> x; s.insert(x); } int x; cin >> x; cout << (s.count(x) ? "Yes" : "No"); return0; }
B.Pick Two
题目描述
有一个线性仓库,储存的包裹数量均等。
仓库的布局用字符串 S 表示。
仓库有 ∣S∣ 个分区,编号为 1,2,…,∣S∣ ,字符串 S 对其描述如下:
当 S 的 i 个字符为 "#"时,一个包裹被放置在 i 区段。
当 S 的 i -th字符为". "时, i 节中不会放置任何软件包。
仓库里有一个机器人,它会重复以下操作,直到仓库里没有包裹为止:
从装有包裹的区域中区域编号最小的区域收集两个包裹。收集到的包裹被运出仓库。
每次迭代时,确定被运出的两个包裹最初位于仓库的哪个区段。
(这个题目描述来自deepl 一句人话都没有)
思路
水
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
#include<bits/stdc++.h> usingnamespace std; intmain() { string s; cin >> s; int l = -1, flag = 0; for (int i = 0; i < s.length(); i++) { if (s[i] == '#') { if (flag) { cout << l << ',' << i + 1 << '\n'; flag = 0; } else { l = i + 1; flag = 1; } } } }
C.Mixture
题目描述
有 N 种化学物质 1,2,…,N 。你的目标是创造一种所有化学品都混合的状态。
给你一个长度为 2N−1 的字符串 S ,由 0 和 1 组成,表示以下信息:
首先,定义一种或多种化学品混合的状态 i ( 1≤i≤2N−1 )如下:
当 i 的二进制表示中从下往上的 k ( 1≤k≤N )位数为 1 时,且只有在此时,化学品 k 才会被包含在内。
#include<bits/stdc++.h> usingnamespace std; #define int long long structnode { int a, b, c; }; boolcmp(const node &x, const node &y){ return x.c < y.c; } signedmain() { int n, m; cin >> n >> m; vector<node> a(m); for (int i = 0; i < m; i++) { cin >> a[i].a >> a[i].b; a[i].c = a[i].a - a[i].b; } sort(a.begin(), a.end(), cmp); int ans = 0; int x = n; for (int i = 0; i < a.size(); i++) { if (x <= 0) { break; } if (x >= a[i].a) { int k = (x - a[i].a) / a[i].c + 1; ans += k; x -= k * a[i].c; } } cout << ans; return0; }
E.Hungry Takahashi
题目描述
有一个行数为 H 列数为 W 的网格。 从上往下数 i 行,从左往上数 j 列的方格记为 (i,j) 。 每个方格上都有一些硬币,方格 (i,j) 上的硬币是 Ai,j 。