CodeForces 28D Don't fear, DravDe is kind dp
主题链接:点击打开链接
为了让球队后,删除是合法的。也就是说,对于每一个车辆, l+r+c 一样,按l+r+c分类。
然后dp一下。
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <math.h>
#include <set>
#include <vector>
#include <map>
using namespace std;
#define ll int
#define N 100005
struct node{
int v,c,l,r;
int num;
}car[N];
ll n;
vector<int>G[N], tmp;
set<int> myset;
set<int> ::iterator p;
map<int,int> mymap;
map<int,int> per;
map<int,int> sig;
int pos[N], endpos;
ll work(ll x){
if(G[x].size()==0)return 0;
mymap.clear();
per.clear();
sig.clear();
mymap[0] = 0;
per[0] = -1;
sig[0] = -1;
int ans = 0;
endpos = -1;
/* cout<<"---x:"<<x<<endl;
for(int i = 0; i < G[x].size(); i++)cout<<G[x][i]<<" ";
puts("---");/**/
for(int i = 0; i < G[x].size(); i++) {
node now = car[G[x][i]];
if(mymap.find(now.l)==mymap.end())
continue;
// cout<<"now: "<<G[x][i]<<endl;
if(mymap.find(now.l+now.c)==mymap.end() || mymap[now.l+now.c]<mymap[now.l]+now.v) {
mymap[now.l+now.c] = mymap[now.l]+now.v;
sig[now.l+now.c] = G[x][i];
per[G[x][i]] = sig[now.l];
}
if(now.r==0 && ans<mymap[now.l+now.c])ans = mymap[now.l+now.c], endpos = G[x][i];
}
return ans;
}
int main(){
ll i,j,u,v;
while(cin>>n){
for(i = 1; i <= n; i++) G[i].clear();
myset.clear();
mymap.clear();
for(i = 1; i <= n; i++)
scanf("%d%d%d%d",&car[i].v,&car[i].c,&car[i].l,&car[i].r), car[i].num = i;
for(i = 1; i <= n; i++) {
myset.insert(car[i].c+car[i].l+car[i].r);
}
i = 1;
for(p = myset.begin(); p!=myset.end(); p++, i++)
mymap[*p] = i, pos[i] = *p;
for(i = 1; i <= n; i++)
G[mymap[car[i].c+car[i].l+car[i].r]].push_back(i);
int ans = 0;
for(i = 1; i <= n; i++) {
int now = work(i);
if(now>ans) {
ans = now;
tmp.clear();
u = endpos;
while(u!=-1) {
tmp.push_back(u);
u = per[u];
}
}
}
cout<<tmp.size()<<endl;
for(i = tmp.size()-1; i>=0; i--)
printf("%d%c",tmp[i],i?' ':'\n');
}
return 0;
}
版权声明:本文博客原创文章,博客,未经同意,不得转载。
CodeForces 28D Don't fear, DravDe is kind dp的更多相关文章
- codeforces 28D(dp)
D. Don't fear, DravDe is kind time limit per test 2 seconds memory limit per test 256 megabytes inpu ...
- [Codeforces 28D] Do not fear,DravDe is kind
Brief Intro: 对于四元组(v,c,l,r),求其子序列中v最大的和,并使其满足: 1.Ci+Li+Ri相同 2.L1=0,Rn=0 3.Li=Sigma(C1...Ci-1) Soluti ...
- Codeforces Gym100812 L. Knights without Fear and Reproach-扩展欧几里得(exgcd)
补一篇以前的扩展欧几里得的题,发现以前写错了竟然也过了,可能数据水??? 这个题还是很有意思的,和队友吵了两天,一边吵一边发现问题??? L. Knights without Fear and Rep ...
- CF28D Don't fear, DravDe is kind 背包
题目传送门:http://codeforces.com/problemset/problem/28/D 题意:给你$N$个物品,每个物品有其价格$P_i$,之前必须要买的物品价格和$L_i$,之后必须 ...
- 【神仙题】【CF28D】 Don't fear, DravDe is kind
传送门 Description 一个有N辆卡车的车队从城市Z驶向城市3,来到了一条叫做"恐惧隧道"的隧道.在卡车司机中,有传言说怪物DravDe在那条隧道里搜寻司机.有些司机害怕先 ...
- Codeforces 216D Spider's Web 树状数组+模拟
题目链接:http://codeforces.com/problemset/problem/216/D 题意: 对于一个梯形区域,假设梯形左边的点数!=梯形右边的点数,那么这个梯形为红色.否则为绿色, ...
- Codeforces 475C Kamal-ol-molk's Painting 模拟
主题链接:点击打开链接 意甲冠军:特定n*m矩阵 X代表色 .代表无色 随着x*y形刷子去涂色. 刷子每次能够→或↓移动随意步. 若可以染出给定的矩阵,则输出最小的刷子的面积 若不能输出-1 思路: ...
- Codeforces 235B Let's Play Osu! 概率dp(水
题目链接:点击打开链接 给定n表示有n个格子 以下每一个格子为O的概率是多少. 对于一段连续 x 个O的价值就是 x*x ; 问: 获得的价值的期望是多少. 思路: 把公式拆一下.. #include ...
- CF28D Don't fear, DravDe is kind
传送门 题意:\(n\)个位置,每个位置有价值\(v_i\)和重量\(p_i\),要选出一些位置,如果要选位置\(i\),那么前面选的重量之和要为\(l_i\),后面选的重量之和要为\(r_i\),求 ...
随机推荐
- SQLServer2014新功能
随机存取存储器 OLTP:提供了内置在芯 SQL Server 数据库内存 OLTP 特征,为了显著提高事务数据库应用程序的速度和吞吐量.随机存取存储器 OLTP 它是包含在 SQL Server 2 ...
- Fire Net HDU
Fire Net Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other) Total Subm ...
- POJ 2152 Fire
算是我的第一个树形DP 的题: 题目意思:N个城市形成树状结构.现在建立一些消防站在某些城市:每个城市有两个树形cost(在这个城市建立消防站的花费),limit : 我们要是每个城镇都是安全的:就是 ...
- 返璞归真 asp.net mvc (12) - asp.net mvc 4.0 新特性之移动特性
原文:返璞归真 asp.net mvc (12) - asp.net mvc 4.0 新特性之移动特性 [索引页][源码下载] 返璞归真 asp.net mvc (12) - asp.net mvc ...
- BackGroundWorker使用总结
方法: backgroundWorker1.CancelAsync() 用于取消异步执行 backgroundWorker1.ReportProgress(int ,object)用于向主线层报告进度 ...
- DataGridView显示数据的两种方法
1.简介 DataGridView空间是我们经常使用的显示数据的控件,它有极高的可配置性和可扩展性. 2.显示数据 DataGridView显示数据一般我们经常使用的有两种方法,一种是直接设置Data ...
- 网络基础知识系列:阐述VLAN和Trunk
网络性能是影响的效率的重要因素. 大的广播域分割方法,旨在提高网络性能.一个接口上,可是,路由器的LAN接口数量有限,它的主要功能是在网络间数据传输,而不是对终端设备提供网络接入. 訪问LAN的功能还 ...
- 为什么windows dos和Linux shell有这样的差别??
Windows dos随着impdp导入数据库: impdp "sys/password@ip:1521/sidname as sysdba" directory=dbdir du ...
- 花生壳宣布网站的网址直接绑定到详细的项目——jboss版本
花生壳公布,首先要有域名.然后激活域名,详细的公布就不说了,网上有非常多资料,这里是在jboss下直接将网址与详细的项目相应.做法有点不地道 假设跟图上一样配置的话.訪问网址相当于訪问的是http:/ ...
- 红帽/CentOS ext4无法格式化大分区 补充ext4格式化方式
普通情况下,XFS出现丢数据的情况为海量小文件IO场景.在该场景下,inode占用教大. 通过上文的方式进行格式化,inode数量较小.通过大量測试,能够使用例如以下方法提升mkfs.ext4后文件系 ...