青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

O(1) 的小樂

Job Hunting

公告

記錄我的生活和工作。。。
<2010年9月>
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789

統(tǒng)計(jì)

  • 隨筆 - 182
  • 文章 - 1
  • 評論 - 41
  • 引用 - 0

留言簿(10)

隨筆分類(70)

隨筆檔案(182)

文章檔案(1)

如影隨形

搜索

  •  

最新隨筆

最新評論

閱讀排行榜

評論排行榜

SRM 481

Div2

1 比較簡單的一道題目,理清楚邏輯關(guān)系。。

2 trick的一道題目,真是惡心人啊。。。從下面的一張圖中來看出種種的關(guān)系。。比賽的時(shí)候,糾結(jié)了。。所以沒搞出來。。

In the graphic, c + y will be equal to x (The total number of people that told you the correct answer) and a+b will be equal to n-x (The total number of people that told you the wrong answer). Since we know the number of elements in LIARS (liarCount) and the number of people in the intersection is assumed to be y we can conclude that a=lieCount-y. Similarly, b = liarCount-y. Since all the other literals are known, c = n - a - b - y. Knowing a, b, c and y we can verify: If (a+b) is equal to (n-x) and (c+y = x) then the scenario is possible. There is an implicit condition, an important one that was missed by many during the match, we do not want y to be so small, that the sum a+b-y is larger than n, this case can be detected by making sure that c is positive. Also note that since the numbers in the input can only be as large as 1000000, we can simply iterate through all the possible values of y until one for which the previous conditions hold.
We can then code a solution:

// Is the following scenario possible?:
//
// n people.
// x people told the truth.
// lieCount people were lied to.
// liarCount people lied intentionally
//
boolean check(int n, int x, int lieCount, int liarCount) {
    // Iterate through all the possible values of the intersection y:
    for (int y = 0; y <= lieCount && y <= liarCount; y++) {
        int a = lieCount - y;
        int b = liarCount - y;
        int c = n - a - b - y;

        // Do all the required conditions hold?
        if ( a+b==n-x && c+y==x && c>=0 ) {
            return true;
        }
    }
    return false;
}
//

public String theTruth(int n, int eggCount, int lieCount, int liarCount) {
    // Call the sub-routine, first assuming that the egg is the correct answer
    boolean egg =     check(n,eggCount, lieCount, liarCount );
    // Then assuming that the chicken is the correct answer:
    boolean chicken = check(n,n-eggCount, lieCount, liarCount );
    if(egg&&chicken) {
        return "Ambiguous";
    } else if (egg) {
        return "The egg";
    } else if (chicken) {
        return "The chicken";
    } else {
        return "The oracle is a lie";
    }
}
 

其中的邏輯關(guān)系還是很顯然的。。要淡定!。。。

QQ截圖未命名

看看某個房間里的情況。。唉,這告訴我們無論什么時(shí)候都不要放棄努力!

仔細(xì)和認(rèn)真,有一個端正的態(tài)度是做好一切事情的法寶!

3 這個第三題應(yīng)當(dāng)和第二題換一下啊。。非常簡單。。

  因?yàn)橐粋€人可能會有幾個job,但是一個job只能對應(yīng)于一個人。。這就使問題變得非常簡單了。。很easy的會想到每個人的job duration和來做排序。。如果job duration 和相同,就以第一個首元素做排序標(biāo)準(zhǔn)。。

map <string,int> mp;
struct str{
       long long tot;
       int num;
       int next[55];
};
str st[55];
bool operator <(str a, str b)
{
     if (a.tot != b.tot)
        return a.tot < b.tot;
     return a.next[0] < b.next[0];
}
class BatchSystem
{
        public:
        vector <int> schedule(vector <int> duration, vector <string> user)
        {
               int n = duration.size();
               int i,j,t;
               int ct = 0;
               memset(st,0,sizeof(st));
               mp.clear();
               for (i = 0;i < n;i++)
               {
                   if (mp.find(user[i]) == mp.end())
                      mp[user[i]] = ct++;
                   t = mp[user[i]];
                   st[t].tot += duration[i];
                   st[t].next[st[t].num++] = i;
               }
               sort(st,st + ct);
               vector <int> ans;
               ans.clear();
               for (i = 0;i < ct;i++)
               {
                   for (j = 0;j < st[i].num;j++)
                       ans.push_back(st[i].next[j]);
               }
               return ans;
        }
};

剛開始的時(shí)候,以為這個題目中,一個job可以對應(yīng)于幾個人的情況。。實(shí)在是不應(yīng)該啊。。

 

 

 

===========================================================================================

不是很華麗的分割線。。。

===========================================================================================

DIV1

1 DIV2 500的題目,照例的惡心。。。

2 基于DIV900的那個理論,然后這次是求期望等待時(shí)間,需要分階段來討論。首先是在此人之前的人,其次是具有相同優(yōu)先級的人,再次是這個人的不同工作之間。??傊?,也是一個比較簡單的題目。

vector <double> expectedFinishTimes(vector <int> duration, vector <string> user)
{
    int n = duration.size();
    // Find users and their total durations:
    map<string, long long> userDuration;
    for (int i=0; i<n; i++) {
        userDuration[user[i]]+=duration[i];
    }
    vector<double> res(n);
    for (int i=0; i<n; i++) {
        int eqn = 0;
        double before = 0;
        // For each pair user, total duration:
        //   * count the number of users with the same
        //     total duration (eqn).
        //   * Accumulate the total duration from users
        //     with smaller total duration (before).
        for ( map<string,long long>::iterator it = userDuration.begin();
              it!=userDuration.end(); it++) {

            if (it->second < userDuration[user[i]] ) {
                before += it->second;
            } else if ( it->second == userDuration[user[i]] ) {
                eqn ++;
            }
        }
        // The time this process will have to wait is:
        //  before :
        //      The waiting time caused by users with lower total durations.
        // + (eqn-1) * userDuration[user[i]] / 2.0 :
        //      The expected waiting time caused by users with the same total duration.
        //
        // + (userDuration[user[i]]-duration[i]) / 2.0 :
        //      The expected waiting time caused by jobs from the same user.
        //
        // + duration[i]:
        //      The job's duration
        res[i] = before
                 + (eqn-1) * userDuration[user[i]] / 2.0
                 + (userDuration[user[i]]-duration[i]) / 2.0
                 + duration[i];
    }
    return res;
}
 
3 忘了什么意思了。。有時(shí)間貼出來。
Reference : 參考了SRM 481的解題報(bào)告和 best solution。。。代碼都是大大們寫的。。。學(xué)習(xí)!
 

posted on 2010-09-12 17:41 Sosi 閱讀(286) 評論(0)  編輯 收藏 引用


只有注冊用戶登錄后才能發(fā)表評論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


