hdu 4833 离散化+dp ****
先离散化,然后逆着dp,求出每个点能取到的最大利益,然后看有没有钱,有钱就投
想法好复杂
#include <stdio.h>
#include <string.h>
#include <iostream>
#include <algorithm>
#include <vector>
#include <queue>
#include <set>
#include <map>
#include <string>
#include <math.h>
#include <stdlib.h>
#include <time.h>
using namespace std;
struct NN1
{
int d,e;
void input()
{
scanf("%d%d",&d,&e);
}
}node1[];
struct NN2
{
int start,finish;
int r;
void input()
{
scanf("%d%d%d",&start,&finish,&r);
}
}node2[];
int a[];
long long f[];
long long f2[];
int dp[]; vector<int>vec[];
vector<int>vec2[];
int main()
{
//freopen("in.txt","r",stdin);
//freopen("out.txt","w",stdout);
int T;
int iCase = ;
int n,m;
scanf("%d",&T);
while(T--)
{
iCase++;
printf("Case #%d:\n",iCase);
scanf("%d%d",&n,&m);
int cnt = ;
memset(f,,sizeof(f));
for(int i = ;i < n;i++)
{
node1[i].input();
//a[cnt++] = node1[i].d;
f[node1[i].d] += node1[i].e;
}
for(int i = ;i <= ;i++)
f[i] += f[i-];
for(int i = ;i < m;i++)
{
node2[i].input();
a[cnt++] = node2[i].start;
a[cnt++] = node2[i].finish;
}
sort(a,a+cnt);
cnt = unique(a,a+cnt) - a;
map<int,int>mp;
for(int i = ;i < cnt;i++)
mp[a[i]] = i;
f2[] = f[a[]];
for(int i = ;i < cnt;i++)
f2[i] = f[a[i]] - f[a[i-]];
for(int i = ;i < cnt;i++)
{
vec[i].clear();
vec2[i].clear();
}
for(int i = ;i < m;i++)
{
node2[i].start = mp[node2[i].start];
node2[i].finish = mp[node2[i].finish];
vec[node2[i].start].push_back(node2[i].finish);
vec2[node2[i].start].push_back(node2[i].r);
}
memset(dp,,sizeof(dp));
for(int i = cnt-;i >= ;i--)
{
dp[i] = dp[i+];
int sz = vec[i].size();
for(int j = ;j < sz;j++)
dp[i] = max(dp[i],dp[vec[i][j]] + vec2[i][j]);
}
long long ans ;
//minCostMaxflow(cnt,cnt+1,ans);
ans = ;
for(int i = ;i < cnt;i++)
{
ans += (long long)dp[i]*f2[i];
}
printf("%.2lf\n",(double)ans/); }
return ;
}
hdu 4833 离散化+dp ****的更多相关文章
- HDU 2836 (离散化DP+区间优化)
Reference:http://www.cnblogs.com/wuyiqi/archive/2012/03/28/2420916.html 题目链接: http://acm.hdu.edu.cn/ ...
- hdu 4123 树形DP+RMQ
http://acm.hdu.edu.cn/showproblem.php? pid=4123 Problem Description Bob wants to hold a race to enco ...
- hdu 4507 数位dp(求和,求平方和)
http://acm.hdu.edu.cn/showproblem.php?pid=4507 Problem Description 单身! 依旧单身! 吉哥依旧单身! DS级码农吉哥依旧单身! 所以 ...
- hdu 3709 数字dp(小思)
http://acm.hdu.edu.cn/showproblem.php?pid=3709 Problem Description A balanced number is a non-negati ...
- hdu 4352 数位dp + 状态压缩
XHXJ's LIS Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- hdu 4283 区间dp
You Are the One Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)T ...
- HDU 2829 区间DP & 前缀和优化 & 四边形不等式优化
HDU 2829 区间DP & 前缀和优化 & 四边形不等式优化 n个节点n-1条线性边,炸掉M条边也就是分为m+1个区间 问你各个区间的总策略值最少的炸法 就题目本身而言,中规中矩的 ...
- HDOJ(HDU).2844 Coins (DP 多重背包+二进制优化)
HDOJ(HDU).2844 Coins (DP 多重背包+二进制优化) 题意分析 先把每种硬币按照二进制拆分好,然后做01背包即可.需要注意的是本题只需要求解可以凑出几种金钱的价格,而不需要输出种数 ...
- HDOJ(HDU).1059 Dividing(DP 多重背包+二进制优化)
HDOJ(HDU).1059 Dividing(DP 多重背包+二进制优化) 题意分析 给出一系列的石头的数量,然后问石头能否被平分成为价值相等的2份.首先可以确定的是如果石头的价值总和为奇数的话,那 ...
随机推荐
- python 与 mysql
1.开发环境: 1)CLion-2016.1.3 C/C++ 与 Python 混合编程 IDE,先安装好以下 2) 3) 编译器再关联 2)tdm-gcc-4.8.1-3 C/C++ 编译器 3)W ...
- dedecms网站栏目增加缩略图的方法-测试通过
有时候因为网站功能需求,我们需要为织梦程序的栏目页添加缩略图功能,这里有一个栏目添加缩略图的方法,供大家参考 涉及到文件如下(注意备份): dede/catalog_add.php dede/cata ...
- [LeetCode] Word Ladder II
Given two words (start and end), and a dictionary, find all shortest transformation sequence(s) from ...
- MVC中使用Tuple完成匿名类数据存储
使用MVC时,会遇到从Controller传递到View的数据只是某几个表中的几个字段的数据,有很多人都会想到能否把这几个字段组成一个匿名类传到View,但是这样好像行不通,所以有些时候我们会针对这几 ...
- javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection
客户端向服务器发送数据时,份两种情况,SSL单向验证和SSL双向验证 1.SSL单向验证时 代码如下: import java.io.IOException; import java.util.Has ...
- JAVA如何调用C/C++方法
JAVA如何调用C/C++方法 2013-05-27 JAVA以其跨平台的特性深受人们喜爱,而又正由于它的跨平台的目的,使得它和本地机器的各种内部联系变得很少,约束了它的功能.解决JAVA对本地操作的 ...
- [Asp.Net]状态管理(ViewState、Cookie)
简介 HTTP协议是无状态的.从客户端到服务器的连接可以在每个请求之后关闭.但是一般需要把一些客户端信息从一个页面传送给另一个页面. 无状态的根本原因是:浏览器和服务器使用Socket通信,服务器将请 ...
- linux 的终端字体色和背景色的修改方法(三)
除了在窗口下修改,配置文件中修改外,还可以用shell来修改,此处为B shell linux BASH shell下设置字体及背景颜色 类型:转载 这篇文章主要介绍了linux BASH shell ...
- jquery中$.ajax
$.ajax({ type : 'post', url : '/edm/testEmail.php', data: {tId:tId, sId:sId ,testEmail:testEmail}, d ...
- 让我们一起学习《Node.js入门》一书吧!
Node.js入门 读完本书之后,你将完成一个完整的web应用,该应用允许用户浏览页面以及上传文件. 里面对一些知识的讲解,让你略窥Node.js的门径.最好一段代码一段代码的写下来,我的习惯是手里拿 ...