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

為生存而奔跑

   :: 首頁 :: 聯系 :: 聚合  :: 管理
  271 Posts :: 0 Stories :: 58 Comments :: 0 Trackbacks

留言簿(5)

我參與的團隊

搜索

  •  

積分與排名

  • 積分 - 331736
  • 排名 - 74

最新評論

閱讀排行榜

評論排行榜

SRM 144 DIV1 550

Problem Statement

    

In most states, gamblers can choose from a wide variety of different lottery games. The rules of a lottery are defined by two integers (choices and blanks) and two boolean variables (sorted and unique). choices represents the highest valid number that you may use on your lottery ticket. (All integers between 1 and choices, inclusive, are valid and can appear on your ticket.) blanks represents the number of spots on your ticket where numbers can be written.

The sorted and unique variables indicate restrictions on the tickets you can create. If sorted is set to true, then the numbers on your ticket must be written in non-descending order. If sorted is set to false, then the numbers may be written in any order. Likewise, if unique is set to true, then each number you write on your ticket must be distinct. If unique is set to false, then repeats are allowed.

Here are some example lottery tickets, where choices = 15 and blanks = 4:

  • {3, 7, 12, 14} -- this ticket is unconditionally valid.
  • {13, 4, 1, 9} -- because the numbers are not in nondescending order, this ticket is valid only if sorted = false.
  • {8, 8, 8, 15} -- because there are repeated numbers, this ticket is valid only if unique = false.
  • {11, 6, 2, 6} -- this ticket is valid only if sorted = false and unique = false.

Given a list of lotteries and their corresponding rules, return a list of lottery names sorted by how easy they are to win. The probability that you will win a lottery is equal to (1 / (number of valid lottery tickets for that game)). The easiest lottery to win should appear at the front of the list. Ties should be broken alphabetically (see example 1).

Definition

    
Class: Lottery
Method: sortByOdds
Parameters: vector <string>
Returns: vector <string>
Method signature: vector <string> sortByOdds(vector <string> rules)
(be sure your method is public)
    

Constraints

- rules will contain between 0 and 50 elements, inclusive.
- Each element of rules will contain between 11 and 50 characters, inclusive.
- Each element of rules will be in the format "<NAME>:_<CHOICES>_<BLANKS>_<SORTED>_<UNIQUE>" (quotes for clarity). The underscore character represents exactly one space. The string will have no leading or trailing spaces.
- <NAME> will contain between 1 and 40 characters, inclusive, and will consist of only uppercase letters ('A'-'Z') and spaces (' '), with no leading or trailing spaces.
- <CHOICES> will be an integer between 10 and 100, inclusive, with no leading zeroes.
- <BLANKS> will be an integer between 1 and 8, inclusive, with no leading zeroes.
- <SORTED> will be either 'T' (true) or 'F' (false).
- <UNIQUE> will be either 'T' (true) or 'F' (false).
- No two elements in rules will have the same name.

主要是運用了排列組合的知識,其中,最難的是,從n個數中找出m個數,要求這m個數必須是排好序的,并且可以重復,可以把它轉化為從n+m-1個數中選出m個數,且是排好序的,答案就是C(n+m-1,m)
// BEGIN CUT HERE

// END CUT HERE
#line 5 "Lottery.cpp"
#include 
<algorithm>
#include 
<vector>
#include 
<string>
#include 
<iostream>
#include 
<math.h>
#include 
<sstream>
using namespace std;
typedef 
long long int64;
class TICKET
{
public:
    
string name;
    int64 rate;
}
;
bool operator < (const TICKET & t1,const TICKET & t2)
{
    
if(t1.rate!=t2.rate)
        
return t1.rate<t2.rate;
    
else return t1.name<t2.name;
}

vector
<TICKET>tickets;
class Lottery
{
private:
    
int choices,blanks;    
    
bool sorted,unique;

public:
    vector 
<string> sortByOdds(vector <string> rules)
    
{
        vector
<string>::iterator it;
        
for(it=rules.begin();it!=rules.end();it++)
        
{
            TICKET ticket;
            ticket.name
=split(*it);
            ticket.rate
=process();
            tickets.push_back(ticket);
        }

        sort(tickets.begin(),tickets.end());
        vector
<string> ans;
        
for(vector<TICKET>::iterator it=tickets.begin();it!=tickets.end();it++)
            ans.push_back(it
->name);
        
return ans;
    }


    
string split(string rule)
    
{
        
string::size_type pos,pos2;
        pos 
= rule.find_first_of(':');
        
string name=rule.substr(0,pos);

        
char ch1,ch2;
        istringstream ist(rule.substr(pos
+2,rule.size()));
        ist
>>choices>>blanks>>ch1>>ch2;
        sorted
=(ch1=='T'?1:0);
        unique
=(ch2=='T'?1:0);
        
//pos+=2; //去掉一個空格

        
//pos2 = rule.find_first_of(' ',pos);
        
//choices=0;
        
//for(string::size_type i=pos;i<pos2;i++)
        
//    choices=choices*10+(rule[i]-'0');
        
//
        
//pos2++;
        
//blanks=rule[pos2]-'0';

        
//pos2+=2;
        
//sorted = (rule[pos2]=='T'?1:0);

        
//pos2+=2;
        
//unique = (rule[pos2]=='T'?1:0);

        
return name;
    }


