1. 程式人生 > >Assistance Required HDU - 1216 (模擬+連結串列)

Assistance Required HDU - 1216 (模擬+連結串列)

題目
在這裡插入圖片描述

複習一些, 對於常用刪除和插入操作的資料結構要用list, 對於遍歷和查詢更多的資料結構要用集合, 這道題很顯然要用list

#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cstring>
#include <string>
#include <stdlib.h>
#include <vector>
#include <queue>
#include <cmath>
#include
<map>
#include <list> using namespace std; #define ms(x, n) memset(x,n,sizeof(x)); typedef long long LL; const LL maxn = 50000; int n, ans[3010]; list<int> num(maxn); void init() { //初始化號碼2...n int i = 2, j = 1; list<int>::iterator it; for(it = num.begin(); it != num.
end(); it++) *it = i++; it = num.begin(); while (it != num.end()){ i = num.front(); ans[j++] = i; num.pop_front(); int k = 1; for(it = num.begin(); it != num.end(); it++, k++){ if(k % i == 0) num.erase(it--); }
it = num.begin(); } } int main() { init(); while(cin >> n && n!=0) cout << ans[n] << endl; return 0; }