bzoj4380[POI2015]Myjnie dp

[POI2015]Myjnie

Time Limit: 40 Sec  Memory Limit: 256 MBSec  Special Judge
Submit: 368  Solved: 185
[Submit][Status][Discuss]

Description

有n家洗车店从左往右排成一排,每家店都有一个正整数价格p[i]。
有m个人要来消费,第i个人会驶过第a[i]个开始一直到第b[i]个洗车店,且会选择这些店中最便宜的一个进行一次消费。但是如果这个最便宜的价格大于c[i],那么这个人就不洗车了。
请给每家店指定一个价格,使得所有人花的钱的总和最大。

Input

第一行包含两个正整数n,m(1<=n<=50,1<=m<=4000)。
接下来m行,每行包含三个正整数a[i],b[i],c[i](1<=a[i]<=b[i]<=n,1<=c[i]<=500000)

Output

第一行输出一个正整数,即消费总额的最大值。
第二行输出n个正整数,依次表示每家洗车店的价格p[i],要求1<=p[i]<=500000。
若有多组最优解,输出任意一组。

Sample Input

7 5
1 4 7
3 7 13
5 6 20
6 7 1
1 2 5

Sample Output

43
5 5 13 13 20 20 13

HINT

Source

鸣谢Claris

出题人https://www.cnblogs.com/clrs97/p/5271139.html
ysy 
 1 #include<cmath>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<iostream>
 5 #include<algorithm>
 6 
 7 #define N 55
 8 #define M 4007
 9 #define maxc 500007
10 using namespace std;
11 
12 int n,m;
13 int f[N][N][M],g[N][N][M],h[N][M];
14 int p[N][N][M],val[N];
15 int C[M],lsh[maxc],LSH[M],K;
16 
17 inline void up(int &x,const int &y)
18 {
19     if(x<y)x=y;
20 }
21 struct node
22 {
23     int a,b,c;
24 }a[M];
25 inline bool cmp(node x,node y)
26 {
27     return x.b==y.b?x.a<y.a:x.b<y.b;
28 }
29 void pre()
30 {
31     sort(a+1,a+m+1,cmp);
32 
33     sort(C+1,C+m+1); K=0;
34     for(int i=1;i<=m;i++)
35         if(C[i]!=C[i-1]) LSH[++K]=C[i],lsh[C[i]]=K;
36     for(int i=1;i<=m;i++) a[i].c=lsh[a[i].c];
37 }
38 void search(int l,int r,int k)
39 {
40     if(l>r) return ;
41     if(!g[l][r][k])
42     {
43         for(int i=l;i<=r;i++) val[i]=LSH[k];
44         return ;
45     }
46     for(int i=k;i<=K;i++) if(g[l][r][k]==f[l][r][i])
47     {
48         const int pos=p[l][r][i];
49         val[pos]=LSH[i];
50         search(l,pos-1,i); search(pos+1,r,i);
51         break;
52     }
53 }
54 int main()
55 {
56     scanf("%d%d",&n,&m);
57     for(int i=1;i<=m;i++) 
58         scanf("%d%d%d",&a[i].a,&a[i].b,&a[i].c),C[i]=a[i].c;
59     pre();
60     for(int l=n;l>=1;l--) 
61         for(int r=l;r<=n;r++)
62         {
63                for(int i=l;i<=r;i++) 
64                 for(int j=1;j<=K;j++) h[i][j]=0;
65             for(int i=1;i<=m&&a[i].b<=r;i++)
66             {
67                 if(a[i].a<l) continue;
68                 for(int j=a[i].a;j<=a[i].b;j++) 
69                     h[j][a[i].c]++;
70                }
71             for(int i=l;i<=r;i++) 
72                 for(int j=K-1;j>=1;j--) 
73                     h[i][j]+=h[i][j+1];
74             for(int i=l;i<=r;i++)
75                 for(int j=K;j>=1;j--)
76                 {
77                     int tmp=g[l][i-1][j]+g[i+1][r][j]+h[i][j]*LSH[j];
78                     if(f[l][r][j]<tmp) f[l][r][j]=tmp,p[l][r][j]=i;
79                     g[l][r][j]=g[l][r][j+1]>f[l][r][j]?g[l][r][j+1]:f[l][r][j];
80                 }
81            }
82     printf("%d\n",g[1][n][1]);
83     search(1,n,1);
84     for(int i=1;i<=n;i++)
85         printf("%d ",val[i]);
86 }

 

