博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU 4001 To Miss Our Children Time DP
阅读量:5892 次
发布时间:2019-06-19

本文共 1797 字,大约阅读时间需要 5 分钟。

排序后DP,注意要用long long 的地方。

//#pragma comment(linker, "/STACK:1024000000,1024000000")#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;typedef long long ll;typedef unsigned long long ull;typedef pair
pii;#define pb(a) push_back(a)#define INF 0x1f1f1f1f#define lson idx<<1,l,mid#define rson idx<<1|1,mid+1,r#define PI 3.1415926535898template
T min(const T& a,const T& b,const T& c) { return min(min(a,b),min(a,c));}template
T max(const T& a,const T& b,const T& c) { return max(max(a,b),max(a,c));}void debug() {#ifdef ONLINE_JUDGE#else freopen("d:\\in.txt","r",stdin); // freopen("d:\\out1.txt","w",stdout);#endif}int getch() { int ch; while((ch=getchar())!=EOF) { if(ch!=' '&&ch!='\n')return ch; } return EOF;}const int maxn=1001;const int mod=100000007;struct block{ int a,b,c,d; bool operator < (const block &x) const { if(a!=x.a) return a
x.d; else return c>x.c; }};block da[maxn];ll dp[maxn];ll f(int k,int n){ if(k>n)return 0; if(dp[k]>=0)return dp[k]; ll maxx=0; for(int i=k+1;i<=n;i++) { if(da[i].d==0){ if(da[i].a>=da[k].a&&da[i].b>=da[k].b) maxx=max(maxx,f(i,n)+da[i].c); }else if(da[i].d==1){ if(da[i].a>=da[k].a&&da[i].b>=da[k].b&&(ll)da[i].a*da[i].b>(ll)da[k].a*da[k].b) maxx=max(maxx,f(i,n)+da[i].c); }else if(da[i].d==2){ if(da[i].a>da[k].a&&da[i].b>da[k].b) maxx=max(maxx,f(i,n)+da[i].c); } } return dp[k]=maxx;}int main(){ //freopen("in.txt","r",stdin); int n; da[0]=(block){ 0,0,0,0}; while(cin>>n&&n) { for(int i=1;i<=n;i++) { scanf("%d%d%d%d",&da[i].a,&da[i].b,&da[i].c,&da[i].d); if(da[i].a
View Code

 

转载于:https://www.cnblogs.com/BMan/p/3437894.html

你可能感兴趣的文章
学校 -> 实习 -> 毕业,前端——我一直在路上
查看>>
Java反射-Getters and Setters
查看>>
ImmutableMap不可使用null的问题
查看>>
01背包问题 (动态规划算法)
查看>>
C#实体对象序列化成Json,并让字段的首字母小写
查看>>
遍历PHP数组的6种方式
查看>>
重构-改善既有代码的设计(一)--重构,第一个案例
查看>>
MVPArms官方首发一键生成组件化,体验纯傻瓜式组件化开发
查看>>
块级格式化上下文(BFC)
查看>>
[LintCode] Buy Fruits
查看>>
ZStack源码剖析之二次开发——可扩展框架
查看>>
Elasticsearch分布式一致性原理剖析(一)-节点篇
查看>>
一个基于vue的图片轮播组件的实现
查看>>
Scrapy 之 settings
查看>>
动态规划入门H - 合唱队形 (最优子序列的另一个应用,这里是最优递增和最优递减子序列的结合)...
查看>>
游戏服务器JVM优化
查看>>
【359天】每日项目总结系列096(2018.01.30)
查看>>
HDU 1039 Easier Done Than Said?
查看>>
vue+微信支付目录+JSSDK签名解决方案
查看>>
搭建自己的博客 —— 关于域名设置
查看>>