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. Haproxy的应用

    如上图所示,在 192.168.1.0/24 这个网段的客户端想要访问在 172.20.0.0/20 网段内的服务器,所有的通信又不想暴露在互联网上,因此可以在这两个网段内分别都放一台 Haproxy ...

  2. log4p踩坑总结

    log4p可以方便的打印格式化日志,在实际应用时,因没有好好理解官网中的配置文件,导致出错了几次. 现总结如下: 1. 安装 pip3 install log4p 2. 查看配置说明,请参考https ...

  3. 全面认识HBase架构(建议收藏)

    在网上看过很多HBaes架构相关的文章,内容深浅不一,直到发现了一篇MapR官网的文章https://mapr.com/blog/in-depth-look-hbase-architecture/#. ...

  4. Await/Async

    Async其实就是Generator函数的语法糖. 啥是语法糖?就是一种更容易让人理解,代码可读性更高的另外一种语法. const asyncRead = async function(){ cons ...

  5. nginx前端服务部署

    一.登录服务器 登录跳板机 执行list,列出所有机器 执行dssh 机器序号,如dssh 1,选择机器 二. 创建nginx配置文件 进入nginx配置目录:cd usr/local/nginx/c ...

  6. hibernate中cascade属性以及inverse属性

    级联操作 cascadecascade的常用属性值 none 默认值 不做任何变动 save-update 保存或修改 delete 删除 all 包含save-update 和delete等行为 c ...

  7. vue中数据请求的三种方法

    注意请求可能存在跨域问题,需要去配置好 这三种建议使用axios 1.resource Vue 要实现异步加载需要使用到 vue-resource 库. Vue.js 2.0 版本推荐使用 axios ...

  8. div中单行文字垂直水平居中

    1.div中单行文字垂直水平居中.条件:外层div高度已经给定.代码如下: 复制代码代码如下: <style type="text/css">.div3{border: ...

  9. 《Java8 Stream编码实战》正式推出

    ​当我第一次在项目代码中看到Stream流的时候,心里不由得骂了一句"傻X"炫什么技.当我开始尝试在代码中使用Stream时,不由得感叹真香. 记得以前有朋友聊天说,他在代码中用了 ...

  10. Codeforces Round #369 (Div. 2)E

    ZS and The Birthday Paradox 题目:一年有2^n天,有k个人,他们的生日有冲突的概率是多少?答案用最简分数表示,分子分母对1e6+3取模.1 ≤ n ≤ 10^18, 2 ≤ ...