程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> ACM-HDOJ-1216 模擬,鏈表

ACM-HDOJ-1216 模擬,鏈表

編輯:C++入門知識

 用下面的方法模擬,最開始開50000的鏈表跑了187ms,真是相當的慚愧呀。後改用35000的鏈表跑了109ms。最後改用c的輸入輸出(也就是下面放出的代碼)跑了78ms,其實自己寫鏈表會跑的更快。不過個人比較懶,加上已經0點了,78ms就78ms吧 = =~~~
    順道一提,我這個代碼加上空行什麼的共737B,不過statistic第一頁大多都是10000+B的代碼,這神馬情況 = =||
    呃,剛才在百度知道,看到一個這個題的解題代碼,感覺方法挺好的,
我的ac代碼:
[cpp]
#include <iostream> 
#include <cstdio> 
#include <list> 
#include <iterator> 
#include <algorithm> 
 
using namespace std; 
 
int main() { 
    list<int> l; 
    list<int>::iterator pos = l.begin(); 
    int lucky[3001]; 
    int i(2); 
    for ( ; i != 35000; ++i) 
        l.push_back(i); 
 
    for ( i = 0; i < 3001; ++i ) { 
        lucky[i] = l.front(); 
        int key = lucky[i]; 
        pos = l.begin(); 
        while (pos != l.end()) { 
            pos = l.erase(pos); 
            int k = key - 1; 
            while (k--) { 
                if(pos == l.end())  break; 
                ++pos; 
            } 
        } 
    } 
 
    int n; 
    while (scanf("%d", &n), n){ 
        printf("%d\n", lucky[n - 1]); 
    } 
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved