| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
居然被你做了,怎么优化的?In Reply To:再次TLE……不知道还能怎么优化? Posted by:FinalLaugh at 2004-09-12 00:10:21 > 代码如下:
> import java.io.*;
> import java.util.*;
> import java.text.*;
> import java.math.*;
>
> public class Main {
> public static void main(String[] args) throws IOException {
> System.setIn(new FileInputStream("in.txt"));
> BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
>
> String str;
> String dir = "SWNE";
> char[] color = {
> 'C', 'D', 'S', 'H'};
> char[] value = {
> '0', '0', '2', '3', '4', '5', '6', '7', '8', '9', 'T', 'J', 'Q',
> 'K', 'A'};
> String[] player = {
> "South player:", "West player:", "North player:", "East player:"};
> int[][] deck = new int[4][13];
> int[] p;
> int s, s1, s2, s3, s4;
> while ( (str = in.readLine()).charAt(0) != '#') {
> p = new int[4];
> s = dir.indexOf(str);
> s1 = (s + 1) % 4;
> s2 = (s + 2) % 4;
> s3 = (s + 3) % 4;
> s4 = s;
> str = in.readLine() + in.readLine();
> for (int i = 0; i < 104; i += 8) {
> deck[s1][i / 8] = change(str.charAt(i), str.charAt(i + 1));
> deck[s2][i / 8] = change(str.charAt(i + 2), str.charAt(i + 3));
> deck[s3][i / 8] = change(str.charAt(i + 4), str.charAt(i + 5));
> deck[s4][i / 8] = change(str.charAt(i + 6), str.charAt(i + 7));
> }
> for (int i = 0; i < 4; i++) {
> Arrays.sort(deck[i]);
> }
> for (int i = 0; i < 4; i++) {
> System.out.println(player[i]);
> System.out.println(
> "+---+---+---+---+---+---+---+---+---+---+---+---+---+");
> for (int j = 0; j < 13; j++) {
> System.out.print("|");
> System.out.print(value[deck[i][j] % 100]);
> System.out.print(" ");
> System.out.print(value[deck[i][j] % 100]);
> }
> System.out.println("|");
> for (int j = 0; j < 13; j++) {
> System.out.print("| ");
> System.out.print(color[deck[i][j] / 100]);
> System.out.print(" ");
> }
> System.out.println("|");
> for (int j = 0; j < 13; j++) {
> System.out.print("|");
> System.out.print(value[deck[i][j] % 100]);
> System.out.print(" ");
> System.out.print(value[deck[i][j] % 100]);
> }
> System.out.println("|");
> System.out.println(
> "+---+---+---+---+---+---+---+---+---+---+---+---+---+");
> }
> }
> in.close();
> }
>
> public static int change(char c, char v) {
> int val = 0;
> if (c == 'H') {
> val = 300;
> }
> else if (c == 'S') {
> val = 200;
> }
> else if (c == 'D') {
> val = 100;
>
> }
> if (v <= '9') {
> val += v - '0';
> }
> else if (v == 'A') {
> val += 14;
> }
> else if (v == 'K') {
> val += 13;
> }
> else if (v == 'Q') {
> val += 12;
> }
> else if (v == 'J') {
> val += 11;
> }
> else {
> val += 10;
> }
> return val;
> }
> }
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator