auto commit
This commit is contained in:
741
notes/2016 校招真题题解.md
Normal file
741
notes/2016 校招真题题解.md
Normal file
@ -0,0 +1,741 @@
|
||||
<!-- GFM-TOC -->
|
||||
* [ǰ<EFBFBD><EFBFBD>](#ǰ<><C7B0>)
|
||||
* [1. С<><D0A1>-С<><D0A1>Git](#1-С<><D0A1>-С<><D0A1>git)
|
||||
* [2. С<><D0A1>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>](#2-С<><D0A1>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
* [3. С<><D0A1>-<2D>й<EFBFBD>ţ<EFBFBD><C5A3>](#3-С<><D0A1>-<2D>й<EFBFBD>ţ<EFBFBD><C5A3>)
|
||||
* [4. <><CEA2>-LUCKY STRING](#4-<><CEA2>-lucky-string)
|
||||
* [5. <><CEA2>-Numeric Keypad](#5-<><CEA2>-numeric-keypad)
|
||||
* [6. <><CEA2>-Spring Outing](#6-<><CEA2>-spring-outing)
|
||||
* [7. <><CEA2>-S-expression](#7-<><CEA2>-s-expression)
|
||||
* [8. <20><>Ϊ-<2D><><EFBFBD>߷<EFBFBD><DFB7>Ƕ<EFBFBD><C7B6><EFBFBD>](#8-<2D><>Ϊ-<2D><><EFBFBD>߷<EFBFBD><DFB7>Ƕ<EFBFBD><C7B6><EFBFBD>)
|
||||
* [9. <20><>Ϊ-<2D><EFBFBD><F2B5A5B4><EFBFBD><EFBFBD><EFBFBD>¼](#9-<2D><>Ϊ-<2D><EFBFBD><F2B5A5B4><EFBFBD><EFBFBD><EFBFBD>¼)
|
||||
* [10. <20><>Ϊ-<2D>˿<EFBFBD><CBBF>ƴ<EFBFBD>С](#10-<2D><>Ϊ-<2D>˿<EFBFBD><CBBF>ƴ<EFBFBD>С)
|
||||
* [11. ȥ<>Ķ<EFBFBD>-<2D><><EFBFBD>ֲ<EFBFBD><D6B2><EFBFBD>](#11-ȥ<>Ķ<EFBFBD>-<2D><><EFBFBD>ֲ<EFBFBD><D6B2><EFBFBD>)
|
||||
* [12. ȥ<>Ķ<EFBFBD>-<2D><EFBFBD><D7B8>ظ<EFBFBD><D8B8>ַ<EFBFBD>](#12-ȥ<>Ķ<EFBFBD>-<2D><EFBFBD><D7B8>ظ<EFBFBD><D8B8>ַ<EFBFBD>)
|
||||
* [13. ȥ<>Ķ<EFBFBD>-Ѱ<><D1B0>Coder](#13-ȥ<>Ķ<EFBFBD>-Ѱ<><D1B0>coder)
|
||||
* [14. <20><><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ](#14-<2D><><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ)
|
||||
* [15. <20><><EFBFBD><EFBFBD>-<2D><><EFBFBD>ӷ<EFBFBD>ת](#15-<2D><><EFBFBD><EFBFBD>-<2D><><EFBFBD>ӷ<EFBFBD>ת)
|
||||
* [16. <20><><EFBFBD><EFBFBD>-<2D>ݷ<EFBFBD>](#16-<2D><><EFBFBD><EFBFBD>-<2D>ݷ<EFBFBD>)
|
||||
* [17. <20><><EFBFBD><EFBFBD>-ֱ<><D6B1>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>](#17-<2D><><EFBFBD><EFBFBD>-ֱ<><D6B1>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
* [18. <20><><EFBFBD><EFBFBD>-<2D>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>](#18-<2D><><EFBFBD><EFBFBD>-<2D>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
* [19. <20><><EFBFBD><EFBFBD>-ƽ<><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>](#19-<2D><><EFBFBD><EFBFBD>-ƽ<><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
* [20. <20>ٶ<EFBFBD>-<2D>ﷸת<EFB7B8><D7AA>](#20-<2D>ٶ<EFBFBD>-<2D>ﷸת<EFB7B8><D7AA>)
|
||||
* [22. <20>ٶ<EFBFBD>-<2D>ü<EFBFBD><C3BC><EFBFBD><EFBFBD><EFBFBD>ֽ](#22-<2D>ٶ<EFBFBD>-<2D>ü<EFBFBD><C3BC><EFBFBD><EFBFBD><EFBFBD>ֽ)
|
||||
* [23. <20>ٶ<EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>](#23-<2D>ٶ<EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
* [24. <20>ٶ<EFBFBD>-Ģ<><C4A2><EFBFBD><EFBFBD>](#24-<2D>ٶ<EFBFBD>-Ģ<><C4A2><EFBFBD><EFBFBD>)
|
||||
<!-- GFM-TOC -->
|
||||
|
||||
# ǰ<><C7B0>
|
||||
|
||||
ʡ<EFBFBD>ԵĴ<EFBFBD><EFBFBD>룺
|
||||
|
||||
```java
|
||||
import java.util.*;
|
||||
```
|
||||
|
||||
```java
|
||||
public class Solution {
|
||||
}
|
||||
```
|
||||
|
||||
```java
|
||||
public class Main {
|
||||
public static void main(String[] args) {
|
||||
Scanner in = new Scanner(System.in);
|
||||
while (in.hasNext()) {
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
# 1. С<><D0A1>-С<><D0A1>Git
|
||||
|
||||
- <20>ؽ<EFBFBD><D8BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
- ʹ<><CAB9> LCA
|
||||
|
||||
```java
|
||||
private class TreeNode {
|
||||
int id;
|
||||
List<TreeNode> childs = new ArrayList<>();
|
||||
|
||||
TreeNode(int id) {
|
||||
this.id = id;
|
||||
}
|
||||
}
|
||||
|
||||
public int getSplitNode(String[] matrix, int indexA, int indexB) {
|
||||
int n = matrix.length;
|
||||
boolean[][] linked = new boolean[n][n]; // <20>ؽ<EFBFBD><D8BD>ڽӾ<DABD><D3BE><EFBFBD>
|
||||
for (int i = 0; i < n; i++) {
|
||||
for (int j = 0; j < n; j++) {
|
||||
linked[i][j] = matrix[i].charAt(j) == '1';
|
||||
}
|
||||
}
|
||||
TreeNode tree = constructTree(linked, 0);
|
||||
TreeNode ancestor = LCA(tree, new TreeNode(indexA), new TreeNode(indexB));
|
||||
return ancestor.id;
|
||||
}
|
||||
|
||||
private TreeNode constructTree(boolean[][] linked, int root) {
|
||||
TreeNode tree = new TreeNode(root);
|
||||
for (int i = 0; i < linked[root].length; i++) {
|
||||
if (linked[root][i]) {
|
||||
linked[i][root] = false; // <20><>Ϊ<EFBFBD><CEAA>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD>ڽӾ<DABD><D3BE><EFBFBD><EFBFBD><EFBFBD>˫<EFBFBD><CBAB><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>תΪ<D7AA><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
tree.childs.add(constructTree(links, i));
|
||||
}
|
||||
}
|
||||
return tree;
|
||||
}
|
||||
|
||||
private TreeNode LCA(TreeNode root, TreeNode p, TreeNode q) {
|
||||
if (root == null || root.id == p.id || root.id == q.id) return root;
|
||||
TreeNode ancestor = null;
|
||||
int cnt = 0;
|
||||
for (int i = 0; i < root.childs.size(); i++) {
|
||||
TreeNode tmp = LCA(root.childs.get(i), p, q);
|
||||
if (tmp != null) {
|
||||
ancestor = tmp;
|
||||
cnt++;
|
||||
}
|
||||
}
|
||||
return cnt == 2 ? root : ancestor;
|
||||
}
|
||||
```
|
||||
|
||||
# 2. С<><D0A1>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ķ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʊ<EFBFBD>ʾΪ 1 <20><><EFBFBD><EFBFBD>һλ<D2BB><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC>λ<EFBFBD><CEBB>
|
||||
|
||||
```java
|
||||
public int countBitDiff(int m, int n) {
|
||||
return Integer.bitCount(m ^ n);
|
||||
}
|
||||
```
|
||||
|
||||
# 3. С<><D0A1>-<2D>й<EFBFBD>ţ<EFBFBD><C5A3>
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⣬<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>СΪ 2 <20>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
״̬ת<EFBFBD>Ʒ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>£<EFBFBD>
|
||||
|
||||
```html
|
||||
dp[i, j] = max(dp[i, j-1], prices[j] - prices[jj] + dp[i-1, jj]) { jj in range of [0, j-1] } = max(dp[i, j-1], prices[j] + max(dp[i-1, jj] - prices[jj]))
|
||||
```
|
||||
|
||||
```java
|
||||
public int calculateMax(int[] prices) {
|
||||
int n = prices.length;
|
||||
int[][] dp = new int[3][n];
|
||||
for (int i = 1; i <= 2; i++) {
|
||||
int localMax = dp[i - 1][0] - prices[0];
|
||||
for (int j = 1; j < n; j++) {
|
||||
dp[i][j] = Math.max(dp[i][j - 1], prices[j] + localMax);
|
||||
localMax = Math.max(localMax, dp[i - 1][j] - prices[j]);
|
||||
}
|
||||
}
|
||||
return dp[2][n - 1];
|
||||
}
|
||||
```
|
||||
|
||||
# 4. <><CEA2>-LUCKY STRING
|
||||
|
||||
- 쳲<><ECB3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>п<EFBFBD><D0BF><EFBFBD>Ԥ<EFBFBD><D4A4><EFBFBD>㣻
|
||||
- <20><>ͷ<EFBFBD><CDB7>β<EFBFBD><CEB2><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>Ĺ<EFBFBD><C4B9>̣<EFBFBD>ÿһ<C3BF><D2BB>ѭ<EFBFBD><D1AD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>һ<EFBFBD><D2BB> Set <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> i <20><> j <20><><EFBFBD>ֵ<EFBFBD><D6B5>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Set <20><>֤<EFBFBD><D6A4><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Set <20>Ĵ<EFBFBD>С<EFBFBD><D0A1><EFBFBD>Dz<EFBFBD>ͬ<EFBFBD>ַ<EFBFBD><D6B7>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
```java
|
||||
Set<Integer> fibSet = new HashSet<>(Arrays.asList(1, 2, 3, 5, 8, 13, 21, 34, 55, 89));
|
||||
Scanner in = new Scanner(System.in);
|
||||
String str = in.nextLine();
|
||||
int n = str.length();
|
||||
Set<String> ret = new HashSet<>();
|
||||
for (int i = 0; i < n; i++) {
|
||||
Set<Character> set = new HashSet<>();
|
||||
for (int j = i; j < n; j++) {
|
||||
set.add(str.charAt(j));
|
||||
int cnt = set.size();
|
||||
if (fibSet.contains(cnt)) {
|
||||
ret.add(str.substring(i, j + 1));
|
||||
}
|
||||
}
|
||||
}
|
||||
String[] arr = ret.toArray(new String[ret.size()]);
|
||||
Arrays.sort(arr);
|
||||
for (String s : arr) {
|
||||
System.out.println(s);
|
||||
}
|
||||
```
|
||||
|
||||
# 5. <><CEA2>-Numeric Keypad
|
||||
|
||||
```java
|
||||
private static int[][] canReach = {
|
||||
{1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, // 0
|
||||
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, // 1
|
||||
{1, 0, 1, 1, 0, 1, 1, 0, 1, 1}, // 2
|
||||
{0, 0, 0, 1, 0, 0, 1, 0, 0, 1}, // 3
|
||||
{1, 0, 0, 0, 1, 1, 1, 1, 1, 1}, // 4
|
||||
{1, 0, 0, 0, 0, 1, 1, 0, 1, 1}, // 5
|
||||
{0, 0, 0, 0, 0, 0, 1, 0, 0, 1}, // 6
|
||||
{1, 0, 0, 0, 0, 0, 0, 1, 1, 1}, // 7
|
||||
{1, 0, 0, 0, 0, 0, 0, 0, 1, 1}, // 8
|
||||
{0, 0, 0, 0, 0, 0, 0, 0, 0, 1} // 9
|
||||
};
|
||||
|
||||
private static boolean isLegal(char[] chars, int idx) {
|
||||
if (idx >= chars.length || idx < 0) return true;
|
||||
int cur = chars[idx] - '0';
|
||||
int next = chars[idx + 1] - '0';
|
||||
return canReach[cur][next] == 1;
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
Scanner in = new Scanner(System.in);
|
||||
int T = Integer.valueOf(in.nextLine());
|
||||
for (int i = 0; i < T; i++) {
|
||||
String line = in.nextLine();
|
||||
char[] chars = line.toCharArray();
|
||||
for (int j = 0; j < chars.length - 1; j++) {
|
||||
while (!isLegal(chars, j)) {
|
||||
if (--chars[j + 1] < '0') {
|
||||
chars[j--]--;
|
||||
}
|
||||
for (int k = j + 2; k < chars.length; k++) {
|
||||
chars[k] = '9';
|
||||
}
|
||||
}
|
||||
}
|
||||
System.out.println(new String(chars));
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
# 6. <><CEA2>-Spring Outing
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> N = 3<><33>K = 4 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ۡ<EFBFBD>
|
||||
|
||||
<EFBFBD><EFBFBD>ʼʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0 <20><><EFBFBD>ط<EFBFBD><D8B7><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD>ص㣬Ҳ<E3A3AC><D2B2><EFBFBD>Ǵ<EFBFBD><C7B4>ڼ<EFBFBD><DABC>
|
||||
|
||||
<EFBFBD>ӵ<EFBFBD> 4 <20><><EFBFBD>ص㿪ʼͶƱ<CDB6><C6B1>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB>Ҫ<EFBFBD>Ƚϵ<C8BD> 4 <20><><EFBFBD>ط<EFBFBD><D8B7>͵<EFBFBD> 0 <20><><EFBFBD>ط<EFBFBD><D8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD><EFBFBD><EFBFBD><EFA3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD>˵<EFBFBD> 4 <20><><EFBFBD>ط<EFBFBD><D8B7><EFBFBD><EFBFBD><EFBFBD>ô<EFBFBD><C3B4><EFBFBD>µ<EFBFBD> 4 <20><><EFBFBD>ط<EFBFBD><D8B7><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD>ص㡣
|
||||
|
||||
<EFBFBD>Ӻ<EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD><EFBFBD>裬<EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD><EFBFBD>´<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص㣬ֱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>еط<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD>ͶƱ<EFBFBD><EFBFBD>
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0 <20><><EFBFBD>ص<EFBFBD><D8B5><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD>ص㣬<D8B5><E3A3AC><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD> 4 <20><><EFBFBD>ص<EFBFBD><D8B5><EFBFBD>ֻ<EFBFBD><D6BB>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD>бȽϣ<C8BD><CFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EEBFAA><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1 <20><><EFBFBD>ص<EFBFBD><D8B5><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD>ص㣬<D8B5><E3A3AC>ô<EFBFBD>ڶԵ<DAB6> 2 <20><><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>ͶƱʱ<C6B1><CAB1>ÿ<EFBFBD><C3BF><EFBFBD>˲<EFBFBD><CBB2><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>ǵ<EFBFBD> 2 <20><><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD> 1 <20><><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD>ҲҪ<D2B2><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͶƱ<CDB6>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD>
|
||||
|
||||
```java
|
||||
int N = in.nextInt();
|
||||
int K = in.nextInt();
|
||||
int[][] votes = new int[N][K + 1];
|
||||
for (int i = 0; i < N; i++) {
|
||||
for (int j = 0; j < K + 1; j++) {
|
||||
int place = in.nextInt();
|
||||
votes[i][place] = j;
|
||||
}
|
||||
}
|
||||
int ret = 0;
|
||||
for (int place = K; place > 0; place--) {
|
||||
int cnt = 0;
|
||||
for (int i = 0; i < N; i++) {
|
||||
if (votes[i][place] < votes[i][ret]) {
|
||||
cnt++;
|
||||
}
|
||||
}
|
||||
if (cnt > N / 2) {
|
||||
ret = place;
|
||||
}
|
||||
}
|
||||
System.out.println(ret == 0 ? "otaku" : ret);
|
||||
```
|
||||
|
||||
# 7. <><CEA2>-S-expression
|
||||
|
||||
# 8. <20><>Ϊ-<2D><><EFBFBD>߷<EFBFBD><DFB7>Ƕ<EFBFBD><C7B6><EFBFBD>
|
||||
|
||||
```java
|
||||
int N = in.nextInt();
|
||||
int M = in.nextInt();
|
||||
int[] scores = new int[N];
|
||||
for (int i = 0; i < N; i++) {
|
||||
scores[i] = in.nextInt();
|
||||
}
|
||||
for (int i = 0; i < M; i++) {
|
||||
String str = in.next();
|
||||
if (str.equals("U")) {
|
||||
int id = in.nextInt() - 1;
|
||||
int newScore = in.nextInt();
|
||||
scores[id] = newScore;
|
||||
} else {
|
||||
int idBegin = in.nextInt() - 1;
|
||||
int idEnd = in.nextInt() - 1;
|
||||
int ret = 0;
|
||||
if (idBegin > idEnd) {
|
||||
int t = idBegin;
|
||||
idBegin = idEnd;
|
||||
idEnd = t;
|
||||
}
|
||||
for (int j = idBegin; j <= idEnd; j++) {
|
||||
ret = Math.max(ret, scores[j]);
|
||||
}
|
||||
System.out.println(ret);
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
# 9. <20><>Ϊ-<2D><EFBFBD><F2B5A5B4><EFBFBD><EFBFBD><EFBFBD>¼
|
||||
|
||||
```java
|
||||
HashMap<String, Integer> map = new LinkedHashMap<>();
|
||||
while (in.hasNextLine()) {
|
||||
String s = in.nextLine();
|
||||
String key = s.substring(s.lastIndexOf('\\') + 1);
|
||||
map.put(key, map.containsKey(key) ? map.get(key) + 1 : 1);
|
||||
}
|
||||
List<Map.Entry<String, Integer>> list = new LinkedList<>(map.entrySet());
|
||||
Collections.sort(list, (o1, o2) -> o2.getValue() - o1.getValue());
|
||||
for (int i = 0; i < 8 && i < list.size(); i++) {
|
||||
String[] token = list.get(i).getKey().split(" ");
|
||||
String filename = token[0];
|
||||
String line = token[1];
|
||||
if (filename.length() > 16) filename = filename.substring(filename.length() - 16);
|
||||
System.out.println(filename + " " + line + " " + list.get(i).getValue());
|
||||
}
|
||||
```
|
||||
|
||||
# 10. <20><>Ϊ-<2D>˿<EFBFBD><CBBF>ƴ<EFBFBD>С
|
||||
|
||||
```java
|
||||
public class Main {
|
||||
|
||||
private Map<String, Integer> map = new HashMap<>();
|
||||
|
||||
public Main() {
|
||||
map.put("3", 0);
|
||||
map.put("4", 1);
|
||||
map.put("5", 2);
|
||||
map.put("6", 3);
|
||||
map.put("7", 4);
|
||||
map.put("8", 5);
|
||||
map.put("9", 6);
|
||||
map.put("10", 7);
|
||||
map.put("J", 8);
|
||||
map.put("Q", 9);
|
||||
map.put("K", 10);
|
||||
map.put("A", 11);
|
||||
map.put("2", 12);
|
||||
map.put("joker", 13);
|
||||
map.put("JOKER ", 14);
|
||||
}
|
||||
|
||||
private String play(String s1, String s2) {
|
||||
String[] token1 = s1.split(" ");
|
||||
String[] token2 = s2.split(" ");
|
||||
CardType type1 = computeCardType(token1);
|
||||
CardType type2 = computeCardType(token2);
|
||||
if (type1 == CardType.DoubleJoker) return s1;
|
||||
if (type2 == CardType.DoubleJoker) return s2;
|
||||
if (type1 == CardType.Bomb && type2 != CardType.Bomb) return s1;
|
||||
if (type2 == CardType.Bomb && type1 != CardType.Bomb) return s2;
|
||||
if (type1 != type2 || token1.length != token2.length) return "ERROR";
|
||||
for (int i = 0; i < token1.length; i++) {
|
||||
int val1 = map.get(token1[i]);
|
||||
int val2 = map.get(token2[i]);
|
||||
if (val1 != val2) return val1 > val2 ? s1 : s2;
|
||||
}
|
||||
return "ERROR";
|
||||
}
|
||||
|
||||
private CardType computeCardType(String[] token) {
|
||||
boolean hasjoker = false, hasJOKER = false;
|
||||
for (int i = 0; i < token.length; i++) {
|
||||
if (token[i].equals("joker")) hasjoker = true;
|
||||
else if (token[i].equals("JOKER")) hasJOKER = true;
|
||||
}
|
||||
if (hasjoker && hasJOKER) return CardType.DoubleJoker;
|
||||
int maxContinueLen = 1;
|
||||
int curContinueLen = 1;
|
||||
String curValue = token[0];
|
||||
for (int i = 1; i < token.length; i++) {
|
||||
if (token[i].equals(curValue)) curContinueLen++;
|
||||
else {
|
||||
curContinueLen = 1;
|
||||
curValue = token[i];
|
||||
}
|
||||
maxContinueLen = Math.max(maxContinueLen, curContinueLen);
|
||||
}
|
||||
if (maxContinueLen == 4) return CardType.Bomb;
|
||||
if (maxContinueLen == 3) return CardType.Triple;
|
||||
if (maxContinueLen == 2) return CardType.Double;
|
||||
boolean isStraight = true;
|
||||
for (int i = 1; i < token.length; i++) {
|
||||
if (map.get(token[i]) - map.get(token[i - 1]) != 1) {
|
||||
isStraight = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (isStraight && token.length == 5) return CardType.Straight;
|
||||
return CardType.Sigal;
|
||||
}
|
||||
|
||||
private enum CardType {
|
||||
DoubleJoker, Bomb, Sigal, Double, Triple, Straight;
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
Main main = new Main();
|
||||
Scanner in = new Scanner(System.in);
|
||||
while (in.hasNextLine()) {
|
||||
String s = in.nextLine();
|
||||
String[] token = s.split("-");
|
||||
System.out.println(main.play(token[0], token[1]));
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
# 11. ȥ<>Ķ<EFBFBD>-<2D><><EFBFBD>ֲ<EFBFBD><D6B2><EFBFBD>
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD>Ԫ<EFBFBD>ص<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>飬<EFBFBD><EFBFBD><EFBFBD>ֲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫע<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>㣺
|
||||
|
||||
- if (val <= A[m]) h = m;
|
||||
- <20><>Ϊ h <20>ĸ<EFBFBD>ֵΪ m <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> m - 1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD> while ѭ<><D1AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҳ<EFBFBD><D2B2>Ϊ l < h<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> m - 1 ѭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ l <= h<EFBFBD><EFBFBD>
|
||||
|
||||
```java
|
||||
public int getPos(int[] A, int n, int val) {
|
||||
int l = 0, h = n - 1;
|
||||
while (l < h) {
|
||||
int m = l + (h - l) / 2;
|
||||
if (val <= A[m]) h = m;
|
||||
else l = m + 1;
|
||||
}
|
||||
return A[h] == val ? h : -1;
|
||||
}
|
||||
```
|
||||
|
||||
# 12. ȥ<>Ķ<EFBFBD>-<2D><EFBFBD><D7B8>ظ<EFBFBD><D8B8>ַ<EFBFBD>
|
||||
|
||||
```java
|
||||
public char findFirstRepeat(String A, int n) {
|
||||
boolean[] hasAppear = new boolean[256];
|
||||
for (int i = 0; i < n; i++) {
|
||||
char c = A.charAt(i);
|
||||
if(hasAppear[c]) return c;
|
||||
hasAppear[c] = true;
|
||||
}
|
||||
return ' ';
|
||||
}
|
||||
```
|
||||
|
||||
# 13. ȥ<>Ķ<EFBFBD>-Ѱ<><D1B0>Coder
|
||||
|
||||
```java
|
||||
public String[] findCoder(String[] A, int n) {
|
||||
List<Pair<String, Integer>> list = new ArrayList<>();
|
||||
for (String s : A) {
|
||||
int cnt = 0;
|
||||
String t = s.toLowerCase();
|
||||
int idx = -1;
|
||||
while (true) {
|
||||
idx = t.indexOf("coder", idx + 1);
|
||||
if (idx == -1) break;
|
||||
cnt++;
|
||||
}
|
||||
if (cnt != 0) {
|
||||
list.add(new Pair<>(s, cnt));
|
||||
}
|
||||
}
|
||||
Collections.sort(list, (o1, o2) -> (o2.getValue() - o1.getValue()));
|
||||
String[] ret = new String[list.size()];
|
||||
for (int i = 0; i < list.size(); i++) {
|
||||
ret[i] = list.get(i).getKey();
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
// ţ<><C5A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD> javafx.util.Pair<69><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD>ʵ<EFBFBD><CAB5>һ<EFBFBD><D2BB> Pair <20><>
|
||||
private class Pair<T, K> {
|
||||
T t;
|
||||
K k;
|
||||
|
||||
Pair(T t, K k) {
|
||||
this.t = t;
|
||||
this.k = k;
|
||||
}
|
||||
|
||||
T getKey() {
|
||||
return t;
|
||||
}
|
||||
|
||||
K getValue() {
|
||||
return k;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
# 14. <20><><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
||||
|
||||
̰<EFBFBD>IJ<EFBFBD><EFBFBD>ԡ<EFBFBD>
|
||||
|
||||
```java
|
||||
public int getDis(int[] A, int n) {
|
||||
int max = 0;
|
||||
int soFarMin = A[0];
|
||||
for (int i = 1; i < n; i++) {
|
||||
if(soFarMin > A[i]) soFarMin = A[i];
|
||||
else max = Math.max(max, A[i]- soFarMin);
|
||||
}
|
||||
return max;
|
||||
}
|
||||
```
|
||||
|
||||
# 15. <20><><EFBFBD><EFBFBD>-<2D><><EFBFBD>ӷ<EFBFBD>ת
|
||||
|
||||
```java
|
||||
public int[][] flipChess(int[][] A, int[][] f) {
|
||||
int[][] direction = {{0, 1}, {0, -1}, {1, 0}, {-1, 0}};
|
||||
for (int[] ff : f) {
|
||||
for (int[] dd : direction) {
|
||||
int r = ff[0] + dd[0] - 1, c = ff[1] + dd[1] - 1;
|
||||
if(r < 0 || r > 3 || c < 0 || c > 3) continue;
|
||||
A[r][c] ^= 1;
|
||||
}
|
||||
}
|
||||
return A;
|
||||
}
|
||||
```
|
||||
|
||||
# 16. <20><><EFBFBD><EFBFBD>-<2D>ݷ<EFBFBD>
|
||||
|
||||
```java
|
||||
private Set<String> paths;
|
||||
private List<Integer> curPath;
|
||||
|
||||
public int countPath(int[][] map, int n, int m) {
|
||||
paths = new HashSet<>();
|
||||
curPath = new ArrayList<>();
|
||||
for (int i = 0; i < n; i++) {
|
||||
for (int j = 0; j < m; j++) {
|
||||
if (map[i][j] == 1) {
|
||||
map[i][j] = -1;
|
||||
int[][] leftRightDirection = {{1, 0}, {-1, 0}};
|
||||
int[][] topDownDirection = {{0, 1}, {0, -1}};
|
||||
for (int[] lr : leftRightDirection) {
|
||||
for (int[] td : topDownDirection) {
|
||||
int[][] directions = {lr, td};
|
||||
backtracking(map, n, m, i, j, directions);
|
||||
}
|
||||
}
|
||||
return paths.size();
|
||||
}
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
private void backtracking(int[][] map, int n, int m, int r, int c, int[][] directions) {
|
||||
if (map[r][c] == 2) {
|
||||
String path = "";
|
||||
for (int num : curPath) {
|
||||
path += num;
|
||||
}
|
||||
paths.add(path);
|
||||
return;
|
||||
}
|
||||
for (int i = 0; i < directions.length; i++) {
|
||||
int nextR = r + directions[i][0];
|
||||
int nextC = c + directions[i][1];
|
||||
if (nextR < 0 || nextR >= n || nextC < 0 || nextC >= m || map[nextR][nextC] == -1) continue;
|
||||
map[nextR][nextC] = map[nextR][nextC] == 2 ? 2 : -1;
|
||||
curPath.add(nextR);
|
||||
curPath.add(nextC);
|
||||
backtracking(map, n, m, nextR, nextC, directions);
|
||||
curPath.remove(curPath.size() - 1);
|
||||
curPath.remove(curPath.size() - 1);
|
||||
map[nextR][nextC] = map[nextR][nextC] == 2 ? 2 : 0;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
# 17. <20><><EFBFBD><EFBFBD>-ֱ<><D6B1>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
```java
|
||||
public int countArea(int[] A, int n) {
|
||||
int max = 0;
|
||||
for (int i = 0; i < n; i++) {
|
||||
int min = A[i];
|
||||
for (int j = i; j < n; j++) {
|
||||
min = Math.min(min, A[j]);
|
||||
max = Math.max(max, min * (j - i + 1));
|
||||
}
|
||||
}
|
||||
return max;
|
||||
}
|
||||
```
|
||||
|
||||
# 18. <20><><EFBFBD><EFBFBD>-<2D>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Сд<EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 26 <EFBFBD><EFBFBD><EFBFBD>ơ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ıȽϺ<EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƚϲ<EFBFBD>ͬ<EFBFBD><EFBFBD><EFBFBD>Ǵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҽ<EFBFBD><EFBFBD>бȽϣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "ac" <EFBFBD><EFBFBD> "abc"<22><><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ıȽϽ<EFBFBD><EFBFBD><EFBFBD>Ϊ "ac" > "abc"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƚϣ<C8BD><CFA3><EFBFBD>Ϊ "abc" <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȼ<EFBFBD><C8BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ij<EFBFBD><EFBFBD>ȿ<EFBFBD><EFBFBD>ܲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȣ<EFBFBD><EFBFBD><EFBFBD> s1 <20>հײ<D5B0><D7B2>ֺ<EFBFBD> s2 <20><>Ӧ<EFBFBD><D3A6><EFBFBD>ֽ<EFBFBD><D6BD>бȽ<D0B1>ʱ<EFBFBD><CAB1>Ӧ<EFBFBD>ð<EFBFBD> s1 <20>Ŀհײ<D5B0><D7B2>ֿ<EFBFBD><D6BF><EFBFBD><EFBFBD><EFBFBD> 'a' <20>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ġ<EFBFBD>
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD>Ҫע<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǣ<EFBFBD>s1 <20><> s2 <20><><EFBFBD><EFBFBD>Ϊ len<sub>i</sub> <20><><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD>Ƚ<EFBFBD>ǰ<EFBFBD><C7B0> i <20><><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 'aaa' <20><> 'bbb' <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ 2 <20>ĸ<EFBFBD><C4B8><EFBFBD>Ϊ 'aa' <20><> 'bb' <20><><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>Ǻ<EFBFBD><C7BA>沿<EFBFBD>ֵ<EFBFBD><D6B5>ַ<EFBFBD><D6B7><EFBFBD>
|
||||
|
||||
<EFBFBD><EFBFBD>ͳ<EFBFBD>Ƹ<EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> len1 <20><>ʼһֱ<D2BB><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>ȣ<EFBFBD>ÿ<EFBFBD><C3BF>ѭ<EFBFBD><D1AD><EFBFBD><EFBFBD>ͳ<EFBFBD>Ƴ<EFBFBD><C6B3><EFBFBD>Ϊ i <20><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
```java
|
||||
String s1 = in.next();
|
||||
String s2 = in.next();
|
||||
int len1 = in.nextInt();
|
||||
int len2 = in.nextInt();
|
||||
int len = Math.min(s2.length(), len2);
|
||||
int[] subtractArr = new int[len];
|
||||
for (int i = 0; i < len; i++) {
|
||||
char c1 = i < s1.length() ? s1.charAt(i) : 'a';
|
||||
char c2 = s2.charAt(i);
|
||||
subtractArr[i] = c2 - c1;
|
||||
}
|
||||
int ret = 0;
|
||||
for (int i = len1; i <= len; i++) {
|
||||
for (int j = 0; j < i; j++) {
|
||||
ret += subtractArr[j] * Math.pow(26, i - j - 1);
|
||||
}
|
||||
}
|
||||
System.out.println(ret - 1);
|
||||
```
|
||||
|
||||
# 19. <20><><EFBFBD><EFBFBD>-ƽ<><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
```java
|
||||
int W = in.nextInt();
|
||||
double Y = in.nextDouble();
|
||||
double x = in.nextDouble();
|
||||
int N = in.nextInt();
|
||||
while (N-- > 0) {
|
||||
Y++; // <20><>Ա<EFBFBD><D4B1>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD><EFBFBD>䶼Ҫ<E4B6BC><D2AA> 1
|
||||
Y += (21 - Y) * x;
|
||||
}
|
||||
System.out.println((int) Math.ceil(Y));
|
||||
```
|
||||
|
||||
# 20. <20>ٶ<EFBFBD>-<2D>ﷸת<EFB7B8><D7AA>
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD>ֺ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>⣬<EFBFBD><EFBFBD>ÿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><EFBFBD>ֺͻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
```java
|
||||
int n = in.nextInt();
|
||||
int t = in.nextInt();
|
||||
int c = in.nextInt();
|
||||
int[] values = new int[n];
|
||||
for (int i = 0; i < n; i++) {
|
||||
values[i] = in.nextInt();
|
||||
}
|
||||
int cnt = 0;
|
||||
int totalValue = 0;
|
||||
for (int s = 0, e = c - 1; e < n; s++, e++) {
|
||||
if (s == 0) {
|
||||
for (int j = 0; j < c; j++) totalValue += values[j];
|
||||
} else {
|
||||
totalValue = totalValue - values[s - 1] + values[e];
|
||||
}
|
||||
if (totalValue <= t) cnt++;
|
||||
}
|
||||
System.out.println(cnt);
|
||||
```
|
||||
|
||||
# 22. <20>ٶ<EFBFBD>-<2D>ü<EFBFBD><C3BC><EFBFBD><EFBFBD><EFBFBD>ֽ
|
||||
|
||||
```java
|
||||
int n = in.nextInt();
|
||||
int minX, minY, maxX, maxY;
|
||||
minX = minY = Integer.MAX_VALUE;
|
||||
maxX = maxY = Integer.MIN_VALUE;
|
||||
for (int i = 0; i < n; i++) {
|
||||
int x = in.nextInt();
|
||||
int y = in.nextInt();
|
||||
minX = Math.min(minX, x);
|
||||
minY = Math.min(minY, y);
|
||||
maxX = Math.max(maxX, x);
|
||||
maxY = Math.max(maxY, y);
|
||||
}
|
||||
System.out.println((int) Math.pow(Math.max(maxX - minX, maxY - minY), 2));
|
||||
```
|
||||
|
||||
# 23. <20>ٶ<EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
P ( <20><><EFBFBD>ٵ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD> ) = 1 - P ( һ<><D2BB>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD> )
|
||||
|
||||
<EFBFBD>ӣ<EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫһ<EFBFBD><EFBFBD>һ<EFBFBD>н<EFBFBD><EFBFBD>ж<EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> in.nextDouble()<29><>
|
||||
|
||||
```java
|
||||
public static void main(String[] args) {
|
||||
Scanner in = new Scanner(System.in);
|
||||
while (in.hasNext()) {
|
||||
int n = in.nextInt();
|
||||
int m = in.nextInt();
|
||||
int x = in.nextInt();
|
||||
int y = in.nextInt();
|
||||
int t = in.nextInt();
|
||||
in.nextLine(); // <20><>
|
||||
double pcc = 0.0;
|
||||
double sum = 0.0;
|
||||
for (int i = 1; i <= n; i++) {
|
||||
String[] token = in.nextLine().split(" "); // <20><>
|
||||
for (int j = 1; j <= m; j++) {
|
||||
double p = Double.parseDouble(token[j - 1]);
|
||||
// double p = in.nextDouble();
|
||||
sum += p;
|
||||
if (i == x && j == y) {
|
||||
pcc = p;
|
||||
}
|
||||
}
|
||||
}
|
||||
double pss = sum / (n * m);
|
||||
pcc = computePOfIRT(pcc, t);
|
||||
pss = computePOfIRT(pss, t);
|
||||
System.out.println(pcc > pss ? "cc" : pss > pcc ? "ss" : "equal");
|
||||
System.out.printf("%.2f\n", Math.max(pcc, pss));
|
||||
}
|
||||
}
|
||||
|
||||
// compute probability of independent repeated trials
|
||||
private static double computePOfIRT(double p, int t) {
|
||||
return 1 - Math.pow((1 - p), t);
|
||||
}
|
||||
```
|
||||
|
||||
# 24. <20>ٶ<EFBFBD>-Ģ<><C4A2><EFBFBD><EFBFBD>
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD>ݻᳬʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD> DP<44><50>
|
||||
|
||||
dp[i][j] <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> (i,j) λ<>ò<EFBFBD><C3B2>ᴥ<EFBFBD><E1B4A5>Ģ<EFBFBD><C4A2><EFBFBD>ĸ<EFBFBD><C4B8>ʡ<EFBFBD><CAA1><EFBFBD><EFBFBD><EFBFBD> N\*M <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> i == N || j == M<><4D><EFBFBD><EFBFBD>ô (i,j) ֻ<><D6BB><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¾<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD> 3 <20>к͵<D0BA> 3 <20><>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƶ<EFBFBD><C6B6><EFBFBD>
|
||||
|
||||
|
||||
```java
|
||||
int N = in.nextInt();
|
||||
int M = in.nextInt();
|
||||
int K = in.nextInt();
|
||||
boolean[][] mushroom = new boolean[N][M];
|
||||
while (K-- > 0) {
|
||||
int x = in.nextInt();
|
||||
int y = in.nextInt();
|
||||
mushroom[x - 1][y - 1] = true;
|
||||
}
|
||||
double[][] dp = new double[N][M];
|
||||
dp[0][0] = 1;
|
||||
for (int i = 0; i < N; i++) {
|
||||
for (int j = 0; j < M; j++) {
|
||||
if (mushroom[i][j]) dp[i][j] = 0;
|
||||
else {
|
||||
double cur = dp[i][j];
|
||||
if (i == N - 1 && j == M - 1) break;
|
||||
if (i == N - 1) dp[i][j + 1] += cur;
|
||||
else if (j == M - 1) dp[i + 1][j] += cur;
|
||||
else {
|
||||
dp[i][j + 1] += cur / 2;
|
||||
dp[i + 1][j] += cur / 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
System.out.printf("%.2f\n", dp[N - 1][M - 1]);
|
||||
```
|
Reference in New Issue
Block a user