杭電1276 STLシミュレーション
19548 ワード
兵士隊列訓練問題
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 3604 Accepted Submission(s): 1689
Problem Description
ある部隊は新兵の隊列訓練を行い、新兵を最初から順番に番号をつけ、横隊に並べた.訓練のルールは以下の通りである.最初から1から2のカウントを続けます...あとは1から2、1から3の順番で残りの人数が3人を超えないまで行います.
Input
本題には複数のテストデータグループがあり、第一行為グループ数N、次いでN行新兵数であり、新兵数は5000を超えない.
Output
全部でN行あり、それぞれ入力した新兵数に対応し、各行に残りの新兵の最初の番号を出力し、番号の間にスペースがある.
Sample Input
Sample Output
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 3604 Accepted Submission(s): 1689
Problem Description
ある部隊は新兵の隊列訓練を行い、新兵を最初から順番に番号をつけ、横隊に並べた.訓練のルールは以下の通りである.最初から1から2のカウントを続けます...あとは1から2、1から3の順番で残りの人数が3人を超えないまで行います.
Input
本題には複数のテストデータグループがあり、第一行為グループ数N、次いでN行新兵数であり、新兵数は5000を超えない.
Output
全部でN行あり、それぞれ入力した新兵数に対応し、各行に残りの新兵の最初の番号を出力し、番号の間にスペースがある.
Sample Input
2
20
40
Sample Output
1 7 19
1 19 37
#include <iostream>
#include <algorithm>
#include <string>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <cmath>
#include <vector>
#include<queue>
#include<stack>
#include<map>
using namespace std;
#define lson ((root<<1)+1)
#define rson ((root<<1)+2)
#define MID ((l+r)>>1)
typedef long long ll; typedef pair<int,int> P; const int maxn=15000; const int base=1000; const int inf=999999; int main() { int n,m,i,j,k,t; int T;
cin>>T; while(T--) {
cin>>n; if(n==1) {
cout<<1<<endl; continue; } if(n==2) {
cout<<1<<' '<<2<<endl; continue; }
vector<int> v;
vector<int>::iterator it,s,e; for(i=0; i<=n; i++)
v.push_back(i); int p=-1; while(v.size()>4) { if(p==-1) {
p*=-1;
it=v.begin()+2; while(it<v.end()) {
v.erase(it);
it++; } } else {
p*=-1;
it=v.begin()+3; while(it<v.end()) {
v.erase(it);
it+=2; } } }
printf("%d",*(v.begin()+1)); for(it=v.begin()+2;it!=v.end();it++)
printf(" %d",*it);
printf("
"); } return 0 ; }
#include <iostream>
#include <algorithm>
#include <string>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <cmath>
#include <vector>
#include<queue>
#include<stack>
#include<map>
using namespace std;
#define lson ((root<<1)+1)
#define rson ((root<<1)+2)
#define MID ((l+r)>>1)
typedef long long ll; typedef pair<int,int> P; const int maxn=15000; const int base=1000; const int inf=999999; int main() { int n,m,i,j,k,t; int T;
cin>>T; while(T--) {
cin>>n; if(n==1) {
cout<<1<<endl; continue; } if(n==2) {
cout<<1<<' '<<2<<endl; continue; }
vector<int> v;
vector<int>::iterator it,s,e; for(i=0; i<=n; i++)
v.push_back(i); int p=-1; while(v.size()>4) { if(p==-1) {
p*=-1;
it=v.begin()+2; while(it<v.end()) {
v.erase(it);
it++; } } else {
p*=-1;
it=v.begin()+3; while(it<v.end()) {
v.erase(it);
it+=2; } } }
printf("%d",*(v.begin()+1)); for(it=v.begin()+2;it!=v.end();it++)
printf(" %d",*it);
printf("
"); } return 0 ; }