這個不要用java寫,要用C++不然幾乎不可能通過!!!
哈希表儲存,key是1 1 0 0 value是A,一直輸入一直找字典一直輸出
這個不要用java寫,要用C++不然幾乎不可能通過!!!
哈希表儲存,key是1 1 0 0 value是A,一直輸入一直找字典一直輸出
Java還是能過,只是需要考慮比較多形況。
1. 二進位
比起哈希表,這邊把它當作二進位看就好,搭配位移運算,可以很快的算出鍵值。
2. 不使用Map
Map與Set皆是以數結構進行儲存,適合用在多次插入與查找的情況,不過這邊的需要查找的鍵值與對應元素是固定的,不會有需要新增的情況,故此處使用陣列+二分搜會快「非常非常」多。
3. 輸入工具
提供這個輸入工具,它不好處理,在超大的測資用起來會很快(如果題目只有很大的輸入或輸出,也可以單獨使用)
private static final int BUF_SIZ = 4096;
private static final DataInputStream dis = new DataInputStream(System.in);
private static final DataOutputStream dos = new DataOutputStream(System.out);
private static byte r, inBuf[] = new byte[BUF_SIZ], outBuf[] = new byte[BUF_SIZ];
private static int bp, br, ap;
private static void read() throws IOException {
if(bp==br && (br=dis.read(inBuf, bp=0, BUF_SIZ))==-1) inBuf[0] = 127;
r = inBuf[bp++];
}
private static void flush() throws IOException {
dos.write(outBuf, 0, ap);
ap = 0;
}