9 条题解
-
6
可以用两个队列来模拟
#include <bits/stdc++.h> using namespace std; typedef queue<int> qi; qi a,b; int main() { int m,w,s; cin >> m >> w >> s; for(int i=1;i<=m;i++) a.push(i); for(int j=1;j<=w;j++) b.push(j); while(s--) { cout << a.front() << " " << b.front() << endl; a.push(a.front()); b.push(b.front()); a.pop(); b.pop(); } return 0; }
-
1
C++
思维简单,就是配对,哪边人数到了就从头来;
#include using namespace std; int main(){ int m ,f; //male和female不用解释吧 int n; int j = 1, k = 1; cin >> m >> f; cin >> n; for(int i = 1; i <= n; i++) { cout << j << " " << k; //配对输出 cout << endl; j += 1; //这个male跳过舞了,+1! k += 1; //这个female也跳过了,+1 too! if(j == m + 1) j = 1; //如果所有male都跳过了,从头来 if(k == f + 1) k = 1; //如果所有female都跳过了,也从头来 } return 0; }
Python
python就不用多说了吧
m = int(input()) f = int(input()) n = int(input()) j = 1 k = 1 for i in range(0, n): print("%d %d" %(j, k)) #配对输出 j += 1 #这个male跳过舞了,+1! k += 1 #这个female也跳过了,+1 too! if j == m + 1: #如果所有male都跳过了,从头来 j = 1 if k == f + 1: #如果所有female都跳过了,也从头来 k = 1
题解仅提供思路 -
-1
┭┮﹏┭┮
我的最麻烦
#include<bits/stdc++.h> using namespace std; int main() { int a,b,c; cin >>a>>b>>c; int n[a+1]; int m[b+1]; for(int i=1; i<=a; i++){ n[i]=i; } for(int i=1; i<=b; i++){ m[i]=i; } int u,v; for(int i=1; i<=c; i++){ cout<<n[1]<<" "<<m[1]<<endl; u=n[1]; v=m[1]; for(int j=1; j<a; j++){ n[j]=n[j+1]; } for(int j=1; j<b; j++){ m[j]=m[j+1]; } n[a]=u; m[b]=v; } return 0; }
-
-4
m=int(input())
w=int(input())
song=int(input())
maxx=max(m,w,song)
man=[0]*(maxx+20)
woman=[0]*(maxx+20)
for i in range(1,m+1):
man[i-1]=i
headm=0
tailm=m
for j in range(1,w+1):
woman[j-1]=j
headw=0
tailw=w
k=0
while k<song:
print(man[headm],woman[headw])
man[tailm]=man[headm]
woman[tailw]=woman[headw]
headm+=1
tailm+=1
headw+=1
tailw+=1
k+=1
- 1
信息
- ID
- 816
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 4
- 标签
- 递交数
- 427
- 已通过
- 190
- 上传者