转载于:https://www.cnblogs.com/fengzhiyuan/p/8326193.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/428258.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

全国计算机等级考试用报名吗,全国计算机等级考试网上报名流程及考生报名使用说明...

全国计算机等级考试网上报名流程及考生报名使用说明附件&#xff1a;考生报名使用说明(一)注册账号和登录1)考生首次登录系统需要注册登录通行证&#xff0c;若考生有通行证账号&#xff0c;可以直接登录。2)考生也可使用其他账号登录&#xff0c;例如使用“QQ账号”登录。点击…

iptables nat实验_【零基础学云计算】LVS负载均衡群集之NAT模式搭建 (实践篇)...

实验原理图实验环境LVS调度器作为web服务器池的网关LVS服务器配置两块网卡分别连接内外网使用轮询&#xff08;rr&#xff09;调度算法LVS负载调度器网段规划 内网33网关&#xff1a;192.168.144.1 外网36&#xff1a;12.0.0.1web1 192.168.144.151web2 192.168.144.170nfs服务…

rs232串口驱动_RS232与RS485在性能上有啥区别和联系?老电工总结分析,一目了然...

串口是一种非常通用的设备接口&#xff0c;是仪器仪表设备常用的通信接口&#xff0c;常用于远程采集设备数据或者实现远程控制。串口的开发也比较简单&#xff0c;它是很多工程师最喜欢的接口之一。常见的串口协议有RS-232、RS-422、RS-485等&#xff0c;它是电子工程师面对的…

win7里面计算机叫什么,Win7电脑中的mrt.exe是甚么文件

咱们正在运用Win7体系的时分&#xff0c;只有咱们翻开使命办理便能够看失到有一个mrt.exe 步伐正在运转&#xff0c;也没有知叙mrt.exe 是甚么入程的&#xff0c;否不成以制止。这Win7电脑外的mrt.exe 是甚么文件呢&#xff1f;如今便随小编一同来看看电脑外的mrt.exe是甚么文件…

svn权限配置

转载于:https://www.cnblogs.com/wzlbigdata/p/8329601.html

pytorch gather_【Pytorch】Pytorch-1.1.0 版本新特性

2019年05月01日&#xff0c;Pytorch 1.1.0 版本正式发布啦~https://github.com/pytorch/pytorch/releases/tag/v1.1.0主要的几个功能&#xff1a;1. TensorBoard (currently experimental)2. JIT 的升级 [JIT] Attributes in ScriptModules [JIT] Dictionary and List Support …

MySQL-5.7.21非图形化下载、安装、连接问题记录

1、安装包下载链接&#xff1a;https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.21-winx64.zip 官网&#xff1a;https://www.mysql.com/downloads/ -> Community ->MySQl Community Sever ->选择与电脑对应的版本DownLoad 2、解压安装包到自定义的文件夹…

c++定义一个动态全局变量_静态链接与动态链接的宏观概述及微观详解

静态链接与动态链接的宏观概述及微观详解第一部分 宏观概述 1. 静态链接静态链接就是在程序运行前&#xff0c;链接器通过对象文件中包含的重定位表&#xff0c;完成所有重定位操作&#xff0c;并最终形成一个在运行时不需要再次进行依赖库的加载和重定位操作&#xff08;因为所…

pwm控制舵机转动角度程序_Mixly 第15课 舵机的使用

第15课 舵机的使用舵机的旋转不像普通电机那样只是转圈圈&#xff0c;它可以根据你的指令旋转到0至180度之间的任意角度然后精准的停下来。舵机的转动的角度是通过调节PWM(脉冲宽度调制)信号的占空比来实现的。舵机比较多的用于对角度有要求的场合&#xff0c;比如机器人、摄像…

1、初始JAVA

一、 语言的翻译分两种&#xff1a; 编译型语言&#xff1a;例如c语言、c语言 优点&#xff1a;速度快 缺点&#xff1a;不能跨平台 编译器编译——>特定平台的目标文件obj——>特定平台 解释型语言&#xff1a;例如PHP语言、JavaScript语言 优点&am…

