hdu 1864 最大报销额 dp
2015-07-24 21:39
309 查看
题意略。把数据处理出来就是个裸背包。p:RE要注意把数组开到3000500左右即可。
#include <map> #include <set> #include <queue> #include <stack> #include <cmath> #include <time.h> #include <vector> #include <cstdio> #include <string> #include <iomanip> ///cout << fixed << setprecision(13) << (double) x << endl; #include <cstdlib> #include <cstring> #include <iostream> #include <algorithm> using namespace std; #define lson l, mid, rt << 1 #define rson mid + 1, r, rt << 1 | 1 #define ls rt << 1 #define rs rt << 1 | 1 #define pi acos(-1.0) #define eps 1e-8 #define Mp(a, b) make_pair(a, b) #define asd puts("asdasdasdasdasdf"); typedef long long ll; //typedef __int64 LL; const int inf = 0x3f3f3f3f; const int N = 3000050; const ll mod = 1e9+7; int dp ; int v , w ; double Q; int q, n; int main() { while( ~scanf("%lf%d", &Q, &n ) && n ) { q = (int) (Q*100); int cnt = 0; for( int i = 1, m; i <= n; ++i ) { char tp; double sum = 0, tmp; double sum1 = 0, sum2 = 0, sum3 = 0; bool OK = 1; scanf("%d", &m); getchar(); for( int j = 1; j <= m; ++j ) { scanf("%c%*c%lf", &tp, &tmp ); getchar(); if( !OK ) continue; if( tp != 'A' && tp != 'B' && tp != 'C' ) { OK = 0; continue; } else if( tp == 'A' ) sum1 += tmp; else if( tp == 'B' ) sum2 += tmp; else if( tp == 'C' ) sum3 += tmp; sum += tmp; if( sum > 1000 || sum1 > 600 || sum2 > 600 || sum3 > 600 ) OK = 0; } if( OK ) { w[++cnt] = (int) ( sum * 100 ); v[cnt] = w[cnt]; } } memset( dp, 0, sizeof( dp ) ); for( int i = 1; i <= cnt; ++i ) { for( int j = q; j >= v[i]; --j ) { dp[j] = max( dp[j], dp[j-v[i]] + w[i] ); } } int ans = 0; for( int i = 1; i <= q; ++i ) ans = max( ans, dp[i] ); printf("%.02f\n", (double)ans / 100.0); } return 0; }
相关文章推荐
- org.springframework.web.util.NestedServletException:
- Matlab 高斯分布 均匀分布 以及其他分布 的随机数
- LeetCode Binary Tree Preorder Traversal 先根遍历
- 7_24_heml_美食网设计_3_完整稿
- [LeetCode]Reverse Words in a String
- PAT (Basic Level) Practise (中文)1033. 旧键盘打字(20) C语言
- HDOJ-2091 空心三角形 C语言
- PHP CURL CURLOPT参数说明(curl_setopt)
- JavaScript入门篇 第三天(认识DOM)
- 《ASP.NET》数据绑定——GridView
- Spark 调优
- [C Language]一个c回调函数的例子
- 字节流InputStream和OutputStream简单使用
- 杭电2005 第几天 函数形式
- *HDU 5305 - Delicious Apples (贪心+背包)
- HD2091 空心三角形
- Java 注解
- 每天一个小知识点12(jQueryMobile总结三)
- Spring(九)让Spring自动扫描和管理Bean
- 省市区字典数组嵌套(UI版)