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 ...
随机推荐
- sphinx + mysql 全文索引配置
参考地址 http://v9.help.phpcms.cn/html/2010/search_0919/35.html http://blog.sina.com.cn/s/blog_705e4fdc0 ...
- RHEL系统下安装atlassian-jira-5
操作系统:RHEL 6.4 x86_64 Jira版本:atlassian-jira-5.2.11-x64.bin 安装路径:/opt/atlassian/jira/ 数据保存路径:/opt/atla ...
- kali pinyin
重装了kali,原来一直用的ibus pinyin重装之后再apt-get install的时候总是找不到包,换了各种源都不行,纠结N久果断换别的输入法了. apt-get install fcitx ...
- Geohash介绍
Geohash介绍 Geohash是一种地址编码,能把二维的经纬度编码成字符串,某一区域范围内的经纬度是一致的,其中有编码长度控制区域的范围 精度参考 使用场景 实时LBS应用 LBS应用中,搜索某某 ...
- SpringBoot快速上手系列01:入门
1.环境准备 1.1.Maven安装配置 Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件. 下载Maven可执行文件 cd /usr/local ...
- 大厂面试官最常问的@Configuration+@Bean(JDKConfig编程方式)
大厂面试官最常问的@Configuration+@Bean(JDKConfig编程方式) 现在大部分的Spring项目都采用了基于注解的配置,采用了@Configuration 替换标签的做法.一 ...
- AI:深度学习用于文本处理
同本文一起发布的另外一篇文章中,提到了 BlueDot 公司,这个公司致力于利用人工智能保护全球人民免受传染病的侵害,在本次疫情还没有引起强烈关注时,就提前一周发出预警,一周的时间,多么宝贵! 他们的 ...
- CSS3详解:border color
继续我们的 ,大家觉得怎么样呢?
- 内网渗透之信息收集-Linux系统篇
linux 系统信息 grep MenTotal /proc/meminfo #查看系统内存总量 cat /etc/issue #查看系统名称 cat /etc/lsb-release #查看系统名称 ...
- 【tomcat系列】配置tomcat远程访问
当程序部署在tomcat上后,需要监测tomcat的性能和监测tomcat的各项指标,如内存使用情况,cpu使用情况,jvm实际情况等,对于这些指标的监控,tomcat提供了访问入口,然而tomcat ...