【t040】SETI任务
Time Limit: 1 second
Memory Limit: 128 MB
【问题描述】
Sqybi的电脑在做一个任务,就是SETI@home,据说这个任务在全世界有500 多万台电脑在同时做,可以说是最热门的。它的目的
就是通过分析射电望远镜收到的无线电信号查找外太空智慧生物。这个任务算是起步比较早的,它也会为我们分配很多的任务。
这样,我们的机器有的时候就不能在给定的期限内完成所有的任务。现在sqybi 就遇到了这个问题,由于他的电脑是笔记本,他
不能用太多的时间运行所有的任务。他希望你能够提供一个程序,用来告诉他应该运行哪些任务以使他得到的积分最多。注意一
下,一个单位时间内只能运行一个任务,而每个任务都有一个固定的积分。如果没有完成一项任务,那么在这项任务上不会得到
任何的积分。 现在提供每个任务需要的单位时间和可以得到的积分以及sqybi 可以用来运行任务的总时间,需要输出sqybi 可以得到的最大积分。
【输入格式】
第1 行是一个正整数n 和一个正整数m,分别代表被分配的任务数和总共可以用来运行任务的时间,中间用一个空格分开。
第2 行到第n+1 行每行两个数,用空格分开,分别是正整数t 和正实数p。t 表示该任务需要的时间,p表示该任务可以得到的积分数。
【数据范围】
对于30%数据,n≤15。
对于100%数据,p 的小数位不会超过三位,p≤100,m≤10000,n≤1000。
【输出格式】
仅一行,表示sqybi 可以得到的最大积分,保留三位小数。
Sample Input
4 10
5 1
1 5
6 10
4 6
Sample Output
16.000
【题解】
这就是一个0/1背包问题。然后因为价值是实数,所以用double类型的f数组来存最优值。更新的时候记得逆序更新就好。没有坑点。最后“%.3lf”输出。
ps:不想强迫自己写模块化的代码了。从这篇后可能就是直接写下来了。
【代码】
#include <cstdio> int n,m,w[1010];
double c[1010],f[10010]; void input_data()
{
scanf("%d%d",&n,&m);
for (int i = 1;i <= n;i++) //输入花费和获得的价值
scanf("%d%lf",&w[i],&c[i]);
} void get_ans()
{
for (int i = 1;i <= n;i++)
for (int j = m;j >= w[i];j--) //因为是0/1背包所以逆序更新。这样不会影响到其他要更新的位置
if (f[j] <f[j-w[i]] + c[i])
f[j] = f[j-w[i]] + c[i];
} void output_ans()
{
printf("%.3lf",f[m]); //保留3位小数输出。
} int main()
{
//freopen("F:\\rush.txt","r",stdin);
input_data();
get_ans();
output_ans();
return 0;
}
【t040】SETI任务的更多相关文章
- ACdream 1430——SETI——————【后缀数组,不重叠重复子串个数】
SETI Time Limit: 4000/2000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others) Submit Statist ...
- UVA 1563 - SETI (高斯消元+逆元)
UVA 1563 - SETI option=com_onlinejudge&Itemid=8&page=show_problem&category=520&probl ...
- POJ_2065 SETI 【同余高斯消元】
一.题目 SETI 二.分析 给定一个模数,一串字符串,字符串长度为N,相当于是N个方程的答案,而这N个方程中有N个未知数,要求的就是这N个未知数的值,很显然的高斯消元,遇到模数和除法,用逆元就好. ...
- 【poj2065】 SETI
http://poj.org/problem?id=2065 (题目链接) 题意 题意半天看不懂..给你一个素数P(P<=30000)和一串长为n的字符串str[].字母'*'代表0,字母a-z ...
- POJ2065 SETI(高斯消元 同模方程)
(a1 * 1^0 + a2 * 1^1 + ... an * 1^n - 1) % P = f1 .... (a1 * n^0 + a2 * n^1 + ... an - 1 * ...
- [ACDream 1430]SETI 后缀数组
题目链接:http://acdream.info/problem?pid=1430 题目大意:给你一个长度不超过10000的字符串,问你出现过两次或两次以上的不重叠的子串有多少个. 后缀数组计算出he ...
- POJ 2065 SETI(高斯消元)
题目链接:http://poj.org/problem?id=2065 题意:给出一个字符串S[1,n],字母a-z代表1到26,*代表0.我们用数组C[i]表示S[i]经过该变换得到的数字.给出一个 ...
- POJ 2065 SETI (高斯消元 取模)
题目链接 题意: 输入一个素数p和一个字符串s(只包含小写字母和‘*’),字符串中每个字符对应一个数字,'*'对应0,‘a’对应1,‘b’对应2.... 例如str[] = "abc&quo ...
- poj 2065 SETI 高斯消元
看题就知道要使用高斯消元求解! 代码如下: #include<iostream> #include<algorithm> #include<iomanip> #in ...
随机推荐
- 【例题 7-7 UVA - 1354】Mobile Computing
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 秤砣都是在叶子节点. 可以把它看成一个二叉树. 则我们每次只需要选择任意两个"节点",让他们组成一棵二叉树就可以 ...
- 【例题 7-3 UVA - 10976】Fractions Again?!
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] x>=y => \(\frac{1}{x}<=\frac{1}{y}\) => \(\frac{1}{x}= ...
- ECMALL功能拓扑图以及模式分析
ECMALL VS 常规的B2C产品(以ECSHOP做对比)的区别: 1.支持多用户在同一个域名下开店. 2.开店的卖家各自结算,直接收钱.平台只是提供了一个类似传统行业的摊位.平台不过手金钱 3 ...
- Android SimpleAdapter
1.MainActivity.java public class MainActivity extends Activity { private ListView listView; private ...
- JSP语法基础(一)
一.JSP页面中的凝视 (1)HTML凝视 <!-- comment [ <%=expression %> ] --> 能在client显示的一种凝视,标记内的全部JSP脚本元 ...
- C#复习题
1.以下(D )不是 C#中方法的參数的类型. A.值类型B.引用型C.输出型D.属性 2.C#中的数据类型分为值类型和引用类型,以下(B )不属于引用类型. A.类 B.枚举 C.接口 D.数组 3 ...
- Docker基础(一)
1.安装:安装教程很多,Ubuntu14.04安装比较简单docker[之前使用Ubuntu13.04结果安装了好久也没有安装好,后来就直接是14,04了] 2.docker是容器,那么什么是容器? ...
- 每日技术总结:vue router传参方式,js获取设备高度
今天貌似没什么问题,23333…… 1.vue router 路由传参的方式 应用情景:从分类页(category.vue)进入商品列表页(list.vue),需要传递商品分类id(catId),商品 ...
- P2P平台公司的9种职位
1.技术 开发类:开发系统,实现新功能 维护类:服务器和网站维护 更多:Web前端等 观点:技术岗位很关键,但是很多不懂技术的老板,不会认可你的价值. 太多的老板,以为技术 ...
- 使用ClassyShark压缩你的项目
原文链接 : Shrinking Your Build With No Rules and do it with Class(yShark) 原文作者 : Roberto Orgiu 译文出自 : 开 ...