原创 lightoj-1010-Knights in Chessboard

題意: 給你一個n*m的棋盤,問你棋盤上最多放多少個馬,使得任意兩個馬都不會互相攻擊。 做法: 對於棋盤,我們會發現,如果我們只把馬放在白色的方格內,則任意兩個馬都不會互相攻擊。 這樣我們有了第一種放法,全放在白格內或者全放在黑格內。 但

原创 2014多校聯合-第八場

1001:2048 很明顯,一開始看錯題了。。。sad 這題目我感覺挺卡時間的。。。 dp[i][j]:在選擇2^i的時候,選擇的和爲j*2^i到(j+1)*2^i-1時候的情況。 #include <iostream> #include

原创 2014多校聯合-第三場

1002:Redraw Beautiful Drawings 最大流。。。。用sap+gap優化的模版過的。。。 1. 源點 -> 每一行對應的點,流量限制爲該行的和 2. 每一行對應的點 -> 每一列對應的點,流量限制爲 K 3. 每一

原创 fzu-1607-Greedy division

做一個類似與素數篩之類的預處理,然後就OK了。。 #include <iostream> #include<stdio.h> #include<vector> #include<queue> #include<stack> #includ

原创 fzu-1753 Another Easy Problem-快速求N!中有多少個p

就是算出來每一個C(N,M)是由哪些數乘來的就好。。。。 #include <iostream> #include<stdio.h> #include<vector> #include<queue> #include<stack> #in

原创 scala版本的梅森旋轉隨機數算法

package xzxz import scala.annotation.tailrec class MersenneTwister(seed: Int) { private val SIZE: Int = 624 pri

原创 scala-第六章-Rational

涉及到的知識點: 檢查先決條件。 函數重載。 操作符重載。 控制檯輸入。 私有函數。 隱式轉換。 <pre name="code" class="java">import java.io.BufferedReader; import

原创 bug修復日記------玩家第一次登陸的信息沒有存儲

結構介紹:          最近在寫遊戲中社交相關的邏輯處理。整體思路架構如下:          當玩家登錄遊戲,去數據庫中查找有沒有玩家的信息,如果有,那麼就取出來,放在內存中,如果沒有,就新建一個玩家信息。          當玩

原创 scala-尾遞歸,Array.newbuilder,二維數組

尾遞歸: 如果一個函數爲內置函數並且是尾遞歸的方式,可以在函數前面添加@tailrec。相當於告訴編譯器我這個函數是尾遞歸函數,然後 編譯器會對這個函數進行一些操作,把遞歸化解出來。 Array.newBuilder 創建一個不定長的數組

原创 c#中文字符串與byte數組互相轉化

因爲中文字符串一個字符佔兩個字節,所以不能用正常的方式與byte之間進行互相轉化 中文字符串轉成byte[] byte[] ping = Encoding.UTF8.GetBytes("你的密碼是什麼?"); byte[]轉化成中文字

原创 Codeforces Round #266 (Div. 2)-C,D

C - Number of Ways 直接暴力從前往後尋找,如果找到1/3sum的位置,那麼標記++。找到2/3的位置,總數加上標記數。 #include<stdio.h> #include<iostream> #include<stdl

原创 hdu-4976-A simple greedy problem.

這個題目很不錯 首先把小兵的生命值排序,然後我們可以知道,每一個血量值,A只能殺掉一個人。 我們就開始貪心每一個血量,我們把小兵攻擊到這個血量需要多少步。 dp[j]:我們當前還剩餘j次攻擊,殺死的小兵數量, 從1到最大小兵血量枚舉。 #

原创 scala下使用akka計算pi

Akka 是一個用 Scala 編寫的庫,用於簡化編寫容錯的、高可伸縮性的 Java 和 Scala 的 Actor 模型應用。它已經成功運用在電信行業。系統幾乎不會宕機(高可用性 99.9999999 % 一年只有 31 ms 宕機。

原创 zoj-3802-Easy 2048 Again

簡單的dp。 dp[i][j]:在第i位置,遞減的狀態爲j,所獲得的最大利潤。 枚舉狀態,如果加進來的數x比狀態的最小的要大,那麼直接狀態變爲x。 如果x比最小的要小,那麼狀態爲j+x。 如果x等於最小的,那麼依次加和,直至最小的比x大。

原创 actor中!(tell)與forward的區別

! 的源碼: def !(message: Any)(implicit sender: ActorRef = Actor.noSender): Unit tell 的源碼: final def tell(msg: Any, send