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

為生存而奔跑

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

留言簿(5)

我參與的團隊

搜索

  •  

積分與排名

  • 積分 - 331751
  • 排名 - 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>
            久久香蕉国产线看观看网| 亚洲国产免费| 国产精品日韩在线播放| 久久躁日日躁aaaaxxxx| 午夜精品久久久久久久蜜桃app| 久久久久国产精品一区三寸| 在线激情影院一区| 亚洲欧洲日夜超级视频| 蜜臀久久99精品久久久画质超高清| 亚洲一区二区精品视频| 一二美女精品欧洲| 午夜在线电影亚洲一区| 亚洲影音一区| 亚洲欧美亚洲| 久久精品五月婷婷| 免费在线观看成人av| 亚洲人成网站影音先锋播放| 亚洲毛片播放| 性做久久久久久久久| 亚洲免费在线精品一区| 欧美国产精品日韩| 欧美精品在线视频| 欧美视频中文一区二区三区在线观看| 欧美理论电影在线播放| 国产午夜精品视频免费不卡69堂| 亚洲破处大片| 久久精彩视频| 久久一区精品| 9久re热视频在线精品| 午夜日韩在线| 亚洲精品视频免费在线观看| 一区二区三区成人精品| 中文一区在线| 欧美黄色视屏| 亚洲二区视频| 亚洲视频一区在线观看| 亚洲伦伦在线| 日韩视频永久免费观看| 中文精品视频一区二区在线观看| 午夜日韩在线| 亚洲激情亚洲| 亚洲精品女av网站| 亚洲免费观看高清在线观看 | 亚洲日本欧美日韩高观看| 久久最新视频| 亚洲激情成人| 久久久久五月天| 亚洲影院一区| 亚洲福利久久| 亚洲靠逼com| 欧美国产日韩一区| 激情久久久久久久久久久久久久久久 | 99热这里只有成人精品国产| 久久国产手机看片| 久久精品国产精品 | 国产精品电影网站| 亚洲国产欧美精品| 亚洲男人影院| 亚洲精品黄网在线观看| 国产精品亚洲一区二区三区在线| 1024精品一区二区三区| 香蕉久久夜色精品国产| 一区二区三区日韩精品视频| 久久不射2019中文字幕| 蜜臀av在线播放一区二区三区| 日韩午夜一区| 雨宫琴音一区二区在线| 狠狠久久综合婷婷不卡| 久久婷婷色综合| 欧美极品色图| 欧美一级淫片播放口| 久久精品国产清自在天天线| 亚洲黄色天堂| 一本色道久久综合| 国产午夜亚洲精品羞羞网站| 欧美电影免费观看高清完整版| 欧美成人中文字幕| 午夜精品一区二区三区四区| 美乳少妇欧美精品| 香蕉精品999视频一区二区| 久久夜色精品| 午夜精品久久久久| 葵司免费一区二区三区四区五区| 亚洲天堂久久| 欧美日韩国产精品专区| 欧美成人官网二区| 狠狠色综合一区二区| 一区二区电影免费在线观看| 亚洲成人中文| 久久久成人网| 狂野欧美一区| 欧美日韩国产三级| 久久一区免费| 亚洲国产裸拍裸体视频在线观看乱了 | 1204国产成人精品视频| 亚洲一区二区三区四区视频 | 亚洲精品美女免费| 久久国产精品久久久| 女人香蕉久久**毛片精品| 亚洲美女毛片| 国产综合色产| 国产日韩在线播放| 欧美三级视频在线播放| 狂野欧美性猛交xxxx巴西| 性色av一区二区三区红粉影视| 欧美激情在线免费观看| 美女尤物久久精品| 美脚丝袜一区二区三区在线观看| 久久精品1区| 久久成人免费| 欧美精品久久99久久在免费线| 亚洲福利在线看| 久久精品亚洲精品| 麻豆成人精品| 亚洲综合日韩在线| 国产精品一区久久| 欧美国产日韩一区二区在线观看| 亚洲精品一区二区三区樱花| 午夜精品久久久久久| 狠狠狠色丁香婷婷综合久久五月| 欧美大片在线观看一区| 亚洲欧美中文在线视频| 欧美不卡三区| 亚洲一区二区在线| 日韩一区二区精品| 国内成人精品视频| 国产精品资源在线观看| 国产精品毛片va一区二区三区| 国产精品毛片大码女人| 国产免费观看久久黄| 欧美精品久久天天躁| 老**午夜毛片一区二区三区| 久久精品欧美| 国产精品久久久久久久久久免费| 久久久久**毛片大全| 先锋影音国产一区| 亚洲理伦在线| 在线综合亚洲欧美在线视频| 久久先锋资源| 最新国产の精品合集bt伙计| 亚洲第一福利在线观看| 一区二区国产精品| 国内一区二区在线视频观看| 老**午夜毛片一区二区三区| 亚洲美女免费视频| 国际精品欧美精品| 久久免费国产精品| 久久人人精品| 久久免费精品日本久久中文字幕| 国内精品久久久久久| 免费成人高清视频| 欧美极品在线视频| 欧美三区在线视频| 又紧又大又爽精品一区二区| 亚洲国内在线| 午夜精品一区二区三区在线播放| 久久成人免费日本黄色| 91久久精品国产91久久性色tv| 亚洲国语精品自产拍在线观看| 日韩亚洲欧美在线观看| 亚洲一二三区在线观看| 玖玖玖免费嫩草在线影院一区| 亚洲激情校园春色| 久久综合狠狠综合久久激情| 欧美日韩成人一区二区三区| 国产一区二区在线观看免费播放| 一区二区不卡在线视频 午夜欧美不卡在| 欧美尤物巨大精品爽| 一本一本a久久| 欧美一级理论性理论a| 欧美日本中文| aa级大片欧美| 亚洲精品免费一区二区三区| 免费在线欧美黄色| 日韩视频永久免费| 久久国产色av| 亚洲女人av| 欧美不卡视频一区| 欧美日韩在线高清| 亚洲综合日韩在线| 亚洲一区二区三区高清不卡| 国产精品一区二区三区免费观看| 亚洲女女女同性video| 欧美与黑人午夜性猛交久久久| 国产一级揄自揄精品视频| 久久久久久久久一区二区| 久久国产精品久久久久久电车| 国产日韩视频一区二区三区| 欧美在线国产| 蜜臀av一级做a爰片久久 | 欧美伊人精品成人久久综合97 | 一区在线视频| 欧美激情国产日韩| 国产精品视频99| 牛牛精品成人免费视频| 国产精品毛片高清在线完整版| 久久综合精品一区| 国产精品无码永久免费888| 亚洲高清免费在线| 在线欧美三区|