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 ...
随机推荐
- RocketMQ Py客户端
#!/bin/bash yum install make cmake gcc-c++ python-devel zlib-devel cd /home/amy git clone https://gi ...
- pattern space and hold space of sed
Copied from: stackoverflow When sed reads a file line by line, the line that has been currently read ...
- Ueditor富文本编辑器--Ctrl V 粘贴后原有图片显示错误
最近负责将公司官网从静态网站改版成动态网站,方便公司推广营销人员修改增加文案,避免官网文案维护过于依赖技术人员.在做后台管理系统时用到了富文本编辑器Ueditor,因为公司有一个阿里云文件资源服务器, ...
- 创建SpringMVC项目过程
1.导入对应jar包 <properties> <spring.version>5.0.2.RELEASE</spring.version> </proper ...
- 项目页面集成ckeditor富文本编辑器
步骤一.引入ckeditor.js (注:本实例以ThinkPHP3.2框架为载体,不熟悉ThinkPHP的朋友请自行补习,ckeditor文件代码内容也请去ckeditor官网自行下载) 作为程序员 ...
- layer打开弹窗时传递参数(content:)
在使用layer打开弹窗时,我希望带一些参数过去,进行某些判断.直接就可以用链接+参数的方式即可. js var userGrade=Mrant layer.open({ title: '权限管理', ...
- CSS 图像拼合技术(雪碧图)
1.css 图像拼合 图像拼合就是单个图像的集合. 有许多图像的网页可能需要很长的时间来加载和生成多个服务器的请求. 使用图像拼合会降低服务器的请求数量,并节省带宽. 代码如下: <!docty ...
- springboot 整合logback
日志包使用的是springboot内置的日志包,所以我们不许要再专门导入日志包 1.logback-spring.xml配置 <?xml version="1.0" enco ...
- 前端---css3优化
一.视差滚动(经过优化后的代码) .front::before { content: ''; position: fixed; // 代替background-attachment width: 10 ...
- 一次生产环境搭建11g RAC的记录
一.使用惠普3par工具配置共享存储 该部分可由惠普工作人员协助配置,只需将需求告知即可.如果想自己配置,惠普厂商会发送相关的软件工具以及操作手册给用户. 用putty登陆共享存储,使用showpd ...