2019-09-27 22:39:24

总体感受:这次比赛心态不够好,最后导致没有很好的完成比赛。

注意点

1)保持心态稳定,是情商的体现;

2)hard题的覆盖还是明显不够;

  • 1201. Ugly Number III

问题描述:

问题求解:

本体中的数据规模已经决定了使用O(n)的解法是肯定会超时的。那么自然而然就是使用二分查找了。

这里有个地方需要注意的是数字超过limit,需要转成long进行计算。

另外,二分以后一律采用模版lower_bound计算。

    public int nthUglyNumber(int n, int a, int b, int c) {
int l = 0;
int r = (int)(2 * 1e9);
while (r - l > 1) {
int mid = l + (r - l) / 2;
int num = get_cnt(mid, a, b, c);
if (num >= n) r = mid;
else l = mid;
}
return r;
} private long gcd(long x, long y) {
return y == 0 ? x : gcd(y, x % y);
} private long lcm(long a, long b) {
return a * b / gcd(a, b);
} private int get_cnt(long n, long a, long b, long c) {
return (int)(n / a + n / b + n / c - n / lcm(a, b) - n / lcm(a, c) - n / lcm(b, c) + n / lcm(a, lcm(b, c)));
}
  • 1202. Smallest String With Swaps

问题描述:

问题求解

本题一看就知道是并查集可以解决的,但是当时卡在了如何将一个组内的数字回填回去。

其实,很简单,就是将idx也记录下来最后将组内的字符串排序后按照排序的idx回填回去就好了。

当然,也是可以使用dfs解决的。

public String smallestStringWithSwaps(String s, List<List<Integer>> pairs) {
int n = s.length();
char[] res = new char[n];
List<Integer>[] g = new List[n];
for (int i = 0; i < n; i++) {
g[i] = new ArrayList<>();
}
for (List<Integer> pair : pairs) {
int u = pair.get(0);
int v = pair.get(1);
g[u].add(v);
g[v].add(u);
}
List<Integer> idxs = new ArrayList<>();
StringBuffer sb = new StringBuffer();
Set<Integer> seen = new HashSet<>();
for (int i = 0; i < n; i++) {
if (seen.contains(i)) continue;
idxs.clear();
sb.setLength(0);
dfs(g, s, i, idxs, sb, seen);
char[] collect = sb.toString().toCharArray();
Collections.sort(idxs);
Arrays.sort(collect);
for (int j = 0; j < idxs.size(); j++) {
res[idxs.get(j)] = collect[j];
}
}
return new String(res);
} private void dfs(List<Integer>[] g, String s, int curr, List<Integer> idxs, StringBuffer sb, Set<Integer> seen) {
if (seen.contains(curr)) return;
seen.add(curr);
idxs.add(curr);
sb.append(s.charAt(curr));
for (int v : g[curr]) {
dfs(g, s, v, idxs, sb, seen);
}
}

  

Contest 155的更多相关文章

  1. The Preliminary Contest for ICPC Asia Shanghai 2019 C Triple(FFT+暴力)

    The Preliminary Contest for ICPC Asia Shanghai 2019 C Triple(FFT+暴力) 传送门:https://nanti.jisuanke.com/ ...

  2. 「CometOJ」Contest #11

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

  3. Programming Contest Problem Types

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

  4. 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) ...

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

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

  6. 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) ...

  7. 李洪强iOS经典面试题155 - const,static,extern详解(面试必备)

    李洪强iOS经典面试题155 - const,static,extern详解(面试必备) 一.const与宏的区别(面试题): const简介:之前常用的字符串常量,一般是抽成宏,但是苹果不推荐我们抽 ...

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

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

  9. ZOJ 3703 Happy Programming Contest

    偏方记录背包里的物品.....每个背包的价值+0.01 Happy Programming Contest Time Limit: 2 Seconds      Memory Limit: 65536 ...

随机推荐

  1. Errors running builder JavaScript Validator

    问题: 解决方法: 方法一. 选择对应项目—-右键Properties—-Builders—-取消“JavaScript Validator”的勾就OK了 方法二. 找到“.project”文件,找到 ...

  2. Android系统使用Shell脚本预装apk

    客户需求:需要在Android系统预安装一个或者若干个apk,客户可以选择自行卸载并且卸载后系统再次启动并不会再次自动安装. 考虑到需要批量安装应用,我这里考虑到使用灵活的shell脚本.shell脚 ...

  3. 【pic+js+gh】免费高速图床方案

    本文用到的工具或网站 PicGo jsdelivr github 速度对比 Github的速度: jsdelivrCDN的速度: 下载PicGo 首先进入PicGo的下载地址 选择最新版本下载,根据自 ...

  4. 【原创】(三)Linux进程调度器-进程切换

    背景 Read the fucking source code! --By 鲁迅 A picture is worth a thousand words. --By 高尔基 说明: Kernel版本: ...

  5. springmvc两种配置方法

    基于配置文件xml方式, 配置springmvc步骤: 1.在pom文件中引入jar包: <!--导入springmvc的jar包--> <dependency> <gr ...

  6. Django开发框架知识点

    一.什么是web服务器(了解) 当我们在浏览器输入URL后,浏览器会先请求DNS服务器,获得请求站点的 IP 地址.然后发送一个HTTP Request(请求)给拥有该 IP 的主机,接着就会接收到服 ...

  7. C#版免费离线人脸识别——虹软ArcSoft V3.0

    [温馨提示] 本文共678字(不含代码),8张图.预计阅读时间需要6分钟. 1. 前言 人脸识别&比对发展到今天,已经是一个非常成熟的技术了,而且应用在生活的方方面面,比如手机.车站.天网等. ...

  8. IDEA非maven项目怎么添加jar包

    今天本人给大家讲解一下在使用Tomcat启动后,报找不到JAR包的问题,那么如何在IDEA中添加jar包,下面请看,如有不对的或者讲的不好的可以多多提出,我会进行相应的更改,先提前感谢提出意见的各位了 ...

  9. 遍历tree

    1.解决方法 filterData (arr) { var newArr = [] arr.map((item) => { var childrenArr if (item.children ! ...

  10. Resource interpreted as Stylesheet but transferred with MIME type text/html: css失效

    异常信息: Resource interpreted as Stylesheet but transferred with MIME type text/html: 可能原因 过滤器或者某个地方对所有 ...