E. Equation
https://codeforces.com/edu/course/2/lesson/6/2/practice/contest/283932/problem/E
import java.io.*;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;
public class AtCoderEEquation {
kaipingwang changed 2 years agoEdit mode Like Bookmark
A. Packing Rectangles
https://codeforces.com/edu/course/2/lesson/6/2/practice/contest/283932/problem/A
import java.io.*;
import java.util.Arrays;
import java.util.StringTokenizer;
public class AtCoderAPackingRectangle {
kaipingwang changed 2 years agoEdit mode Like Bookmark
D. Children Holiday
https://codeforces.com/edu/course/2/lesson/6/2/practice/contest/283932/problem/D
import java.io.*;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;
public class AtCoderDChildrenHoliday {
kaipingwang changed 2 years agoEdit mode Like Bookmark
C. Very Easy Task
https://codeforces.com/edu/course/2/lesson/6/2/practice/contest/283932/problem/C
import java.io.*;
import java.util.StringTokenizer;
public class AtCoderCVeryEasyTask {
static PrintWriter out = new PrintWriter(new BufferedOutputStream(System.out));
kaipingwang changed 2 years agoEdit mode Like Bookmark
Apply Operations on Array to Maximize Sum of Squares
class Solution {
// 為什麼 s1[i] != s2[i] 才要換 ? 因為換的 cost 不會最小, 但要怎麼證明 ?
// 沒法用 memo 因為 memo[idx][s1[idx] - '0'] 改變後面二個數字
public int minOperations(String s1, String s2, int x) {
int n = s1.length();
int m = s2.length();
int memo [][] = new int [n][2];
for(int i = 0; i < n; i++){
kaipingwang changed 2 years agoEdit mode Like Bookmark
Distinct Values Queries
import java.io.*;
import java.util.*;
public class RangeDistinctValuesQueries {
static PrintWriter out = new PrintWriter(new BufferedOutputStream(System.out));
static class SuperQuickReader {
Count Visited Nodes in a Directed Graph
1. 只要能夠被分在同ㄧ個 cycle 就是就是相同的 拜訪個數
2. 如果該點已經更新過拜訪的個數, 就加上去已拜訪的個數
class Solution {
public int[] countVisitedNodes(List<Integer> edges) {
int n = edges.size();
boolean visited [] = new boolean [n];
kaipingwang changed 2 years agoEdit mode Like Bookmark
Split Array Largest Sum
為什麼不可以這樣寫:
class Solution {
public int splitArray(int[] nums, int K) {
int n = nums.length;
int dp[][] = new int [n + 1][K];
for(int i = 0; i <= n; i ++){
Arrays.fill(dp[i], Integer.MAX_VALUE/2);
kaipingwang changed 2 years agoEdit mode Like Bookmark
Minimum Operations to Make a Special Number
class Solution {
Set<String> set = Set.of("00", "25", "50", "75");
/*
如何判斷是否有一個 subsequence 是 "25"
11112[2]6666[5]4443
*/
Maximize Value of Function in a Ball Passing Game
933 / 947 test cases passed.
Status: Wrong Answer
Submitted: 3 days, 12 hours ago
Input:
[1,0]
10000000000
Output:
1778774529
Sum of Subarray Minimums
class Solution {
public int sumSubarrayMins(int[] arr) {
int n = arr.length;
Stack<Integer> sk = new Stack<>();
long left [] = new long [n];
for(int i = 0; i < n; i ++){
while(!sk.isEmpty() && arr[i] < arr[sk.peek()]){
sk.pop();
kaipingwang changed 2 years agoView mode Like Bookmark
Reconstruct Itinerary
class Solution {
public List<String> findItinerary(List<List<String>> tickets) {
int n = tickets.size();
Map<String, PriorityQueue<String>> graph = new HashMap<>();
for(List<String> ticket : tickets){
String u = ticket.get(0);
kaipingwang changed 2 years agoEdit mode Like Bookmark
Candy
class Solution {
public int candy(int[] ratings) {
int n = ratings.length;
int [] left2Right = new int [n];
Arrays.fill(left2Right, 1);
int [] right2Left = new int [n];
Arrays.fill(right2Left, 1);
for(int i = 1; i < n; i ++){
kaipingwang changed 2 years agoEdit mode Like Bookmark
Length of the Longest Valid Substring
1. g[i], f[i] 的關係還是沒有很懂
2. 下面的 case 會 fails
"cbaaaabc"
["aaa","cb"]
f[i] : 在 s[i] 開頭,最短的 forbidden string 長度
g[i] : 以 i 開頭的最長合法 substring 長度
https://cses.fi/paste/d215266054eda1d466ea03/
import java.io.*;
import java.util.Arrays;
import java.util.StringTokenizer;
public class CSESLongestPalidrome {
static PrintWriter out = new PrintWriter(new BufferedOutputStream(System.out));
static class Reader {
class Solution {
int [][] memo = new int [101][10001];
public int superEggDrop(int k, int n) {
if (k == 1) return n;
if(memo[k][n] != 0){
return memo[k][n];
}
import java.io.*;
import java.util.Arrays;
import java.util.StringTokenizer;
public class LongestPalindrome {
static PrintWriter out = new PrintWriter(new BufferedOutputStream(System.out));
static class Reader {