base64 转文件_PHP伪协议与文件包含

PHP伪协议与文件包含PHP伪协议与文件包含php:// 协议php://inputphp://filterdata:// 协议file:// 协议zip://、bzip2://、zlib://协议zip://协议bzip2://协议zlib://协议phar://伪协议文件包含漏洞(File Inclusion)文件包含漏洞&#xff1a;即file inclusion&#xff0c;意思是…

redis 登录_Redis集群架构+Dubbo开发框架+SSO单点登录+Nginx+ZooKeeper

Redis集群架构【课程介绍】Redis是现在使用为广泛的NoSQL数据库技术&#xff0c;其自身不仅拥有着良好的操作性能&#xff0c;也被广泛的应用于各种集群架构的数据整合处理之中&#xff0c;而本课程将通过Redis的核心作用&#xff0c;以及单实例redis存在的问题为读者进行分析&…

NopCommerce用.net core重写ef

最近看了NopCommerce源码&#xff0c;用core学习着写了一个项目&#xff0c;修改的地方记录下。项目地址 NopCommerce框架出来好久了。18年的第一季度 懒加载出来后也会全部移动到.net core。那么就更好玩了。 项目内容 模仿部分分层模式引擎机制DI容器EF仓储模式Mapping部分修…

服务器u8系统数据库不存在,用友u8服务器端数据库不装

用友u8服务器端数据库不装 内容精选换一换本章节指导您使用MongoDB客户端&#xff0c;通过弹性云服务器内网方式连接GaussDB(for Mongo)集群实例。操作系统使用场景&#xff1a;弹性云服务器的操作系统以Linux为例&#xff0c;客户端本地使用的计算机系统以Windows为例。目标实…

ie传递给系统调用的数据区域太小_内存区域与内存溢出异常

自动内存管理机制运行时数据区&#xff1a;Java虚拟机定义了在程序执行期间使用的各种运行时数据区域。其中一些数据区域是在Java虚拟机启动时创建的&#xff0c;仅在Java虚拟机退出时销毁。其他数据区域是每个线程所占的空间。线程数据区域是随着线程销毁和创建的。PC 寄存器(…

0010服务器无对应信息,服务器版本对应的内存

服务器版本对应的内存 内容精选换一换硬件要求如表1所示。操作系统要求如表2所示。上表中所需Ubuntu下载地址&#xff1a;服务器1&#xff1a;Ubuntu 18.04.1镜像包、Ubuntu 16.04.4 镜像包。服务器2&#xff1a;Ubuntu 16.04.3 镜像包。在安装操作系统过程中“选择软件列表”时…

idea中连接mysql插入成功数据 在navicat中刷新表格没有数据_MySQL入门简记

1、MySQL和Navicat的安装下载地址&#xff1a;MySQL官方网站 https://dev.mysql.com/downloads双击下载的mysql-installer-community-8.0.17.0 .msi开始安装。需要注意&#xff08;Authentication Method&#xff09;这一步&#xff1a;因为需要使用客户端navicat&#xff0c;在…

for循环数据量太大_中文文本分类roberta大力出奇迹之数据量大的问题

问题描述: 笔者在文本分类场景中使用了robertapooldense的三分类模型。采用预训练模型做项目的时候经常苦于数据太少&#xff0c;模型泛化性差&#xff0c;因此收集了1300W数据。在我尝试暴力出奇迹的时候&#xff0c;遇到了部分问题&#xff0c;在此记录一下。一. 数据预处理时…

future.cancel不能关闭线程_彻底弄懂线程池-newFixedThreadPool实现线程池

public class ExecutorServiceTest {public static void main(String[] args) throws IOException, InterruptedException {// 创建一个固定大小的线程池ExecutorService service Executors.newFixedThreadPool(3);for (int i 0; i < 10; i) {System.out.println("创…

Spring实战(十三)Spring事务

1、什么是事务&#xff08;Transaction&#xff09;&#xff1f; 事务是指逻辑上的一组操作&#xff0c;要么全部成功&#xff0c;要么全部失败。 事务是指将一系列数据操作捆绑成为一个整体进行统一管理。如果某一事务执行成功&#xff0c;则该事务中进行的所有数据更改均会提…