XTU2012 湘潭邀请赛 Interview Arrangement ~ 离散化+01背包
来源:互联网 发布:软件招标书范本 编辑:程序博客网 时间:2024/06/05 03:56
Interview Arrangement
先将时间离散化,然后按结束时间排序,最后按时间DP。
ACcode:
#include<iostream>#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;__int64 max(__int64 a,__int64 b){ return a>b?a:b;}struct Edge{ __int64 s,e,w;};bool cmp(__int64 *a,__int64 *b){ return *a<*b;}bool cmpedge(Edge a,Edge b){ return a.e<b.e;}Edge edge[100010];__int64 *p[200020];__int64 dp[200020];int vis[200020];int main(){ // freopen("1455.in", "r", stdin); // freopen("out.txt", "w", stdout); int n,top,i,j; while(~scanf("%d",&n)) { for(top=0,i=1; i<=n; i++) { scanf("%I64d %I64d %I64d",&edge[i].s,&edge[i].e,&edge[i].w); p[top++] = &edge[i].s; p[top++] = &edge[i].e; } sort(p,p+top,cmp); int ii = 0; for(i=0; i<top; i++) { if(i<top-1&&*p[i]==*p[i+1]) { *p[i]=ii; continue; } *p[i] = ii; ii++; } sort(edge+1,edge+n+1,cmpedge); memset(dp,0,sizeof(dp)); memset(vis,0,sizeof(vis)); __int64 Max = 0; vis[0]=1; for(i = 1; i<=n; i++) { j = edge[i].s; while(!vis[j]) j--; dp[edge[i].e] = max(dp[j]+edge[i].w,Max); vis[edge[i].e] = 1; Max = max(dp[edge[i].e],Max); } printf("%I64d\n",Max); }}
- XTU2012 湘潭邀请赛 Interview Arrangement ~ 离散化+01背包
- Interview Arrangement
- Interview Arrangement
- 湘潭大学OJ1198Candy(01背包)
- ACM_ICPC 湘潭邀请赛
- 湘潭邀请赛总结
- 湘潭邀请赛A
- 2015湘潭邀请赛小记
- 2015 湘潭邀请赛 Fraction
- 2015 湘潭邀请赛 Tuples
- 2015湘潭邀请赛 CQRXLB
- 湘潭大学中南邀请赛
- 2016湘潭邀请赛 xtu1245
- 2016湘潭邀请赛 xtu1250
- 湖南科技大学湘潭邀请赛小记
- 2013ACM/ICPC湘潭邀请赛
- 2015湘潭邀请赛 A.Coins
- 2015湘潭邀请赛 D.Fraction
- nginx + tomcat 集群实现负载均衡
- TC中Regions对象的使用介绍
- 七夕恋歌
- 信息经济时代过去,反馈经济时代已到来
- 类内实现MFC/VC shdocvw IWebbrowser2的OnDocumentComplete等事件响应
- XTU2012 湘潭邀请赛 Interview Arrangement ~ 离散化+01背包
- 桥接模式
- android 下用ant编译脚本执行批量渠道打包
- boost python 使用
- nginx upstream的几种配置方式
- 关于C++的好帖
- 关于爱情
- poj 2524 Ubiquitous Religions
- 编译原理初体验(求大牛来拍砖)