Contest 155
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的更多相关文章
- 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/ ...
- 「CometOJ」Contest #11
Link Aeon 显然字典序最大就是把最小的字母放在最后 Business [动态规划] 简单dp dp[i][j]dp[i][j]dp[i][j]表示到第iii天,当前有jjj块钱,最后返还的钱最 ...
- Programming Contest Problem Types
Programming Contest Problem Types Hal Burch conducted an analysis over spring break of 1999 and ...
- 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) ...
- 2016 Multi-University Training Contest 2 D. Differencia
Differencia Time Limit: 10000/10000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Tot ...
- 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) ...
- 李洪强iOS经典面试题155 - const,static,extern详解(面试必备)
李洪强iOS经典面试题155 - const,static,extern详解(面试必备) 一.const与宏的区别(面试题): const简介:之前常用的字符串常量,一般是抽成宏,但是苹果不推荐我们抽 ...
- hdu-5988 Coding Contest(费用流)
题目链接: Coding Contest Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Ot ...
- ZOJ 3703 Happy Programming Contest
偏方记录背包里的物品.....每个背包的价值+0.01 Happy Programming Contest Time Limit: 2 Seconds Memory Limit: 65536 ...
随机推荐
- Haproxy的应用
如上图所示,在 192.168.1.0/24 这个网段的客户端想要访问在 172.20.0.0/20 网段内的服务器,所有的通信又不想暴露在互联网上,因此可以在这两个网段内分别都放一台 Haproxy ...
- log4p踩坑总结
log4p可以方便的打印格式化日志,在实际应用时,因没有好好理解官网中的配置文件,导致出错了几次. 现总结如下: 1. 安装 pip3 install log4p 2. 查看配置说明,请参考https ...
- 全面认识HBase架构(建议收藏)
在网上看过很多HBaes架构相关的文章,内容深浅不一,直到发现了一篇MapR官网的文章https://mapr.com/blog/in-depth-look-hbase-architecture/#. ...
- Await/Async
Async其实就是Generator函数的语法糖. 啥是语法糖?就是一种更容易让人理解,代码可读性更高的另外一种语法. const asyncRead = async function(){ cons ...
- nginx前端服务部署
一.登录服务器 登录跳板机 执行list,列出所有机器 执行dssh 机器序号,如dssh 1,选择机器 二. 创建nginx配置文件 进入nginx配置目录:cd usr/local/nginx/c ...
- hibernate中cascade属性以及inverse属性
级联操作 cascadecascade的常用属性值 none 默认值 不做任何变动 save-update 保存或修改 delete 删除 all 包含save-update 和delete等行为 c ...
- vue中数据请求的三种方法
注意请求可能存在跨域问题,需要去配置好 这三种建议使用axios 1.resource Vue 要实现异步加载需要使用到 vue-resource 库. Vue.js 2.0 版本推荐使用 axios ...
- div中单行文字垂直水平居中
1.div中单行文字垂直水平居中.条件:外层div高度已经给定.代码如下: 复制代码代码如下: <style type="text/css">.div3{border: ...
- 《Java8 Stream编码实战》正式推出
当我第一次在项目代码中看到Stream流的时候,心里不由得骂了一句"傻X"炫什么技.当我开始尝试在代码中使用Stream时,不由得感叹真香. 记得以前有朋友聊天说,他在代码中用了 ...
- Codeforces Round #369 (Div. 2)E
ZS and The Birthday Paradox 题目:一年有2^n天,有k个人,他们的生日有冲突的概率是多少?答案用最简分数表示,分子分母对1e6+3取模.1 ≤ n ≤ 10^18, 2 ≤ ...