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

為生存而奔跑

   :: 首頁 :: 聯系 :: 聚合  :: 管理
  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>
            亚洲人成人一区二区三区| 久久九九免费| 亚洲国产美国国产综合一区二区| 久久青青草原一区二区| 欧美视频四区| 亚洲成色777777女色窝| 午夜精品一区二区三区四区| 亚洲高清视频一区| 久久久999国产| 欧美激情亚洲激情| 亚洲电影av在线| 久久久久久夜精品精品免费| 亚洲视频在线播放| 99精品热视频只有精品10| 亚洲国产成人精品久久久国产成人一区 | 久久精品99国产精品| 亚洲一级黄色片| 在线观看91精品国产入口| 六月丁香综合| 欧美日韩成人在线| 欧美在线国产| 蜜桃av噜噜一区二区三区| 宅男精品视频| 欧美国产日本在线| 欧美成人精品| 国产日韩视频| 亚洲狠狠丁香婷婷综合久久久| 国产精品男女猛烈高潮激情| 亚洲国产精品一区| 亚洲黑丝在线| 老司机免费视频一区二区| 欧美一区二区三区在线观看视频| 欧美激情精品久久久久久黑人| 久久嫩草精品久久久精品| 国产女人水真多18毛片18精品视频| 欧美国产日本高清在线| 国模吧视频一区| 久久国产99| 久久综合色天天久久综合图片| 国产综合久久| 美玉足脚交一区二区三区图片| 欧美激情精品| 亚洲人精品午夜| 欧美阿v一级看视频| 开心色5月久久精品| 国产综合色在线视频区| 久久亚洲精品一区二区| 欧美国产激情| 亚洲女ⅴideoshd黑人| 国产麻豆日韩欧美久久| 亚洲伊人第一页| 免费观看欧美在线视频的网站| 亚洲电影免费观看高清完整版在线观看 | 亚洲女同在线| 久久久久久亚洲综合影院红桃| 狠狠色狠狠色综合| 欧美日韩国产成人| 欧美在线免费播放| 亚洲美女性视频| 久久夜色精品国产欧美乱| 一区二区日韩免费看| 欧美激情在线| 久久午夜羞羞影院免费观看| 一区二区三区欧美在线| 欧美国产激情二区三区| 免费一级欧美片在线播放| 性欧美xxxx大乳国产app| 夜夜爽夜夜爽精品视频| 亚洲欧洲一区二区三区久久| 另类激情亚洲| 蜜臀久久99精品久久久久久9 | 鲁鲁狠狠狠7777一区二区| av不卡在线| 亚洲国产精品视频一区| 国产精品日韩| 欧美精品在线观看播放| 久久精品免费电影| 亚洲一区二区黄| 夜色激情一区二区| 一区二区三区免费网站| 狠狠干狠狠久久| 国产伦精品一区二区| 国产精品久久久久久久浪潮网站| 欧美日韩一区二区视频在线| 欧美日韩成人综合在线一区二区| 欧美久久视频| 国产精品久久久久久久久借妻 | aa国产精品| 在线视频亚洲| 午夜日韩在线| 久久国产精品高清| 久久精品一区二区三区四区| 久久久亚洲精品一区二区三区 | 久久精品官网| 欧美国产日产韩国视频| 国产精品久久久久国产精品日日| 国产精品国产三级欧美二区| 国产色爱av资源综合区| 亚洲人成在线观看网站高清| 在线视频日韩精品| 久久大逼视频| 亚洲国产欧美国产综合一区| 亚洲午夜久久久久久久久电影院 | 亚洲神马久久| 久久精品人人做人人爽| 蜜桃av综合| 亚洲欧美经典视频| 欧美日韩午夜剧场| 最新国产乱人伦偷精品免费网站 | 老司机亚洲精品| 国产日韩欧美三级| 亚洲经典在线| 欧美a级大片| 久久精品官网| 国产日韩亚洲| 久久国产一区二区| 亚洲综合三区| 国产精品久久久久av免费| 日韩午夜一区| 欧美福利在线| 麻豆乱码国产一区二区三区| 狠狠色噜噜狠狠狠狠色吗综合| 亚洲一级二级| 亚洲一区二区三区四区视频| 国产精品久久久久久久久免费桃花| 亚洲国产毛片完整版| 亚洲国产精品第一区二区三区| 久久久另类综合| 在线观看欧美精品| 免费在线日韩av| 久久久久久夜| 亚洲理伦在线| 在线中文字幕日韩| 国内自拍一区| 亚洲成色精品| 国产精品免费看| 美女精品在线| 亚洲国产精选| 夜夜夜久久久| 影音欧美亚洲| 一区二区三欧美| 好吊色欧美一区二区三区四区| 狠狠色丁香久久婷婷综合丁香| 久久久久久久成人| 国产私拍一区| 亚洲片在线资源| 韩国成人福利片在线播放| 中文精品视频| 亚洲国产你懂的| 亚洲欧美一区二区三区在线| 在线视频观看日韩| 亚洲国产1区| 欧美一区二区三区四区在线| 亚洲国产综合视频在线观看| 亚洲欧美在线一区二区| 久久gogo国模裸体人体| 中文高清一区| 欧美精品在线播放| 欧美激情一二区| 狠狠综合久久av一区二区小说| 亚洲私人影吧| 性欧美18~19sex高清播放| 欧美肥婆在线| 亚洲二区在线| 在线视频精品一区| 国产精品区一区| 欧美一区二区三区四区高清| 久久精品亚洲热| 在线日韩欧美视频| 欧美黄色一区| 一个色综合导航| 麻豆91精品| 亚洲男女自偷自拍| 亚洲电影下载| 亚洲人成精品久久久久| 午夜日韩在线| 久久欧美中文字幕| 在线观看欧美激情| 久久精品国产99国产精品澳门| 欧美在线观看视频一区二区三区| 国产精品视频久久久| 欧美在线你懂的| 久久久久久久久久久久久久一区| 在线电影一区| 国产日韩欧美在线视频观看| 美女啪啪无遮挡免费久久网站| 亚洲精品一区中文| 久热国产精品| 亚洲理论在线| 国产一区二区中文字幕免费看| 午夜日韩在线观看| 国产欧美日韩亚洲精品| 久久影音先锋| 亚洲欧美日韩国产综合精品二区 | 久久深夜福利| 亚洲欧美日韩天堂一区二区| 亚洲国产小视频| 尤物在线观看一区| 激情成人亚洲| 国产精品xxx在线观看www|