2019-09-14 23:16:25

总体感受:节奏尚可,难度尚可。然而还是卡在了最后一题,完全没有想到使用dp。

注意点

1)Contest的最后一题往往是DP,Graph,这个敏感度需要提高;

2)DP的题目还是远远不够熟练。

  • 801. Minimum Swaps To Make Sequences Increasing

问题描述:

问题求解:

keep[i] : 保留i位置的数字,使得[0, i]两个数组递增的最小交换次数。

swap[i] : 交换i位置的数字,使得[0, i]两个数组递增的最小交换次数。

    public int minSwap(int[] A, int[] B) {
int n = A.length;
int[] keep = new int[n];
int[] swap = new int[n];
Arrays.fill(keep, n);
Arrays.fill(swap, n);
keep[0] = 0;
swap[0] = 1;
for (int i = 1; i < n; i++) {
if (A[i] > A[i - 1] && B[i] > B[i - 1]) keep[i] = Math.min(keep[i], keep[i - 1]);
if (A[i] > B[i - 1] && B[i] > A[i - 1]) keep[i] = Math.min(keep[i], swap[i - 1]);
if (B[i] > A[i - 1] && A[i] > B[i - 1]) swap[i] = Math.min(swap[i], keep[i - 1] + 1);
if (B[i] > B[i - 1] && A[i] > A[i - 1]) swap[i] = Math.min(swap[i], swap[i - 1] + 1);
}
return Math.min(keep[n - 1], swap[n - 1]);
}

  

  • 1187. Make Array Strictly Increasing

问题描述:

问题求解:

    public int makeArrayIncreasing(int[] arr1, int[] arr2) {
int n = arr1.length;
int[] keep = new int[n]; Set<Integer> set = new TreeSet<>();
for (int num : arr2) set.add(num);
int m = set.size();
int[] sorted = new int[m];
int idx = 0;
for (int num : set) sorted[idx++] = num;
int[] swap = new int[m]; Arrays.fill(keep, n + 1);
keep[0] = 0;
for (int i = 0; i < m; i++) swap[i] = 1;
for (int i = 1; i < n; i++) {
if (arr1[i] > arr1[i - 1]) keep[i] = keep[i - 1];
int cur_min = n;
for (int j = 0; j < m; j++) {
int cur_swap = n + 1;
if (arr1[i] > sorted[j]) keep[i] = Math.min(keep[i], swap[j]);
int temp = cur_min;
cur_min = Math.min(cur_min, swap[j]);
if (sorted[j] > arr1[i - 1]) cur_swap = Math.min(cur_swap, keep[i - 1] + 1);
cur_swap = Math.min(cur_swap, temp + 1);
swap[j] = cur_swap;
}
}
int res = Math.min(n + 1, keep[n - 1]);
for (int i = 0; i < m; i++) res = Math.min(res, swap[i]);
return res > n ? -1 : res;
}

  

Contest 153的更多相关文章

  1. AtCoder Beginner Contest 153 题解

    目录 AtCoder Beginner Contest 153 题解 A - Serval vs Monster 题意 做法 程序 B - Common Raccoon vs Monster 题意 做 ...

  2. noip-2006普及组-数列- 【模拟-找规律-快速幂】

    链接:https://ac.nowcoder.com/acm/contest/153/1047 来源:牛客网 题目描述 给定一个正整数k( ≤ k ≤ ),把所有k的方幂及所有有限个互不相等的k的方幂 ...

  3. 坑爹CF April Fools Day Contest题解

    H - A + B Strikes Back A + B is often used as an example of the easiest problem possible to show som ...

  4. 「CometOJ」Contest #11

    Link Aeon 显然字典序最大就是把最小的字母放在最后 Business [动态规划] 简单dp dp[i][j]dp[i][j]dp[i][j]表示到第iii天,当前有jjj块钱,最后返还的钱最 ...

  5. Programming Contest Problem Types

        Programming Contest Problem Types Hal Burch conducted an analysis over spring break of 1999 and ...

  6. hdu 4946 2014 Multi-University Training Contest 8

    Area of Mushroom Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) ...

  7. 2016 Multi-University Training Contest 2 D. Differencia

    Differencia Time Limit: 10000/10000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Tot ...

  8. 2016 Multi-University Training Contest 1 G. Rigid Frameworks

    Rigid Frameworks Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) ...

  9. hdu-5988 Coding Contest(费用流)

    题目链接: Coding Contest Time Limit: 2000/1000 MS (Java/Others)     Memory Limit: 65536/65536 K (Java/Ot ...

随机推荐

  1. Jupyter自定义设置详解

    今天专门花时间总结梳理一下jupyter的一些高级设置,jupyter我已经介绍过一次基本内容了,Setup and Linux | James Chen's Blogs,尤其是如何在服务器运行jup ...

  2. C++走向远洋——(项目二、存储班长信息的学生类、派生)

    */ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.cpp * 作者:常轩 * 微信公众号:Worldhe ...

  3. 【ThinkPHP6:从TP3升级到放弃】1. 前言及准备工作

    春节期间因为疫情的关系出不去门,所以就研究了一下ThinkPHP的最新版本6.0.2, 自己写了一个博客程序. 现在, 打算写一个ThinkPHP6的专题, 用来把自己在写博客的过程中入过的坑和获得的 ...

  4. 达拉草201771010105《面向对象程序设计(java)》第十四周学习总结

    达拉草201771010105<面向对象程序设计(java)>第十四周学习总结 第一部分:理论知识 布局管理器: 布局管理器是一组类. 实现java.awt.LayoutManager接口 ...

  5. JS逆向某网站登录密码分析

    声明: 本文仅供研究学习使用,请勿用于非法用途! 目标网站 aHR0cHM6Ly9hdXRoLmFsaXBheS5jb20vbG9naW4vaW5kZXguaHRt 今日目标网站是某知名支付网站,感觉 ...

  6. bootstrap简介与入门

    bootstrap前端框架 1.概念:一个前端开发的框架,Bootstrap,来自 Twitter,是目前很受欢迎的前端框架.Bootstrap 是基于 HTML.CSS.JavaScript 的,它 ...

  7. python django 之 django自定制分页

    自定制的分页模块 #!/usr/bin/env python3 # V1.1 解决问题: # 1). p 参数 为 负数 与 p 参数查过总页数时报错的问题 # V1.2 解决的问题: # 1). 点 ...

  8. Kali系统中20个超好用黑客渗透工具,你知道几个?

    1. Aircrack-ng Aircrack-ng是用来破解WEP/WAP/WPA 2无线密码最佳的黑客工具之一! 它通过接收网络的数据包来工作,并通过恢复的密码进行分析.它还拥有一个控制台接口.除 ...

  9. 如何在windows server上安装 Windows评估和部署工具包

    此文是<.NET内存宝典>一书的售后服务系列文章之一. 在<.NET内存宝典>一书(目前我还在翻译本书,预计年底出版)的第3章 “内存测量”里的“Windows性能工具包”一节 ...

  10. js的Set和Map集合

    目录 1.js的Set介绍 1-1.Set基础用法 1-2.Set对象的操作方法 1-3.Set对象的遍历方法 2.js的Set扩展WeakSet篇 3.js的Map介绍 3-1.Map基础用法 3- ...