統(tǒng)計(jì)系統(tǒng)
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产在线视频不卡二| 亚洲自拍偷拍福利| 亚洲精品综合| 欧美人与性动交cc0o| 99在线精品视频| 欧美一区二区福利在线| 国产视频丨精品|在线观看| 久久久久久成人| 91久久久久| 亚洲欧美久久久久一区二区三区| 国产精品久久久久久久电影| 亚洲影视中文字幕| 欧美成人午夜激情在线| 亚洲日本乱码在线观看| 国产精品伦子伦免费视频| 欧美一区亚洲| 亚洲精品一区二区三| 久久国产天堂福利天堂| 亚洲国产乱码最新视频| 欧美精品成人一区二区在线观看| 亚洲一区二区不卡免费| 欧美va亚洲va国产综合| 一区二区三区鲁丝不卡| 红桃视频国产精品| 欧美日韩福利| 久久久久久久久岛国免费| 亚洲精品免费一区二区三区| 久久久久久久久岛国免费| 亚洲精品久久久久中文字幕欢迎你| 国产精品久久久免费| 欧美1区免费| 欧美一区三区二区在线观看| 亚洲人成在线播放网站岛国| 久久久久久97三级| 亚洲午夜未删减在线观看| 亚洲国产成人不卡| 国产欧美一区二区三区视频| 欧美日本中文字幕| 久久亚洲一区二区三区四区| 亚洲女优在线| 9色精品在线| 亚洲福利在线看| 久久久久国内| 欧美一区二区精美| 亚洲午夜久久久| 亚洲国产精品久久久久秋霞影院| 国产日本欧美视频| 国产精品啊v在线| 欧美激情视频给我| 美国三级日本三级久久99| 午夜精品www| 亚洲一区二区视频| 一区二区三区黄色| 亚洲黄一区二区三区| 欧美福利视频网站| 欧美chengren| 蜜桃av一区| 毛片av中文字幕一区二区| 欧美一区二区免费观在线| 亚洲午夜高清视频| 亚洲一区美女视频在线观看免费| 亚洲美女一区| 亚洲精品久久久久| 亚洲美洲欧洲综合国产一区| 亚洲国语精品自产拍在线观看| 在线观看日产精品| 在线日韩中文字幕| 伊人久久综合97精品| 国内精品视频在线观看| 国内外成人在线| 精品成人久久| 亚洲成人资源| 91久久中文| 亚洲美女电影在线| 一本久道久久综合狠狠爱| 一区二区三区精品视频| 一区二区三区四区国产精品| 亚洲视频电影在线| 亚洲欧美视频在线| 欧美专区日韩视频| 卡通动漫国产精品| 欧美国产精品一区| 亚洲欧洲美洲综合色网| 99国产精品久久久久久久久久| 一区二区三区毛片| 亚洲调教视频在线观看| 亚洲欧美另类在线| 久久精品成人一区二区三区蜜臀| 久久久久久香蕉网| 欧美精品一区二区三区在线播放 | 久久综合999| 欧美大片在线影院| 欧美日韩久久精品| 国产精品一卡| 亚洲第一在线| 国产精品99久久久久久久久| 欧美一站二站| 午夜精品剧场| 欧美人与禽猛交乱配视频| 亚洲毛片播放| 亚洲一区二区在线看| 欧美日韩视频专区在线播放 | 伊人激情综合| 欧美资源在线| 裸体一区二区三区| 亚洲午夜电影网| 亚欧美中日韩视频| 久久av一区二区| 美女久久一区| 99精品视频免费观看| 亚洲自拍偷拍色片视频| 久久人人爽人人爽| 欧美午夜电影在线| 黄色免费成人| 亚洲香蕉伊综合在人在线视看| 久久国产成人| 亚洲精品美女91| 欧美综合激情网| 欧美网站大全在线观看| 影音先锋中文字幕一区| 亚洲男女自偷自拍图片另类| 免费成人在线观看视频| 亚洲视频观看| 欧美高清视频一区| 国产主播精品在线| 亚洲一区二区三区激情| 欧美国产日韩一区| 欧美一区二区三区四区在线观看地址| 欧美激情精品久久久| 国产主播在线一区| 午夜精品国产精品大乳美女| 亚洲第一黄网| 久久久亚洲欧洲日产国码αv | 99re6这里只有精品| 久久精品国产亚洲aⅴ| 一区二区三区产品免费精品久久75| 久久九九全国免费精品观看| 欧美午夜视频在线| 亚洲欧洲日本mm| 欧美不卡视频一区发布| 午夜一区不卡| 国产精品爱啪在线线免费观看| 亚洲黄色免费网站| 美女诱惑黄网站一区| 欧美一区二区三区免费观看| 国产精品xvideos88| 一本色道久久综合亚洲精品婷婷| 欧美国产日韩xxxxx| 久久久久久9| 国产中文一区| 久久免费国产| 午夜视频久久久| 国产精品日日摸夜夜摸av| 亚洲午夜久久久久久久久电影网| 91久久夜色精品国产九色| 久久综合给合| 亚洲高清毛片| 能在线观看的日韩av| 久久亚洲综合网| 亚洲国产色一区| 欧美激情在线观看| 蜜桃av综合| 亚洲精选在线观看| 亚洲精品日本| 欧美日韩精品免费观看视频完整 | 亚洲一区日韩在线| 国产精品乱人伦一区二区| 亚洲女人天堂成人av在线| 亚洲午夜羞羞片| 国产精品一区在线播放| 欧美专区在线播放| 久久精品一区| 亚洲国产综合91精品麻豆| 亚洲国内精品| 欧美色精品天天在线观看视频 | 亚洲欧美日韩国产| 亚洲欧美国产高清| 国产在线视频不卡二| 免费观看久久久4p| 麻豆精品在线播放| 亚洲精品久久久久久久久| 亚洲日韩中文字幕在线播放| 欧美国产日韩一区二区在线观看| 亚洲三级免费电影| 一区二区免费在线播放| 国产精品国产三级国产专区53 | 中文国产亚洲喷潮| 国产精品美女久久久久久2018| 欧美怡红院视频| 巨胸喷奶水www久久久免费动漫| 在线观看一区视频| 日韩一区二区免费看| 国产精品毛片在线看| 久久九九国产精品怡红院| 美玉足脚交一区二区三区图片| 亚洲国产综合在线看不卡| 一区二区三区四区五区在线| 国产一区二区三区直播精品电影 | 欧美日韩在线第一页| 欧美在线精品免播放器视频|