    int64 process()
    
{
        
if(sorted && unique)
            
return C(choices,blanks);
        
else if(!sorted && !unique)
            
return pow((double)choices,blanks);
        
else if(!sorted && unique)
            
return A(choices,blanks);
        
else
        
{
            
return C(choices-1+blanks,blanks);
        }

    }


    int64 A(
int m,int n)
    
{
        int64 res
=1;
        
for(int i=m;i>=m-n+1;i--)
            res
*=i;
        
return res;
    }


    int64 C(
int m,int n)
    
{
        
//return A(m,n)/A(n,n);
        int64 res=1;
        
for(int i=m;i>=m-n+1;i--)
            res
*=i;
        
for(int i=2;i<=n;i++)
            res
/=i;
        
return res;
    }

}
;
// BEGIN CUT HERE
int main()
{
    Lottery test;
    
string Arr0[] = {"INDIGO: 93 8 T F",
                     
"ORANGE: 29 8 F T",
                     
"VIOLET: 76 6 F F",
                     
"BLUE: 100 8 T T",
                     
"RED: 99 8 T T",
                     
"GREEN: 78 6 F T",
                     
"YELLOW: 75 6 F F"}
;
    vector 
<string> Arg0(Arr0, Arr0 + (sizeof(Arr0) / sizeof(Arr0[0]))); 
    vector
<string> ans = test.sortByOdds(Arg0);
    
for(vector<string>::iterator it=ans.begin();it!=ans.end();it++)
    cout
<<*it<<endl;
    
return 0;
}

// END CUT HERE

posted on 2009-08-13 12:41 baby-fly 閱讀(567) 評論(0)  編輯 收藏 引用 所屬分類: TopCoder

