【洛谷OJ】【JAVA】P1056 排座椅
import java.util.Arrays; import java.util.Map.Entry; import java.util.Scanner; import java.util.TreeMap; public class Main { private static Scanner cin; private static int m; private static int n; private static int k; private static int l; private static int d; public static void main(String args[]) throws Exception { cin = new Scanner(System.in); String t = cin.nextLine(); String[] v = t.split(" "); m = Integer.valueOf(v[0]); n = Integer.valueOf(v[1]); k = Integer.valueOf(v[2]); l = Integer.valueOf(v[3]); d = Integer.valueOf(v[4]); int x,y,p,q; TreeMap<Spliter,Integer> tmK = new TreeMap<>(); TreeMap<Spliter,Integer> tmL = new TreeMap<>(); for(int i=0;i<d;i++) { t = cin.nextLine(); v = t.split(" "); x = Integer.valueOf(v[0]); y = Integer.valueOf(v[1]); p = Integer.valueOf(v[2]); q = Integer.valueOf(v[3]); //the same column, x is the same, spliter is L if(x == p) { Spliter s = new Spliter((y+q)/2); if(tmL.containsKey(s)) { int count = tmL.get(s); tmL.replace(s, new Integer(count+1)); }else { tmL.put(s, 1); } } //the same row, y is the same ,spliter is K else if(y == q) { Spliter s = new Spliter((x+p)/2); if(tmK.containsKey(s)) { int count = tmK.get(s); tmK.put(s, new Integer(count+1)); }else { tmK.put(s, 1); } } } SpliterCount[] scK = new SpliterCount[tmK.size()]; SpliterCount[] scL = new SpliterCount[tmL.size()]; Entry<Spliter,Integer> e; int[] karray = new int[k]; int[] larray = new int[l]; for(int i=0,size=tmK.size();i<size;i++) { e = tmK.pollFirstEntry(); SpliterCount sct = new SpliterCount(e.getKey(),e.getValue()); scK[i] = sct; } Arrays.sort(scK); for(int i=0;i<k;i++) { karray[i] = scK[scK.length-i-1].getSpliter().getSpliterLine(); } Arrays.sort(karray); for(int i=0,size=tmL.size();i<size;i++) { e = tmL.pollFirstEntry(); SpliterCount sct = new SpliterCount(e.getKey(),e.getValue()); scL[i] = sct; } Arrays.sort(scL); for(int i=0;i<l;i++) { larray[i] = scL[scL.length-i-1].getSpliter().getSpliterLine(); } Arrays.sort(larray); String ts = Arrays.toString(karray); System.out.println(ts.substring(1, ts.length()-1).replace(",", "")); ts = Arrays.toString(larray); System.out.println(ts.substring(1, ts.length()-1).replace(",", "")); } } class Spliter implements Comparable{ Integer spliterLine; public Spliter(Integer aspliterLine) { spliterLine = aspliterLine; } public Integer getSpliterLine() { return spliterLine; } public int compareTo(Object arg0) { Spliter s = (Spliter)arg0; return spliterLine.compareTo(s.getSpliterLine()); } public String toString() { return String.format("spliterLine:%d,", spliterLine); } } class SpliterCount implements Comparable{ Spliter spliter; Integer count; public SpliterCount(Spliter s, Integer c) { spliter = s; count = c; } public int compareTo(Object arg0) { SpliterCount sc = (SpliterCount)arg0; Spliter s2 = sc.getSpliter(); Integer c2 = sc.getCount(); if(spliter == s2 && count == c2) { return 0; }else if(count == c2) { return - spliter.compareTo(s2); }else { return count.compareTo(c2); } } public Spliter getSpliter() { return spliter; } public Integer getCount() { return count; } public String toString() { return String.format("spliter:%s count=%d", spliter.toString(),count); } }
相關推薦
【洛谷OJ】【JAVA】P1018 乘積最大
import java.math.BigInteger; import java.util.Scanner; public class Main { private static Scanner cin; private static char[] values;
【洛谷OJ】【JAVA】P1056 排座椅
import java.util.Arrays; import java.util.Map.Entry; import java.util.Scanner; import java.util.TreeMap; public class Main { private s
【洛谷OJ】【JAVA】P1914 小書童——密碼
import java.util.Scanner; public class Main { private static Scanner cin; public static void main(String args[]) throws Exception {
【洛谷OJ】【JAVA】 P1540 機器翻譯
import java.util.LinkedList; import java.util.Scanner; public class Main { private static Scanner cin; public static void main(Stri
洛谷OJ P3803 【模板】多項式乘法(FFT)
題目思路:FFT模板題 AC程式碼: // luogu-judger-enable-o2 #include <stdio.h> #include <string.h> #include <iostream> #include <
【洛谷OJ】P1055 ISBN號碼
import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class Main{ private static Scanner
【洛谷OJ】P2141 珠心算測驗
import java.util.LinkedList; import java.util.Scanner; public class Main { private static Scanner cin; public static void main(
洛谷OJ P3368 【模板】樹狀陣列 2
題目思路:區間更新,單點查詢模板題,樹狀陣列做法 AC程式碼: #include<cstdio> #include<cmath> #include<cstring> #include<string> #include&l
【洛谷P2858·動態規劃】[USACO06FEB]奶牛零食Treats for the Cows
greate single nes 得到 form images include 規劃 ive 題面 題目描述 FJ has purchased N (1 <= N <= 2000) yummy treats for the cows who get money
【洛谷mNOIP模擬賽Day1】T1 斐波那契
lld -s ace can using code 我們 namespace log 題目傳送門:https://www.luogu.org/problemnew/show/P3938 這題出得特別吼啊~~ 通過打表或者大膽猜想斐波那契數列的一些性質,我們不難發現對於一
【洛谷九月月賽T1】簽到題(bsgs)(快速乘)
code 是我 好的 取模 lin pri sca ast for 說好的簽到題呢qwq。。。。怎麽我簽到題都不會啊qwq 之後看了bsgs才發現貌似不是那麽那麽難fake!!什麽東西。。。 先貼上部分分做法(也就是枚舉1的個數,然後每一步都進行取模(這和最後取模結果一樣,
【洛谷P3038 [USACO11DEC]牧草種植】【樹鏈剖分】【裸】【邊權修改與查詢】
【連結】 https://www.luogu.org/problemnew/show/P3038 【題意】 給出一棵n個節點的樹,有m個操作,操作為將一條路徑上的邊權加一或詢問某條邊的權值。 【思路】 樹鏈剖分的裸題。 但是這個題是在邊上進行操作,我們考慮把邊上的操作轉移到點
【洛谷九月月賽加賽】 kls與flag
主要涉及到map的用法,看到題目時不要思維定式,靈活轉化即可A掉。 code: #include<iostream> #include<map> using namesp
【洛谷11月月賽T3】【P4996】咕咕咕(組合數)
遲到的題解 昨天亂翻的時候感覺這道題挺有意思的 一眼看過去狀態壓縮亂搜 轉移方程大概是 設f[i]表示從0轉移到i的遺憾值之和 f[i]=sigma(f[j])+val[i]*dis[i] dis[i]=sigma(dis[j]) 其中j是i的子集,dis[i]表示從0轉移到i的方案數之和 妙啊有70分了 /
【洛谷】P5015 標題統計(java)
題目描述 凱凱剛寫了一篇美妙的作文,請問這篇作文的標題中有多少個字元? 注意:標題中可能包含大、小寫英文字母、數字字元、空格和換行符。統計標題字 符數時,空格和換行符不計算在內。 輸入輸出格式 輸入格式: 輸入檔案只有一行,一個字串 ss。  
【洛谷P1343】地震逃生
優化 fine puts bits sta sin int() empty print 一道傻吊的網絡流題,wori我寫的讀入優化怎麽老T? 遠離讀入優化報平安? #include<bits/stdc++.h> #define N 4005 #define i
堆的模板題【洛谷P3378】
urn 我們 syn code space mes con ret pre 題目描述 如題,初始小根堆為空,我們需要支持以下3種操作: 操作1: 1 x 表示將x插入到堆中 操作2: 2 輸出該小根堆內的最小數 操作3: 3 刪除該小根堆內的最小數 輸入輸出格式 輸入格式:
【洛谷P1408】 互質數列
可能 ans 簡化 tro 出了 its mem ive oid 這題其實比較naive…… 問題是我更naive…… 這題偉大的楊隊長提出了一個 的dp做法…… 我的做法就很naive了。 首先我們發現,如果我們對兩個相鄰的數進行一次操作,這個操作產生的影響最多波及的a[
【洛谷 P1240】 諸侯安置
pan max 分享 printf logs 由於 image ++ png 題目描述 很久以前,有一個強大的帝國,它的國土成正方形狀,如圖所示。 這個國家有若幹諸侯。由於這些諸侯都曾立下赫赫戰功,國王準備給他們每人一塊封地(正方形中的一格)。但是,這些諸侯又非常好戰,當兩
【原創】洛谷 LUOGU P3373 【模板】線段樹2
取模 file 需要 code ace highlight dig org zh-cn P3373 【模板】線段樹 2 題目描述 如題,已知一個數列,你需要進行下面兩種操作: 1.將某區間每一個數加上x 2.將某區間每一個數乘上x 3.求出