查看: 1442|回復: 2
打印 上一主題 下一主題

[Wikioi] 2830 - 蓬莱山辉夜

[複製鏈接]
回帖獎勵 20 枚金幣 回復本帖可獲得 5 枚金幣獎勵! 每人限 1 次

該用戶從未簽到

10

主題

32

帖子

163

積分

高一新生

Rank: 2

積分
163

台南一中資訊社新手達陣

跳轉到指定樓層
樓主
發表於 2014-4-30 14:33:58 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

趕快加入我們來參與討論吧!

您需要 登錄 才可以下載或查看,沒有帳號?加入我們

x
本帖最後由 ForTest 於 2014-5-3 22:04 編輯

題目:http://www.wikioi.com/problem/2830/
AC Code:http://ideone.com/6xvJIk

最近找到的匪區Judge 有大量NOI題目
這題題意頗詭異 不過直接看題解表示
以时间为关键字将每个用户压入堆
每次输出最先被访问到的用户,
并把时间加上他的时间间隔再重新压入堆。

同時 這個Code有點醜...
前五個貼自己Code的有$$
(如果不是AC Code 樓主/管理員(?)刪回復)

AC證明:http://www.wikioi.com/user/12325/
不過這個網站沒有登入是看不到的...
#include <iostream>
  • #include <cstdio>
  • #include <vector>
  • #include <algorithm>
  • #include <cstring>
  • #include <map>
  • #include <queue>
  • #include <sstream>
  • #include <functional>

  • using namespace std;

  • #define F(a,b) for(int a=0;a<b;++a)
  • typedef long long LL;

  • typedef pair<int,int>P;
  • int main(){
  •         string s;
  •         stringstream ss;
  •         priority_queue<P,vector<P>,greater<P> >p;
  •         map<int,int> m;
  •         while(getline(cin,s)){
  •                 ss << s;
  •                 string a; ss >> a;
  •                 if(a == "#") break;
  •                 int b,c; ss >> b >> c;
  •                 m[b] = c;
  •                 p.push(P(c,b));
  •                 ss.clear();
  •         }
  •         int t; cin >> t;
  •         while(t--){
  •                 P now = p.top(); p.pop();
  •                 cout << now.second << "\n";
  •                 p.push(P(m[now.second] + now.first,now.second));
  •         }
  • }





  • 點評

    已更正  發表於 2014-5-3 22:04
    確定題目沒發錯?  發表於 2014-5-2 23:01
    回復

    使用道具 檢舉

    您需要登錄後才可以回帖 登入 | 加入我們

    本版積分規則

    快速回覆 返回頂部 返回列表