只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲欧美资源在线| 欧美日韩精品免费观看| 亚洲欧美日韩视频二区| 久久精品视频在线看| 男女视频一区二区| 国产精品视频福利| 亚洲久久成人| 久久一二三国产| 一区二区三区欧美激情| 久久综合精品一区| 国产日韩欧美一区二区三区在线观看| 好看的亚洲午夜视频在线| 亚洲男人的天堂在线| 欧美大香线蕉线伊人久久国产精品| 一区电影在线观看| 亚洲一区二区三区精品动漫| 欧美国产日韩亚洲一区| 激情综合色丁香一区二区| 午夜精品视频网站| 一区二区成人精品| 欧美日韩国产区一| 日韩一区二区精品视频| 欧美激情第4页| 蜜臀久久99精品久久久久久9| 国产精品一区二区男女羞羞无遮挡 | 中文av一区特黄| 欧美波霸影院| 蜜乳av另类精品一区二区| 亚洲毛片av| 欧美成人一区二免费视频软件| 极品尤物一区二区三区| 久久亚洲不卡| 亚洲欧美激情视频在线观看一区二区三区| 欧美日韩免费看| 一区二区三区精品国产| 亚洲人成7777| 欧美一区二区三区久久精品茉莉花 | 欧美日本韩国| 亚洲精品综合在线| 亚洲国产高清aⅴ视频| 久久精品视频免费| 在线免费精品视频| 亚洲第一在线视频| 欧美伦理视频网站| 亚洲女ⅴideoshd黑人| 亚洲自拍三区| 狠狠色狠狠色综合日日小说| 欧美一区二区日韩| 欧美一区二区三区四区高清| 国产一区二区三区最好精华液| 久久伊人精品天天| 麻豆91精品| 夜夜嗨av一区二区三区免费区| 99视频日韩| 欧美激情视频免费观看| 欧美日韩国产在线播放网站| 午夜在线成人av| 欧美 日韩 国产 一区| 亚洲欧美日韩国产一区二区三区| 欧美主播一区二区三区| 一本不卡影院| 久久久精品视频成人| 亚洲图片欧洲图片av| 久久九九热免费视频| 亚洲影视在线播放| 欧美激情偷拍| 免费人成精品欧美精品| 国产精品推荐精品| 亚洲美女网站| 亚洲激情黄色| 久久久精品国产99久久精品芒果| 亚洲一区二区三区精品视频| 欧美mv日韩mv亚洲| 免费一级欧美在线大片| 国产欧美亚洲一区| 亚洲另类在线视频| 亚洲黄色精品| 久久男人资源视频| 久久黄色网页| 国产精品乱码一区二区三区| 亚洲精品字幕| 亚洲精品久久久久久一区二区 | 欧美精品激情| 欧美插天视频在线播放| 久久久一本精品99久久精品66| 国产精品久久99| 欧美激情视频在线播放| 韩国三级在线一区| 久久成年人视频| 久久精品一区二区国产| 国产欧美一区二区三区久久人妖| 一区二区三区四区国产精品| 国产精品99久久久久久白浆小说| 欧美精品大片| 亚洲人成网站色ww在线| 亚洲理伦在线| 欧美欧美午夜aⅴ在线观看| 亚洲韩国精品一区| 99v久久综合狠狠综合久久| 欧美激情第二页| 亚洲国产精品久久久久秋霞蜜臀| 91久久精品一区二区三区| 欧美护士18xxxxhd| 亚洲麻豆av| 欧美在线精品一区| 国产香蕉久久精品综合网| 欧美在线日韩| 牛牛国产精品| 亚洲裸体俱乐部裸体舞表演av| 欧美精品一区在线发布| 一区二区三区国产盗摄| 校园春色国产精品| 国语精品中文字幕| 欧美成va人片在线观看| 亚洲免费观看高清在线观看| 亚洲一区精品在线| 国产小视频国产精品| 免费成人高清| 一区二区电影免费在线观看| 欧美在线电影| 亚洲第一区在线观看| 欧美激情在线免费观看| 国产精品99久久久久久白浆小说| 久久大逼视频| 亚洲精品小视频在线观看| 欧美亚洲不卡| 久久网站热最新地址| 9色精品在线| 久久蜜桃av一区精品变态类天堂| 亚洲欧洲日夜超级视频| 国产精品美女xx| 久久中文字幕导航| 亚洲午夜激情| 欧美国产一区二区在线观看| 亚洲欧美不卡| 在线观看视频免费一区二区三区| 欧美日韩少妇| 久久蜜臀精品av| 亚洲作爱视频| 美日韩精品视频| 性久久久久久久久久久久| 亚洲夫妻自拍| 国产精品一区二区三区四区五区| 麻豆九一精品爱看视频在线观看免费 | 欧美成人四级电影| 亚洲一区二区三区四区视频| 极品尤物av久久免费看| 欧美天堂在线观看| 男女精品网站| 午夜影院日韩| 亚洲精品之草原avav久久| 女女同性女同一区二区三区91| 午夜精品视频| 一区二区激情| 亚洲高清自拍| 久久伊人亚洲| 亚洲一区3d动漫同人无遮挡| 国产欧美日韩亚洲精品| 欧美激情亚洲国产| 久久久久久尹人网香蕉| 亚洲图片欧美午夜| 91久久亚洲| 亚洲成色最大综合在线| 另类天堂av| 久久久天天操| 久久久.com| 欧美自拍偷拍午夜视频| 欧美亚洲视频在线看网址| 亚洲色图在线视频| 99视频+国产日韩欧美| 亚洲国产精品悠悠久久琪琪| 韩国三级在线一区| 国产亚洲精品久久久久动| 国产精品自拍网站| 欧美亚州一区二区三区| 国产精品国产一区二区| 国产精品乱码久久久久久| 国产精品久久久久国产精品日日| 欧美吻胸吃奶大尺度电影| 国产精品第13页| 国产伦精品一区二区三区视频黑人| 国产精品高潮呻吟久久av黑人 | 亚洲男人影院| 亚洲女同精品视频| 亚洲欧美视频在线观看| 午夜精品一区二区三区四区| 午夜电影亚洲| 久久精品一区二区三区不卡牛牛| 久久久久高清| 欧美成人一区二区在线| 亚洲激情在线| 日韩一级欧洲| 亚洲一区二区不卡免费| 亚洲一区二区欧美| 久久国产精彩视频| 美女精品在线观看| 欧美日韩国产成人在线| 国产精品一国产精品k频道56| 国产日韩欧美a| 亚洲电影下载|