某岛

… : "…アッカリ~ン . .. . " .. .
October 7, 2012

CHelper Mannual (中译 .. .

This is the Chinese Mannual for Egor’s CHelper 3.0 along with IntelliJ IDEA, see more infomation at here.

这里是 CHelper 中文配置手册,基本翻译自 Google Project 那里,顺便修正了少许版本更新后没有修改的地方。。。

首先 CHelper 是一个 IntelliJ IDEA 的一个插件,IntelliJ IDEA 是一个主要用于 Java 的 IDE,(C/C++ 似乎暂时还没有找到类似的东西。)

(、其实这个东西刚出来的时候我就留意了一下。。当时我正在折腾自己的 C++ 模板。(就是我现在每次比赛都会贴进去的那前面一大段东西。。)。
(。因为 TC 有一个 Unused Code Rule 。。所以当时对这个插件的 “Eliminates unused code” 功能特别感兴趣。。(不过后来发现这个东西是基于 IDEA 这个 IDE 的。。而且 C++ 因为有宏这个东西不一定会很容易实现。。当时就先轻 Mark 了。
。。。然后前几天发现更新了 3.0 版本。。于是就跑去试用了一下。。(嗯。。大概是这样。。

如果还没有安装 IntelliJ IDEA,那么先安装 IntelliJ IDEA .. .(这里以社区版为例。)

1. IntelliJ IDEA 打开后的页面。

1. IntelliJ IDEA 打开后的页面。

2. File -> Settings ...

2. File -> Settings …

3. 左栏 IDE Settings,选择 Plugins .. . (注意这里如果一直 Loading 请戳 HTTP Proxy (nimendongde

3. 左栏 IDE Settings,选择 Plugins .. . (注意这里如果一直 Loading 请戳 HTTP Proxy (nimendongde

4. 右上角搜索栏输入 CHelper ... 双击下载安装。

4. 右上角搜索栏输入 CHelper … 双击下载安装。

5. 安装后会提示重启 (Restart),重启后 Create Project,选择第一个 from scratch.

5. 安装后会提示重启 (Restart),重启后 Create Project,选择第一个 from scratch.

6. 注意区分 Project 和 Model,一般来说一个 Project 只有一个 Model。

6. 注意区分 Project 和 Model,一般来说一个 Project 只有一个 Model。

7. 然后建一个 Source Directory。(就叫 Source 好了。。。

7. 然后建一个 Source Directory。(就叫 Source 好了。。。

8. 如果是第一次配置,这里还要指定 SDK 的路径。

8. 如果是第一次配置,这里还要指定 SDK 的路径。

9. 这样。。。

9. 这样。。。

10. 打开后是这样。。接下来要把 CHelper 放到工具栏上。

10. 打开后是这样。。接下来要把 CHelper 放到工具栏上。

11. 右击工具栏 -> Customize Menus and Toolbars

11. 右击工具栏 -> Customize Menus and Toolbars

12. Main Toolbarを展開する.. .

12. Main Toolbarを展開する.. .

13. 可以再最后先加一个 Separator,然后点 Add After,弹出对话框

13. 可以再最后先加一个 Separator,然后点 Add After,弹出对话框

14. Plug-ins -> CHelper ... (这里可以自由选择项目和根据自己的需要调整顺序,总之先全部加上。。

14. Plug-ins -> CHelper … (这里可以自由选择项目和根据自己的需要调整顺序,总之先全部加上。。

15. 回到目录,Source 下新建一个 Package 。。(名字自己敲。。这里就用 Current 表示当前工作目录好了。。。

15. 回到目录,Source 下新建一个 Package 。。(名字自己敲。。这里就用 Current 表示当前工作目录好了。。。

16. 在刚才的添加的那组工具栏里找 Edit Project Settings ... (参考图中设定。。

16. 在刚才的添加的那组工具栏里找 Edit Project Settings … (参考图中设定。。

17. 设定完以后 CHelper 会出现在目录里,现在开始这个工程已经受 CHelper 支配了。。

17. 设定完以后 CHelper 会出现在目录里,现在开始这个工程已经受 CHelper 支配了。。

18. 现在来写几个题。。(以最近的一次 Codeforces , #142 DIV 1 为例。。

18. 现在来写几个题。。(以最近的一次 Codeforces , #142 DIV 1 为例。。

编辑中的代码。。

package Current;

import java.util.Scanner;
import java.io.PrintWriter;

public class C {
	public void solve(int testNumber, Scanner in, PrintWriter out) {
        int n = in.nextInt(), m = in.nextInt();
        int [] degree = new int[n+1];
        for (int i=0;i<2*m;++i)
            ++degree[in.nextInt()];
        long a = (long) n * (n-1) * (n-2) / 6, b = 0;
        for (int i=1;i<=n;++i)
            b += (long) degree[i] * (n-1-degree[i]);
        out.println(a - b/2);
	}
}

实际提交上去的代码。。

import java.util.Scanner;
import java.io.OutputStream;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.InputStream;

/**
 * Built using CHelper plug-in
 * Actual solution is at the top
 * @author xiaodao
 */
public class Main {
	public static void main(String[] args) {
		InputStream inputStream = System.in;
		OutputStream outputStream = System.out;
		Scanner in = new Scanner(inputStream);
		PrintWriter out = new PrintWriter(outputStream);
		C solver = new C();
		solver.solve(1, in, out);
		out.close();
	}
}

class C {
	public void solve(int testNumber, Scanner in, PrintWriter out) {
        int n = in.nextInt(), m = in.nextInt();
        int [] degree = new int[n+1];
        for (int i=0;i<2*m;++i)
            ++degree[in.nextInt()];
        long a = (long) n * (n-1) * (n-2) / 6, b = 0;
        for (int i=1;i<=n;++i)
            b += (long) degree[i] * (n-1-degree[i]);
        out.println(a - b/2);
	}
}

。。CHelper 主要实现的功能:

  • 完美的代码补全。
  • 与模板库无缝连接。。而且自带删除 Unused Code。。使得一上来就可以把所有模板全部引入头文件也不用担心爆代码长度。。
  • 对 TC 的完美支持。。(其本身也可以以一个 TC 插件的身份出现。。
  • 格式化与归档。。在编辑的部分与提交的代码是分开的。。更专注于算法实现。。归档功能也方便日后整理和复习。。。

.. .