周末舞会
题目描述
假设在周末舞会上,X 名男士和 Y 名女士进入舞厅时,各自排成一队,并分别按顺序编号。跳舞开始时,依次从男队和女队的队头上各出一人配成舞伴。规定每个舞曲只能有一对跳舞者。跳完舞的人回到队尾。输出前 N 首舞曲的跳舞者编号。
输入
一行三个数 X,Y,N。
输出
输出共 N 行,一行两个数,分别代表跳这支舞曲的男士编号和女士编号,两数之间用空格隔开。
样例输入
3 5 6
样例输出
1 1
2 2
3 3
1 4
2 5
3 1
#include<iostream>
#include <queue>
using namespace std;
int m, w, n;
int main() {
cin >> m >> w >> n;
queue<int> man, wman;
for (int i = 1; i <= m; i++) {
man.push(i);
}
for (int i = 1; i <= w; i++) {
wman.push(i);
}
for (int i = 1; i <= n; i++) {
cout << man.front() << " " << wman.front() << endl;
man.push(man.front());
wman.push(wman.front());
man.pop();
wman.pop();
}
return 0;
}
合并果子
输入
输入包括两行,第一行是一个整数 n(1≤n≤10000),表示果子的种类数。
第二行包含 n 个整数,用空格分隔,第 i 个整数 ai(1≤ai≤20000) 是第 i 种果子的数目。
输出
输出包括一行,这一行只包含一个整数,也就是最小的体力耗费值。输入数据保证这个值小于 231。
样例输入
3
1 2 9
样例输出
15
#include<iostream>
#include <queue>
using namespace std;
int n, sum, ans;
int main() {
cin >> n;
priority_queue<int, vector<int>, greater<int>> que;
for (int i = 1; i <= n; i++) {
int t;
cin >> t;
que.push(t);
}
while (que.size() >= 2) {
int temp1 = que.top();
que.pop();
int temp2 = que.top();
que.pop();
sum = temp1 + temp2;
ans += sum;
que.push(sum);
}
cout << ans << endl;
return 0;
}
报数
输入
共一行两个数 N 和 M。
输出
输出一个数表示最后一人的编号。
样例输入
7 3
样例输出
4
#include<iostream>
#include <queue>
using namespace std;
int n, m, now = 1;
int main() {
cin >> n >> m;
queue<int> cir;
for (int i = 1; i <= n; i++) {
cir.push(i);
}
while (cir.size() != 1) {
if (now != m) {
cir.push(cir.front());
now++;
cir.pop();
}
else {
cir.front();
cir.pop();
now = 1;
}
}
cout << cir.front() << endl;
return 0;
}
字符串匹配
输入
一行一个字符串,以字符@为结尾。
输出
若匹配,输出 YES,若不匹配,则输出 NO。
样例输入
a(cc())bbb()@
样例输出
YES
样例输入2
a(cc()bbb()@
样例输出2
NO
借助栈实现: 字符串中字符与入栈的字符比较, 匹配则出栈, 不匹配则输出不匹配;
#include<iostream>
#include <stack>
#include <string>
using namespace std;
string s;
int main() {
cin >> s;
stack<char> str;
for (int i = 0; i < s.size(); i++) {
if (s[i] == '(' || s[i] == '[' || s[i] == '{') {
str.push(s[i]);
}
else if(s[i] == ')') {
if (str.empty() || str.top() != '(') {
cout << "NO" << endl;
return 0;
}
str.pop();
}
else if (s[i] == '}') {
if (str.empty() || str.top() != '{') {
cout << "NO" << endl;
return 0;
}
str.pop();
}
else if (s[i] == ']') {
if (str.empty() || str.top() != '[') {
cout << "NO" << endl;
return 0;
}
str.pop();
}
}
if (str.empty()) {
cout << "YES" << endl;
}
else {
cout << "NO" << endl;
}
return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)