一、问题总结
二、问题复盘
2.1 信息学oj-1332:周末舞会
(1) 问题描述
(2) 问题分析
这道题就比较简单,之间安装题目意思来就行
(3) 问题解决
#include <cstdio>
#include <iostream>
#include <queue>
using namespace std;
queue<int> male,female;
int main()
{
int m,n;
int nums;
cin >> m >> n >> nums;
for(int i = 1; i <= m; i++) male.push(i);
for(int i = 1; i <= n; i++) female.push(i);
for(int i = 1; i <= nums; i++)
{
cout << male.front() << ' ' << female.front() << endl;
int a = male.front(); male.pop();
int b = female.front(); female.pop();
male.push(a); female.push(b);
}
return 0;
}
2.2 信息学oj-1333:Blah数集
(1) 问题描述
(2) 问题分析
这到题,感觉自己还没理解透,讲不出来
(3) 问题解决
#include <cstdio>
#include <iostream>
#include <algorithm>
using namespace std;
const int N = 1000100;
long long q[N];
int a,n;
int main()
{
while(cin >> a >> n)
{
int rear = 2;
q[1] = a;
int two = 1, three = 1;
while(rear <= n)
{
long long t1 = q[two] * 2 + 1;
long long t2 = q[three] * 3 + 1;
int t = min(t1,t2);
if(t1 < t2) two++; else three++;
if(t == q[rear-1]) continue;
q[rear++] = t;
}
cout << q[n] << endl;
}
return 0;
}
2.3 信息学oj-1334:围圈报数
(1) 问题描述
(2) 问题分析
这道题与我们学校做的课程实验一模一样,就是用一个数组来模拟闭合的链表
(3) 问题解决
#include <iostream>
using namespace std;
const int N = 100+5;
int a[N];
int main()
{
int n,m;
int out = 0;
int count = 1;
cin >> n >> m;
int in = n;
for(int i = 1; in != 0; i++)
{
if(i == n+1)
{
i = 0;
continue;
}
if(count == m && a[i] == 0)
{
count = 1;
a[i] = 1;
out++;
in--;
cout << i << ' ';
continue;
}
if(count != m && a[i] == 0)
count++;
}
return 0;
}