标签:
Description
Input
Output
Sample Input
Sample Output
#include<cstdio> #include <iostream> #include<cstring> using namespace std; int money[101] , nkind , sum ; float pro[101] , npro , fine[11100]; int main () { int cas,i, j ; scanf ( "%d" , &cas ) ;//案例数 while ( cas -- ) { sum = 0 ; scanf ( "%f%d" , &npro , &nkind ) ;//最高的概率数,和银行数 for ( i = 0 ; i < nkind ; i ++ ) { scanf ( "%d%f" , money+i, pro+i ) ;//银行钱数和被抓的概率数 sum += money[i] ; } memset( fine , 0 , sizeof (fine) ) ; fine[0] = 1 ; //背包中的钱为0时,是最安全的,所以安全概率为1 float p = 1 - npro ;//最低安全概率 for ( i = 0 ; i < nkind ; i ++ )//银行数 { for ( j = sum ; j >= money[i] ; j -- )// if ( fine[j] < fine[j-money[i]]*(1-pro[i]) )//抢到j元钱的安全概率为fine[j] { fine[j] = fine[j-money[i]]*(1-pro[i]) ; } } for ( i = sum ; i >= 0 ; i -- ) if ( fine[i] >= p )//安全的概率大于等于被抓的最低概率时 { printf ( "%d\n" , i ) ; break ; } } return 0 ; }
标签:
原文地址:http://www.cnblogs.com/xinxiangqing/p/4725520.html