博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【DP复习】线性dp ouo
阅读量:7281 次
发布时间:2019-06-30

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

正序逆序各求一遍LIS 

枚举每个人, 计算以他为中心点左右个需要移走多少人, 相加, 最终取min即可

不知道为什么我的总是比答案小一qaq

测试了一组样例, 显然应该输出0, 但我的输出"-1", 所以最终输出ans+1 qwq

1 52 1 2 3 2 1

代码君qwq

1 #include
2 #include
3 using namespace std; 4 const int sz = 110; 5 int n, ans = 1<<30; 6 int f[sz], lis1[sz], lis2[sz]; 7 int main() { 8 scanf("%d", &n); 9 for(int i = 1; i <= n; i++) 10 scanf("%d", &f[i]);11 for(int i = 1; i <= n; i++) {12 lis1[i] = 1;13 for(int j = 1; j < i; j++) {14 if(f[j] < f[i] && lis1[j] + 1 > lis1[i])15 lis1[i] = lis1[j] + 1;16 }17 // printf("lis1[%d]: %d\n", i, lis1[i]);18 }19 // cout<
= 1; i--) {21 lis2[i] = 1;22 for(int j = n; j > i; j--) {23 if(f[j] < f[i] && lis2[j] + 1 > lis2[i])24 lis2[i] = lis2[j] + 1;25 }26 // printf("lis2[%d]: %d\n", i, lis2[i]);27 }28 for(int i = 1; i <= n; i++) {29 int mid = 0;30 mid = (i - lis1[i]) + (n - i - lis2[i]);31 if(mid < ans) ans = mid;32 }33 printf("%d", ans+1);34 return 0;35 }

 

转载于:https://www.cnblogs.com/Hwjia/p/9876221.html

你可能感兴趣的文章
mysqldump备份数据库,并删除7天前的备份文件脚本
查看>>
webbench 网站压力测试工具
查看>>
Alter index coalesce VS shrink space
查看>>
samba共享
查看>>
XenServer 6.5实战系列:Install Update For XenServer 6.5
查看>>
LAMP报PDO的错怎么办?
查看>>
shell脚本介绍、shell脚本结构和执行、date命令用法、shell脚本中的变量
查看>>
Network Based Application Recognition (NBAR) 网络应用程序识别
查看>>
Linux服务器性能评估与优化、监控利器---dstat应用
查看>>
linux添加新硬盘、格式化以及自动挂载
查看>>
SQLSERVER备份脚本
查看>>
zabbix 自动发现 tomcat日志异常文件数量
查看>>
javascript的正则表达式
查看>>
windows服务器远程桌面(rdpclip.exe)的妙用
查看>>
使用inotify监视Linux文件变化
查看>>
SQLite第八课 auth.c授权文件解析
查看>>
nginx日志切割
查看>>
配置Samba服务器
查看>>
AIX内存性能优化和监视
查看>>
haproxy根据客户端浏览器进行跳转
查看>>