bzoj2538: [Ctsc2000]公路巡逻
超车这个东西这么恶心肯定是要暴力求的(自圆其说)
那么分成一个个时间段来搞,然后DP一下
化一下那个速度,耗费时间是在300s~600s之间的
那我们就可以设f[i][j]为走到第i个位置用了j的时间相遇的最小值
这里有个坑点,就是出发时间和到达时间均相等的两辆车也算相遇。。。
#include<cstdio>
#include<iostream>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#include<cmath>
#include<vector>
using namespace std;
int read()
{
int x=,f=;char ch=getchar();
while(ch<''||ch>''){if(ch=='-')f=-;ch=getchar();}
while(''<=ch&&ch<=''){x=x*+ch-'';ch=getchar();}
return x*f;
}
int readtime()
{
int ret=;
for(int i=,b=;i<=;i++,b/=)
{
int k=;char ch;ch=getchar();
while(ch<''||ch>'')ch=getchar();
k=ch-'';ch=getchar();k=k*+ch-'';
ret+=k*b;
}
return ret;
}
void writetime(int T)
{
int k=T/;T-=k*;
if(k<)printf("");
printf("%d",k); k=T/;T-=k*;
if(k<)printf("");
printf("%d",k); if(T<)printf("");
printf("%d\n",T);
} //----------------------------------------------------------------------------------------------------- struct car
{
int st,t;
car(){}
car(int ST,int T){st=ST,t=T;}
}c[];int L[],R[];
int f[][];
int main()
{
freopen("a.in","r",stdin);
freopen("a.out","w",stdout);
int n,m,x,st,t;
n=read(),m=read();
for(int i=;i<=n;i++)L[i]=m+;
for(int i=;i<=m;i++)
{
x=read(),c[i].st=readtime(),c[i].t=read();
if(L[x]==m+)L[x]=i;
R[x]=i;
} memset(f,,sizeof(f));f[][]=;
for(int i=;i<n;i++)
for(int j=;j<;j++)
if(f[i][j]!=f[][])
{
for(int k=;k<=;k++)
{
if(j+k>=)break;
int sum=;
for(int l=L[i];l<=R[i];l++)
if((j+k==c[l].st+c[l].t)||(j<c[l].st&&j+k>=c[l].st+c[l].t)||(j>c[l].st&&j+k<=c[l].st+c[l].t))sum++;
f[i+][j+k]=min(f[i+][j+k],f[i][j]+sum);
}
} int mmin=(<<),T;
for(int j=;j<;j++)
if(f[n][j]<mmin)mmin=f[n][j],T=j;
printf("%d\n",mmin);
writetime(T);
return ;
}
bzoj2538: [Ctsc2000]公路巡逻的更多相关文章
- bzoj AC倒序
Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...
- 别人整理的DP大全(转)
动态规划 动态规划 容易: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ...
- dp题目列表
此文转载别人,希望自己能够做完这些题目! 1.POJ动态规划题目列表 容易:1018, 1050, 1083, 1088, 1125, 1143, 1157, 1163, 1178, 1179, 11 ...
- poj 动态规划题目列表及总结
此文转载别人,希望自己能够做完这些题目! 1.POJ动态规划题目列表 容易:1018, 1050, 1083, 1088, 1125, 1143, 1157, 1163, 1178, 1179, 11 ...
- poj动态规划列表
[1]POJ 动态规划题目列表 容易: 1018, 1050, 1083, 1088, 1125, 1143, 1157, 1163, 1178, 1179, 1189, 1208, 1276, 13 ...
- POJ 动态规划题目列表
]POJ 动态规划题目列表 容易: 1018, 1050, 1083, 1088, 1125, 1143, 1157, 1163, 1178, 1179, 1189, 1208, 1276, 1322 ...
- poj 动态规划的主题列表和总结
此文转载别人,希望自己可以做完这些题目. 1.POJ动态规划题目列表 easy:1018, 1050, 1083, 1088, 1125, 1143, 1157, 1163, 1178, 1179, ...
- 别人整理的dp题目
动态规划 动态规划 容易: 1018, 1050, 1083, 1088, 1125, 1143, 1157, 1163, 1178, 1179, 1189, 1208, 1276, 1322, 14 ...
- [SinGuLaRiTy] 动态规划题目复习
[SinGuLaRiTy-1026] Copyright (c) SinGuLaRiTy 2017. All Rights Reserved. [UVA 1025] A Spy in the Metr ...
随机推荐
- h5移动端混编总结
1.通信机制:解决是否能通信的问题: 2.接口:解决调用会话问题: 3.数据.URL正确性:解决数据.URL跳转路径正确性问题.
- 数据结构---链表ADT C++实现
最近在学习数据结构,刚开始一直在看书,但是总是感觉似懂非懂,心想还不如自己操练一波,势必有所收获.现将实现代码发表此地,以备日后复习,若有错误或者建议,欢迎告知本人! 1. 节点类 class Nod ...
- java容器(数组和集合)内元素的排序问题
package com.janson.day20180827; import java.util.*; /** * java中容器内对象的排序可以通过Collections.sort()和Arrays ...
- linux tail-在屏幕上显示指定文件的末尾若干行
博主推荐:获取更多 linux文件内容查看命令 收藏:linux命令大全 tail命令用于输入文件中的尾部内容.tail命令默认在屏幕上显示指定文件的末尾10行.如果给定的文件不止一个,则在显示的每个 ...
- linux diff3-比较3个文件不同的地方
推荐:更多Linux 文件查找和比较 命令关注:linux命令大全 diff3命令用于比较3个文件,将3个文件的不同的地方显示到标准输出. 语法 diff3(选项)(参数) 选项 -a:把所有的文件都 ...
- 洛谷 2055 BZOJ 1433 [ZJOI2009]假期的宿舍
[题解] 既然是一人对应一床,那么显然可以用二分图匹配来做.俩人认识的话,如果其中一个a是在校学生,另一个b不回家,b就可以向a的床连边(a,b当然也可以是同一个人). 然后如果最大匹配数大于等于需要 ...
- 【DIP, OpenCV】Some Kinds Of Image Smoothing Methodologies
In digital image processing(DIP), many methods are used in smoothing images in order to suppress noi ...
- HTML5中Canvas概述
一.HTML5 Canvas历史 Canvas的概念最初是由苹果公司提出的,用于在Mac OS X WebKit中创建控制板部件(dashboard widget).在Canvas出现之前,开发人员若 ...
- vue.js组件之间通讯--父组件调用子组件的一些方法,子组件暴露一些方法,让父组件调用
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- 在Myeclipse中拷贝一个web项目,但是tomcat文件夹中没有更新,需要进行修改才能更新。
1.在Myeclipse中拷贝一个web项目,但是tocat文件夹中没有更新,需要进行修改才能更新. 2.方法:右键这个工程,然后Properties->MyEclipse->Projec ...