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 插件的身份出現。。
  • 格式化與歸檔。。在編輯的部分與提交的代碼是分開的。。更專註於演算法實現。。歸檔功能也方便日後整理和複習。。。

.. .