【dp+桶】Sorting Railway Cars CodeForces
来源:互联网 发布:php 析构函数的用法 编辑:程序博客网 时间:2024/05/18 01:29
Think:
1知识点:dp+桶
2反思:
(1):认真读题,理解题意,补题过程中发现题目的一些关键点之前自己做的时候都没有发现,比如按照递增顺序和1<=Pi<=n这两个关键条件
(2):不要固话思维,要经常反思和思考如何将知识点巧妙地结合在一起,将一些好的思想互相融合,进而尝试去创造新的算法
3方法:
最终状态为递增顺序,题目提示数据1<=Pi<=n,因此最终状态为按照1递增的等差数列,每次移动只能移动到首位或者末位,因此可思考是否为寻找最长的按照1递增的等差子序列,当找到最长的按照1递增的等差子序列,那么剩下的过程便是将其它元素按照一定顺序插入到首位或者末位,进而将问题锁定到如何寻找序列中的按照1递增的最长的等差子序列,进而思考是否含有动态转移方程,发现dp[num] = dp[num-1] + 1,之后思考如何通过num-1联系num,数据范围1<=N<=100000,思考桶的思想,发现可以通过下标联系关系,思考细节,代码实现
4思考:
(1):dp的一些题目或许可以离散化之后通过下标联系转移关系
以下为Accepted代码
#include <cstdio>#include <cstring>#include <algorithm>using namespace std;int book[101400];int main(){ int n, i, x, ans; while(~scanf("%d", &n)){ ans = 0; memset(book, 0, sizeof(book)); for(i = 1; i <= n; i++){ scanf("%d", &x); book[x] = book[x-1] + 1; ans = max(ans, book[x]); } printf("%d\n", n-ans); } return 0;}
阅读全文
0 0
- 【dp+桶】Sorting Railway Cars CodeForces
- codeforces C. Sorting Railway Cars 贪心
- Sorting Railway Cars----CodeForces 605A
- codeforces 605 A Sorting Railway Cars
- Codeforces 606 C Sorting Railway Cars【思维】
- Codeforces 606 C Sorting Railway Cars
- Codeforces 605A Sorting Railway Cars [贪心]
- 【Codeforces 605A】【贪心】Sorting Railway Cars
- Codeforces 605A.Sorting Railway Cars【技巧】
- codeforces 335 C Sorting Railway Cars
- 贪心--Sorting Railway Cars
- Sorting Railway Cars
- C - Sorting Railway Cars
- C. Sorting Railway Cars
- Sorting Railway Cars
- Sorting Railway Cars
- Sorting Railway Cars
- Codeforces Round #335 (Div. 2) 605A Sorting Railway Cars
- 了解Material Design
- linux 安装tomcat7
- 统计字符号串“aaaabbbccccddfggh”中字母个数或统计最多字母数
- String、java.Util.Date和java.sql.Date之间的转换
- 如何去除Word页眉中的横线
- 【dp+桶】Sorting Railway Cars CodeForces
- XML编程,CURD,异常处理
- 新手篇——学习网页开发需要多长时间就能找到工作
- AngularJS用户添加,密码修改
- web.xml 配置中classpath: 与classpath*:的区别
- VUE 学习笔记 从零开始一步一步构建 VUE 单页应用(三)
- 关于消息队列的使用
- 深入分析类与对象--综合实战:简单java类
- C#回顾学习笔记十四:C#中自定义方法与调用方法