ÉèΪÊ×Ò³ ¼ÓÈëÊÕ²Ø

TOP

¶þ½øÖÆÎ»×îºó³öÏÖ1µÄ¸ÅÂÊ
2013-12-05 13:05:48 À´Ô´: ×÷Õß: ¡¾´ó ÖРС¡¿ ä¯ÀÀ:116´Î
Tags£º¶þ½øÖÆÎ» ×îºó ³öÏÖ ¸ÅÂÊ
    ˼·£ºÃ¿¸öÊýÈ¡ËûµÄ¶þ½øÖÆÎ»£¬¶ÔÓÚÿһ룬ÎÒÃÇÇóËû×îºó³öÏÖ1µÄ¸ÅÂÊ£¬ÄÇô×îºóµÄÆÚÍû¾ÍÊÇΪ1µÄ¸ÅÂʳËÒÔ¸ÃλµÄÊ®½øÖÆÊý£¬ÀÛ¼Ó¼´¿É¡£
    Ï뵽״ѹ¾ÍÊÇË®Ìâ¡­
    #include <iostream>
    #include <cstdio>
    #include <algorithm>
    #include <string>
    #include <cmath>
    #include <cstring>
    #include <queue>
    #include <set>
    #include <vector>
    #include <stack>
    #include <map>
    #include <iomanip>
    #define PI acos£¨-1.0£©
    #define Max 2505
    #define inf 0x7fffffff
    #define LL£¨x£© £¨ x ¡¶ 1 £©
    #define RR£¨x£© £¨ x ¡¶ 1 | 1 £©
    #define REP£¨i,s,t£© for£¨ int i = £¨ s £© ; i <= £¨ t £© ; ++ i £©
    #define ll long long
    #define mem£¨a,b£© memset£¨a,b,sizeof£¨a£©£©
    #define mp£¨a,b£© make_pair£¨a,b£©
    #define PII pair<int,int>
    #define bug puts£¨"here"£©
    using namespace std;
    #define N 222
    double dp[22][N] ;//µÚiλµÚj¸öÊýÊÇkµÄ¸ÅÂÊ¡£
    int a[N] ;
    char b[N] ;
    double p[N] ;
    int n ;
    int main£¨£© {
    int ca = 0 ;
    while£¨cin ¡· n£©{
    for £¨int i = 0 ; i <= n ; i ++ £©{
    scanf£¨"%d",&a[i]£© ;
    }
    for £¨int i = 1 ; i <= n ; i ++ £©{
    cin ¡· b[i] ;
    }
    for £¨int i = 1 ; i <= n ; i ++ £©{
    cin ¡· p[i] ;
    }
    for £¨int i = 0 ; i <= n ; i ++ £©{
    for £¨int j = 0 ; j <= 20 ; j++ £©{
    for £¨int k = 0 ;k < 2 ; k ++ £©
    dp[j][i][k] = 0 ;
    }
    }
    double ans = 0 ;
    for £¨int i = 0 ; i <= 20 ; i ++ £©{
    if£¨a[0] & £¨1 ¡¶ i£©£©
    dp[i][0] = 1 ;
    else dp[i][0][0] = 1 ;
    for £¨int j = 1 ; j <= n ; j ++ £©{
    dp[i][j] = dp[i][j - 1] * p[j] ;//¸Ãλ²»È¡
    dp[i][j][0] = dp[i][j - 1][0] * p[j] ;//¸Ãλ²»È¡
    if£¨a[j] & £¨1 ¡¶ i£©£©{//È¡¸Ãλ
    if£¨b[j] == '&'£©{
    dp[i][j] += dp[i][j - 1] * £¨1 - p[j]£© ;
    dp[i][j][0] += dp[i][j - 1][0] * £¨1 - p[j]£© ;
    }
    else if£¨b[j] == '|'£©{
    dp[i][j] += dp[i][j - 1] * £¨1 - p[j]£© ;
    dp[i][j] += dp[i][j - 1][0] * £¨1 - p[j]£© ;
    }
    else {
    dp[i][j] += dp[i][j - 1][0] * £¨1 - p[j]£© ;
    dp[i][j][0] += dp[i][j - 1] * £¨1 - p[j]£© ;
    }
    }
    else {//ͬÀí
    if£¨b[j] == '&'£©{
    dp[i][j][0] += dp[i][j - 1] * £¨1 - p[j]£© ;
    dp[i][j][0] += dp[i][j - 1][0] * £¨1 - p[j]£© ;
    }
    else if£¨b[j] == '|'£©{
    dp[i][j] += dp[i][j - 1] * £¨1 - p[j]£© ;
    dp[i][j][0] += dp[i][j - 1][0] * £¨1 - p[j]£© ;
    }
    else {
    dp[i][j][0] += dp[i][j - 1][0] * £¨1 - p[j]£© ;
    dp[i][j] += dp[i][j - 1] * £¨1 - p[j]£© ;
    }
    }
    }
    ans += £¨1 ¡¶ i£© * dp[i][n] ;
    }
    printf£¨"Case %d:\n%.6f\n",++ca ,ans£© ;
    }
    return 0 ;
    }

¡¾´ó ÖРС¡¿¡¾´òÓ¡¡¿ ¡¾·±Ìå¡¿¡¾Í¶¸å¡¿¡¾Êղء¿ ¡¾ÍƼö¡¿¡¾¾Ù±¨¡¿¡¾ÆÀÂÛ¡¿ ¡¾¹Ø±Õ¡¿ ¡¾·µ»Ø¶¥²¿¡¿
·ÖÏíµ½: 
ÉÏһƪ£º¶þ²æÊ÷¸ß¶ÈµÄƽºâ±ê×¼ ÏÂһƪ£º¹ØÓÚ״ѹDPµÄÒ»µÀÌâ

ÆÀÂÛ

ÕÊ¡¡¡¡ºÅ: ÃÜÂë: (ÐÂÓû§×¢²á)
Ñé Ö¤ Âë:
±í¡¡¡¡Çé:
ÄÚ¡¡¡¡ÈÝ:

¡¤Linuxϵͳ¼ò½é (2025-12-25 21:55:25)
¡¤Linux°²×°MySQL¹ý³Ì (2025-12-25 21:55:22)
¡¤Linuxϵͳ°²×°½Ì³Ì£¨ (2025-12-25 21:55:20)
¡¤HTTP Åc HTTPS µÄ²î„ (2025-12-25 21:19:45)
¡¤ÍøÕ¾°²È«±ØÐ޿ΣºÍ¼ (2025-12-25 21:19:42)