http://poj.org/problem?id=3543

题意是给黑、白砖块的数量,组成国际象棋棋盘那样黑白相间正方形,求最大变长。

这题看了解题报告再做就没意思了,建议先自己试试,不难的:

 

 

以下剧透,慎入:

看过题目就知道是一道大水题,但Total Submissions: 2130 Accepted: 919只是个小水题,

本题的特殊情况有:

1)黑色和白色的砖的个数都为0,输出impossible

2)黑色或白色的砖的个数为1,或者两者个数都为1,输出1;

剩下的就是取a,b最小值乘以二加一再开方取整输出了,但如果a==b乘以二之后不用加一,我在这里WA了

 

此外,题目给1000ms,status里有不少0ms,但是java的最快6422MS,我不幸以8000+ac,同时贡献了3个wa(不够细心)  1个re(莫名其妙)  2个ce(拜默认g++所赐)

哈哈,最近状态不好,写出来发泄之!


首先下载中文jdk6的api:

JDK6 API 中文版 HTML 格式在线文档:http://download.java.net/jdk/jdk-api-localizations/jdk-api-zh-cn/builds/latest/html/zh_CN/api/
JDK6 API 中文版zip 格式下载: http://download.java.net/jdk/jdk-api-localizations/jdk-api-zh-cn/builds/latest/html_zh_CN.zip

官方下载地址可能比较慢,大家也可以试试其他下载源

然后打开在netbeans,工具->java平台->javadoc   点击“增加zip/folder”修改路径,javadoc的路径选取到api目录下,即x:/javadoc/html/zh_CN/api,后关闭退出就可以了.

ps:

1.有时候还是不能显示中文的,这样就将源里的src.zip文件移除,再添加上x:/javadoc/html/zh_CN/api路径就可以在NB中出现中文的浮动提示窗了.

2.建议设置成文件夹而不是zip压缩包,一个是为了不在NetBeans查看方便,另外目录的结构不容易出错。如果是zip压缩包,一定要注意目录结构,打开zip应该是javadoc的内容而不应该是一个文件夹,也就是说打开就应该能够看见index.html。

3.此处一定要注意,如果你设置完之后在代码里右键选择Show Javadoc或者按ALT+F1没有反应,那么极大的可能是javadoc的目录结构不正确。


(1).String

//    基本数据类型->值传递(传递值)
//    引用数据类型->引用传递(传递地址)
//    特殊的引用传递String:因为是定长字符串,所以结果同值传递

public class TestString {
    static void change(String a, StringBuffer b) {
        a = "改变定长";
        //b.append("改变变长");
        b.replace(0, b.length(), "改变变长");
        System.out.println(a);
        System.out.println(b);
    }

    public static void main(String[] args) {
        String a = new String("定长");
        StringBuffer b = new StringBuffer("变长");
        System.out.println(a);
        System.out.println(b);

        change(a, b);
        System.out.println(a);
        System.out.println(b);

/*
运行结果
定长
变长

改变定长
改变变长

定长
改变变长
 */
    }
}


 

(2).交换对象
public class valuePKreference {

    int a, b;

    static void change(valuePKreference v1, valuePKreference v2) {
        v1.a++;
        v2.a++;
        valuePKreference v3;
        v3 = v1;
        v1 = v2;
        v2 = v3;

        System.out.println("chang里面");
        System.out.println("v1.a=" + v1.a);
        System.out.println("v1.b=" + v1.b);
        System.out.println("v2.a=" + v2.a);
        System.out.println("v2.b=" + v2.b);
        System.out.println("v3.a=" + v3.a);
        System.out.println("v3.b=" + v3.b);
    }

    public static void main(String[] args) {
        valuePKreference v1 = new valuePKreference();
        v1.a = 1;
        v1.b = 1;
        valuePKreference v2 = new valuePKreference();
        v2.a = 10;
        v2.b = 10;
        System.out.println("chang之前");
        System.out.println("v1.a=" + v1.a);
        System.out.println("v1.b=" + v1.b);
        System.out.println("v2.a=" + v2.a);
        System.out.println("v2.b=" + v2.b);
        change(v1, v2);
        System.out.println("chang之后");
        System.out.println("v1.a=" + v1.a);
        System.out.println("v1.b=" + v1.b);
        System.out.println("v2.a=" + v2.a);
        System.out.println("v2.b=" + v2.b);
    }
}
/*
 chang之前
v1.a=1
v1.b=1
v2.a=10
v2.b=10
chang里面
v1.a=11
v1.b=10
v2.a=2
v2.b=1
v3.a=2
v3.b=1
chang之后
v1.a=2
v1.b=1
v2.a=11
v2.b=10
 */

说明:

1.引用传递,所以change后a会增加

2.交换时交换的是新建的v1,,v2,v3所以能看见值的变化,但是源数据没有变化,即只交换了新建对象的指针指向,没有交换指向的数据


import java.awt.Color;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class swing {

    public static void main(String[] args) {

        JFrame frame = new JFrame("这里是标题");
        frame.setTitle("设置标题");
        //窗体初始位置 距左 距上 宽 高
        frame.setBounds(100, 200, 900, 600);
        //显示窗体
        frame.setVisible(true);

        //创建桌布,颜色
        JPanel zhuobu = new JPanel();
        //设置背景颜色
        zhuobu.setBackground(Color.orange);
        //关闭布局管理器(标签自动居中放置),自己决定位置
        zhuobu.setLayout(null);
        //把桌布放到桌子上
        frame.setContentPane(zhuobu);

        //插入图片对象
        ImageIcon img=new ImageIcon("d:/p2.jpg");

        //创建标签对象
        JLabel picJLabel=new JLabel(img);
        //把图片放到标签上(同构造方法)
        //picJLabel.setIcon(img);
        //标签位置 距窗体左 距上 宽 高
        picJLabel.setBounds(100, 50, img.getIconWidth(),img.getIconHeight() );
        //标签增加到桌布上
        zhuobu.add(picJLabel);

        //放置多个图片
        ImageIcon img1=new ImageIcon("d:/p1.jpg");
        JLabel[] pic=new JLabel[10];
        for (int i = 0; i < pic.length; i++) {
            pic[i]=new JLabel(img1);
            pic[i].setBounds(i*img1.getIconWidth(), 0, img1.getIconWidth(), img1.getIconHeight());
            zhuobu.add(pic[i]);
        }

    }
}
//f3 查看源文件
//ctrl+1 查看错误提示
//ctrl+shift+o 解决所有错误
//ctrl+o 显示文件成员(函数,变量……)
//ctrl+t 分层结构

 

ps:verycd旺旺老师


[00:00]老师介绍,机构介绍,可以不听
[13:47]真是开始课程介绍
[15:30]JAVA SE
[26:40]强化英文
[28:35]版本管理
[30:00]单元测试
[31:12]UML
[31:32]数据库
[32:55]java web开发
[40:40]java web框架 struts hibernate spring
[45:38]项目构建与日志
[46:00]代码自动生成框架CAGF
[48:27]工作流 jbpm
[50:48]web service (apache cxf,restlet)
[52:58]osgi
[55:00]flex
[58:03]jpa ejb
[58:15]笔试面试题目剖析
[59:45]android
[1:02:50]总结

JAVA里面东西很多很多,之前我一直很不了解,看了这个之后清晰多了,上个学期再学校学了java程序设计,太浅了,下个学期有java课程设计和java ee,这个比较深入,我要认真学!